google-api-client 0.52.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 (264) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +0 -14
  3. data/CHANGELOG.md +6 -0
  4. data/OVERVIEW.md +36 -27
  5. data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
  6. data/generated/google/apis/accesscontextmanager_v1/classes.rb +326 -0
  7. data/generated/google/apis/accesscontextmanager_v1/representations.rb +139 -0
  8. data/generated/google/apis/admin_directory_v1.rb +1 -1
  9. data/generated/google/apis/admin_directory_v1/service.rb +2 -2
  10. data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
  11. data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +8 -0
  12. data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
  13. data/generated/google/apis/analyticsadmin_v1alpha/service.rb +12 -1
  14. data/{lib/google/apis/core/logging.rb → generated/google/apis/apigateway_v1.rb} +14 -10
  15. data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
  16. data/generated/google/apis/apigateway_v1/representations.rb +442 -0
  17. data/generated/google/apis/apigateway_v1/service.rb +1172 -0
  18. data/generated/google/apis/apigateway_v1beta.rb +1 -1
  19. data/generated/google/apis/apigateway_v1beta/classes.rb +19 -8
  20. data/generated/google/apis/apigateway_v1beta/representations.rb +1 -0
  21. data/generated/google/apis/apigee_v1.rb +1 -1
  22. data/generated/google/apis/apigee_v1/classes.rb +24 -22
  23. data/generated/google/apis/apigee_v1/service.rb +50 -48
  24. data/generated/google/apis/artifactregistry_v1.rb +38 -0
  25. data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
  26. data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
  27. data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
  28. data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
  29. data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -120
  30. data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -62
  31. data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
  32. data/generated/google/apis/artifactregistry_v1beta2/classes.rb +0 -120
  33. data/generated/google/apis/artifactregistry_v1beta2/representations.rb +0 -62
  34. data/generated/google/apis/chat_v1.rb +1 -1
  35. data/generated/google/apis/chat_v1/service.rb +132 -0
  36. data/generated/google/apis/cloudasset_v1.rb +1 -1
  37. data/generated/google/apis/cloudasset_v1/classes.rb +326 -0
  38. data/generated/google/apis/cloudasset_v1/representations.rb +139 -0
  39. data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
  40. data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -0
  41. data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -0
  42. data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
  43. data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -0
  44. data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -0
  45. data/generated/google/apis/cloudbuild_v1.rb +1 -1
  46. data/generated/google/apis/cloudbuild_v1/classes.rb +3 -3
  47. data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
  48. data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
  49. data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
  50. data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
  51. data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
  52. data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
  53. data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
  54. data/generated/google/apis/cloudresourcemanager_v1/classes.rb +0 -26
  55. data/generated/google/apis/cloudresourcemanager_v1/representations.rb +0 -24
  56. data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
  57. data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +0 -26
  58. data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +0 -24
  59. data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
  60. data/generated/google/apis/cloudresourcemanager_v2/classes.rb +0 -26
  61. data/generated/google/apis/cloudresourcemanager_v2/representations.rb +0 -24
  62. data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
  63. data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +0 -26
  64. data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +0 -24
  65. data/generated/google/apis/container_v1.rb +1 -1
  66. data/generated/google/apis/container_v1/classes.rb +7 -7
  67. data/generated/google/apis/container_v1beta1.rb +1 -1
  68. data/generated/google/apis/container_v1beta1/classes.rb +7 -7
  69. data/generated/google/apis/content_v2_1.rb +1 -1
  70. data/generated/google/apis/content_v2_1/classes.rb +434 -0
  71. data/generated/google/apis/content_v2_1/representations.rb +187 -0
  72. data/generated/google/apis/content_v2_1/service.rb +116 -0
  73. data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
  74. data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -0
  75. data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -0
  76. data/generated/google/apis/dataflow_v1b3.rb +1 -1
  77. data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
  78. data/generated/google/apis/dataproc_v1.rb +1 -1
  79. data/generated/google/apis/dataproc_v1/classes.rb +29 -1
  80. data/generated/google/apis/dataproc_v1/representations.rb +14 -0
  81. data/generated/google/apis/dataproc_v1/service.rb +42 -0
  82. data/generated/google/apis/dataproc_v1beta2.rb +1 -1
  83. data/generated/google/apis/dataproc_v1beta2/classes.rb +29 -1
  84. data/generated/google/apis/dataproc_v1beta2/representations.rb +14 -0
  85. data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
  86. data/generated/google/apis/dialogflow_v2.rb +1 -1
  87. data/generated/google/apis/dialogflow_v2/classes.rb +4041 -678
  88. data/generated/google/apis/dialogflow_v2/representations.rb +1851 -298
  89. data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
  90. data/generated/google/apis/dialogflow_v2beta1/classes.rb +4047 -684
  91. data/generated/google/apis/dialogflow_v2beta1/representations.rb +1862 -309
  92. data/generated/google/apis/dialogflow_v3.rb +1 -1
  93. data/generated/google/apis/dialogflow_v3/classes.rb +3120 -311
  94. data/generated/google/apis/dialogflow_v3/representations.rb +2002 -617
  95. data/generated/google/apis/dialogflow_v3/service.rb +408 -0
  96. data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
  97. data/generated/google/apis/dialogflow_v3beta1/classes.rb +5145 -2336
  98. data/generated/google/apis/dialogflow_v3beta1/representations.rb +1729 -344
  99. data/generated/google/apis/dialogflow_v3beta1/service.rb +408 -0
  100. data/generated/google/apis/dlp_v2.rb +1 -1
  101. data/generated/google/apis/dlp_v2/service.rb +3 -9
  102. data/generated/google/apis/documentai_v1beta2.rb +1 -1
  103. data/generated/google/apis/documentai_v1beta2/classes.rb +5 -92
  104. data/generated/google/apis/documentai_v1beta2/representations.rb +2 -15
  105. data/generated/google/apis/documentai_v1beta3.rb +1 -1
  106. data/generated/google/apis/documentai_v1beta3/classes.rb +5 -92
  107. data/generated/google/apis/documentai_v1beta3/representations.rb +2 -15
  108. data/generated/google/apis/gameservices_v1.rb +1 -1
  109. data/generated/google/apis/gameservices_v1/service.rb +14 -14
  110. data/generated/google/apis/gameservices_v1beta.rb +1 -1
  111. data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
  112. data/generated/google/apis/localservices_v1.rb +4 -1
  113. data/generated/google/apis/manufacturers_v1.rb +1 -1
  114. data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
  115. data/generated/google/apis/monitoring_v3.rb +1 -1
  116. data/generated/google/apis/monitoring_v3/classes.rb +2 -2
  117. data/generated/google/apis/notebooks_v1.rb +1 -1
  118. data/generated/google/apis/notebooks_v1/classes.rb +13 -0
  119. data/generated/google/apis/notebooks_v1/representations.rb +12 -0
  120. data/generated/google/apis/notebooks_v1/service.rb +34 -0
  121. data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
  122. data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +0 -37
  123. data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +0 -18
  124. data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
  125. data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
  126. data/generated/google/apis/securitycenter_v1.rb +1 -1
  127. data/generated/google/apis/securitycenter_v1/classes.rb +18 -10
  128. data/generated/google/apis/securitycenter_v1/representations.rb +1 -0
  129. data/generated/google/apis/securitycenter_v1/service.rb +30 -30
  130. data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
  131. data/generated/google/apis/securitycenter_v1beta1/classes.rb +7 -0
  132. data/generated/google/apis/securitycenter_v1beta1/representations.rb +1 -0
  133. data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
  134. data/generated/google/apis/securitycenter_v1beta2/classes.rb +7 -0
  135. data/generated/google/apis/securitycenter_v1beta2/representations.rb +1 -0
  136. data/generated/google/apis/servicemanagement_v1.rb +1 -1
  137. data/generated/google/apis/servicemanagement_v1/classes.rb +11 -10
  138. data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
  139. data/generated/google/apis/sqladmin_v1beta4/classes.rb +7 -7
  140. data/generated/google/apis/sqladmin_v1beta4/service.rb +4 -1
  141. data/generated/google/apis/storagetransfer_v1.rb +1 -1
  142. data/generated/google/apis/storagetransfer_v1/classes.rb +25 -0
  143. data/generated/google/apis/storagetransfer_v1/representations.rb +3 -0
  144. data/generated/google/apis/webmasters_v3/classes.rb +8 -0
  145. data/generated/google/apis/webmasters_v3/representations.rb +1 -0
  146. data/generated/google/apis/youtube_v3.rb +1 -1
  147. data/generated/google/apis/youtube_v3/classes.rb +18 -143
  148. data/generated/google/apis/youtube_v3/representations.rb +0 -57
  149. data/generated/google/apis/youtube_v3/service.rb +0 -43
  150. data/lib/google/apis/version.rb +1 -23
  151. metadata +27 -263
  152. data/.github/CONTRIBUTING.md +0 -31
  153. data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
  154. data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
  155. data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
  156. data/.github/workflows/autoapprove.yml +0 -49
  157. data/.github/workflows/release-please.yml +0 -57
  158. data/.gitignore +0 -23
  159. data/.kokoro/build.bat +0 -11
  160. data/.kokoro/build.sh +0 -4
  161. data/.kokoro/continuous/common.cfg +0 -25
  162. data/.kokoro/continuous/linux.cfg +0 -25
  163. data/.kokoro/continuous/osx.cfg +0 -8
  164. data/.kokoro/continuous/post.cfg +0 -30
  165. data/.kokoro/continuous/windows.cfg +0 -29
  166. data/.kokoro/osx.sh +0 -4
  167. data/.kokoro/presubmit/common.cfg +0 -24
  168. data/.kokoro/presubmit/linux.cfg +0 -24
  169. data/.kokoro/presubmit/osx.cfg +0 -8
  170. data/.kokoro/presubmit/windows.cfg +0 -29
  171. data/.kokoro/release.cfg +0 -94
  172. data/.kokoro/trampoline.bat +0 -10
  173. data/.kokoro/trampoline.sh +0 -4
  174. data/.repo-metadata.json +0 -5
  175. data/.rspec +0 -2
  176. data/.rubocop.yml +0 -12
  177. data/.rubocop_todo.yml +0 -63
  178. data/CODE_OF_CONDUCT.md +0 -43
  179. data/Gemfile +0 -55
  180. data/MIGRATING.md +0 -215
  181. data/README.md +0 -402
  182. data/Rakefile +0 -131
  183. data/api_list_config.yaml +0 -9
  184. data/api_names.yaml +0 -1082
  185. data/bin/generate-api +0 -194
  186. data/docs/api-keys.md +0 -20
  187. data/docs/auth.md +0 -53
  188. data/docs/client-secrets.md +0 -69
  189. data/docs/getting-started.md +0 -340
  190. data/docs/installation.md +0 -0
  191. data/docs/logging.md +0 -34
  192. data/docs/media-upload.md +0 -25
  193. data/docs/oauth-installed.md +0 -191
  194. data/docs/oauth-server.md +0 -133
  195. data/docs/oauth-web.md +0 -280
  196. data/docs/oauth.md +0 -268
  197. data/docs/pagination.md +0 -29
  198. data/docs/performance.md +0 -25
  199. data/google-api-client.gemspec +0 -36
  200. data/lib/google/api_client/auth/installed_app.rb +0 -143
  201. data/lib/google/api_client/auth/key_utils.rb +0 -94
  202. data/lib/google/api_client/auth/storage.rb +0 -104
  203. data/lib/google/api_client/auth/storages/file_store.rb +0 -57
  204. data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
  205. data/lib/google/api_client/client_secrets.rb +0 -176
  206. data/lib/google/apis.rb +0 -58
  207. data/lib/google/apis/core/api_command.rb +0 -209
  208. data/lib/google/apis/core/base_service.rb +0 -447
  209. data/lib/google/apis/core/batch.rb +0 -236
  210. data/lib/google/apis/core/composite_io.rb +0 -97
  211. data/lib/google/apis/core/download.rb +0 -118
  212. data/lib/google/apis/core/hashable.rb +0 -44
  213. data/lib/google/apis/core/http_command.rb +0 -447
  214. data/lib/google/apis/core/json_representation.rb +0 -153
  215. data/lib/google/apis/core/multipart.rb +0 -135
  216. data/lib/google/apis/core/upload.rb +0 -273
  217. data/lib/google/apis/errors.rb +0 -89
  218. data/lib/google/apis/generator.rb +0 -71
  219. data/lib/google/apis/generator/annotator.rb +0 -339
  220. data/lib/google/apis/generator/helpers.rb +0 -76
  221. data/lib/google/apis/generator/model.rb +0 -187
  222. data/lib/google/apis/generator/template.rb +0 -124
  223. data/lib/google/apis/generator/templates/_class.tmpl +0 -43
  224. data/lib/google/apis/generator/templates/_method.tmpl +0 -92
  225. data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
  226. data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
  227. data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
  228. data/lib/google/apis/generator/templates/classes.rb.tmpl +0 -29
  229. data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
  230. data/lib/google/apis/generator/templates/representations.rb.tmpl +0 -32
  231. data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
  232. data/lib/google/apis/options.rb +0 -116
  233. data/rakelib/devsite/devsite_builder.rb +0 -126
  234. data/rakelib/devsite/link_checker.rb +0 -64
  235. data/rakelib/devsite/repo_metadata.rb +0 -56
  236. data/rakelib/metrics.rake +0 -22
  237. data/rakelib/rubocop.rake +0 -10
  238. data/rakelib/spec.rake +0 -11
  239. data/rakelib/yard.rake +0 -11
  240. data/samples/cli/.env +0 -4
  241. data/samples/cli/Gemfile +0 -7
  242. data/samples/cli/README.md +0 -51
  243. data/samples/cli/google-api-samples +0 -32
  244. data/samples/cli/lib/base_cli.rb +0 -95
  245. data/samples/cli/lib/samples/adsense.rb +0 -99
  246. data/samples/cli/lib/samples/analytics.rb +0 -80
  247. data/samples/cli/lib/samples/androidpublisher.rb +0 -47
  248. data/samples/cli/lib/samples/bigquery.rb +0 -101
  249. data/samples/cli/lib/samples/calendar.rb +0 -83
  250. data/samples/cli/lib/samples/drive.rb +0 -82
  251. data/samples/cli/lib/samples/gmail.rb +0 -157
  252. data/samples/cli/lib/samples/pubsub.rb +0 -114
  253. data/samples/cli/lib/samples/sheets.rb +0 -61
  254. data/samples/cli/lib/samples/translate.rb +0 -44
  255. data/samples/cli/lib/samples/vision.rb +0 -69
  256. data/samples/cli/lib/samples/you_tube.rb +0 -47
  257. data/samples/web/Gemfile +0 -9
  258. data/samples/web/README.md +0 -44
  259. data/samples/web/app.rb +0 -120
  260. data/samples/web/views/calendar.erb +0 -34
  261. data/samples/web/views/drive.erb +0 -33
  262. data/samples/web/views/home.erb +0 -34
  263. data/samples/web/views/layout.erb +0 -40
  264. 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