google-api-client 0.52.0 → 0.53.0

Sign up to get free protection for your applications and to get access to all the features.
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,64 +0,0 @@
1
- require "open3"
2
-
3
- class LinkChecker
4
- def initialize
5
- @failed = false
6
- end
7
-
8
- def run
9
- job_info
10
- git_commit = ENV.fetch "KOKORO_GITHUB_COMMIT", "master"
11
-
12
- markdown_files = Dir.glob "**/*.md"
13
- broken_markdown_links = check_links(markdown_files,
14
- "https://github.com/googleapis/google-api-ruby-client/tree/#{git_commit}",
15
- " --skip '^(?!(\\Wruby.*google|.*google.*\\Wruby|.*cloud\\.google\\.com))'")
16
-
17
- broken_devsite_links = check_links(["google-api-client"],
18
- "https://googleapis.dev/ruby",
19
- "/latest/ --recurse --skip https:.*github.*")
20
-
21
- puts_broken_links broken_markdown_links
22
- puts_broken_links broken_devsite_links
23
- end
24
-
25
- def check_links location_list, base, tail
26
- broken_links = Hash.new { |h, k| h[k] = [] }
27
- location_list.each do |location|
28
- out, err, st = Open3.capture3 "npx linkinator #{base}/#{location}#{tail}"
29
- puts out
30
- unless st.to_i.zero?
31
- @failed = true
32
- puts err
33
- end
34
- checked_links = out.split "\n"
35
- checked_links.select! { |link| link =~ /\[\d+\]/ && !link.include?("[200]") }
36
- unless checked_links.empty?
37
- @failed = true
38
- broken_links[location] += checked_links
39
- end
40
- end
41
- broken_links
42
- end
43
-
44
- def puts_broken_links link_hash
45
- link_hash.each do |location, links|
46
- puts "#{location} contains the following broken links:"
47
- links.each { |link| puts " #{link}" }
48
- puts ""
49
- end
50
- end
51
-
52
- def job_info
53
- line_length = "Using Ruby - #{RUBY_VERSION}".length + 8
54
- puts
55
- puts "#" * line_length
56
- puts "### Using Ruby - #{RUBY_VERSION} ###"
57
- puts "#" * line_length
58
- puts
59
- end
60
-
61
- def exit_status
62
- @failed ? 1 : 0
63
- end
64
- end
@@ -1,56 +0,0 @@
1
- require "json"
2
-
3
- class RepoMetadata
4
- attr_accessor :data
5
-
6
- def initialize data
7
- @data = data
8
- normalize_data!
9
- end
10
-
11
- def allowed_fields
12
- [
13
- "name", "version", "language", "distribution-name",
14
- "product-page", "github-repository", "issue-tracker"
15
- ]
16
- end
17
-
18
- def build output_directory
19
- fields = @data.to_a.map { |kv| "--#{kv[0]} #{kv[1]}" }
20
- Dir.chdir output_directory do
21
- cmd "python3 -m docuploader create-metadata #{fields.join ' '}"
22
- end
23
- end
24
-
25
- def normalize_data!
26
- @data.delete_if { |k, _| !allowed_fields.include?(k) }
27
- end
28
-
29
- def [] key
30
- data[key]
31
- end
32
-
33
- def []= key, value
34
- @data[key] = value
35
- end
36
-
37
- def cmd line
38
- puts line
39
- output = `#{line}`
40
- puts output
41
- output
42
- end
43
-
44
- def self.from_source source
45
- if source.is_a? RepoMetadata
46
- data = source.data
47
- elsif source.is_a? Hash
48
- data = source
49
- elsif File.file? source
50
- data = JSON.parse File.read(source)
51
- else
52
- raise "Source must be a path, hash, or RepoMetadata instance"
53
- end
54
- RepoMetadata.new data
55
- end
56
- end
@@ -1,22 +0,0 @@
1
- namespace :metrics do
2
- task :lines do
3
- lines, codelines, total_lines, total_codelines = 0, 0, 0, 0
4
- for file_name in FileList['lib/**/*.rb', 'bin/generate-api']
5
- f = File.open(file_name)
6
- while line = f.gets
7
- lines += 1
8
- next if line =~ /^\s*$/
9
- next if line =~ /^\s*#/
10
- codelines += 1
11
- end
12
- puts "L: #{sprintf('%4d', lines)}, " +
13
- "LOC #{sprintf('%4d', codelines)} | #{file_name}"
14
- total_lines += lines
15
- total_codelines += codelines
16
-
17
- lines, codelines = 0, 0
18
- end
19
-
20
- puts "Total: Lines #{total_lines}, LOC #{total_codelines}"
21
- end
22
- end
@@ -1,10 +0,0 @@
1
- require 'rubocop/rake_task'
2
-
3
- desc 'Run RuboCop on the lib directory'
4
- RuboCop::RakeTask.new(:rubocop) do |task|
5
- task.patterns = ['lib/**/*.rb']
6
- # only show the files with failures
7
- task.formatters = ['progress']
8
- # don't abort rake on failure
9
- task.fail_on_error = false
10
- end
@@ -1,11 +0,0 @@
1
- require 'rake/clean'
2
- require 'rspec/core/rake_task'
3
-
4
- CLOBBER.include('coverage')
5
-
6
- namespace :spec do
7
- RSpec::Core::RakeTask.new(:all)
8
- end
9
-
10
- desc 'Alias to spec:all'
11
- task 'spec' => 'spec:all'
@@ -1,11 +0,0 @@
1
- begin
2
- require 'yard'
3
- require 'yard/rake/yardoc_task'
4
-
5
- YARD::Rake::YardocTask.new do |t|
6
- t.files = ['lib/**/*.rb', 'generated/**/*.rb']
7
- t.options = ['--verbose', '--markup', 'markdown']
8
- end
9
- rescue LoadError
10
- puts "YARD not available"
11
- end
@@ -1,4 +0,0 @@
1
- GOOGLE_API_KEY=AIzaSyC6GvjvPlEzJpTW2bW2t0MPHQTfltTosHk
2
- GOOGLE_CLIENT_ID=479164972499-i7j6av7bp2s4on5ltb7pj2lb2iu5a8gi.apps.googleusercontent.com
3
- GOOGLE_CLIENT_SECRET=JBotCTG5biFWGz43jdQSZaa3
4
- GOOGLE_APPLICATION_CREDENTIALS=~/Downloads/ruby-samples-cred.json
@@ -1,7 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'google-api-client', '~> 0.9'
4
- gem 'thor', '~> 0.19'
5
- gem 'os', '~> 0.9'
6
- gem 'rmail', '~> 1.1'
7
- gem 'dotenv'
@@ -1,51 +0,0 @@
1
- # API Samples
2
-
3
- This directory contains a small but growing collection of samples for various
4
- APIs. Each sample can be run on the command line from the `google-api-samples`
5
- script.
6
-
7
- Contributions of new samples are welcome.
8
-
9
- # Setup
10
-
11
- Depending on which particular samples you want to run, different
12
- steps may be required. Some samples, like Pub/Sub, require a service account,
13
- others like Drive, Calendar, and YouTube require an OAuth Client ID. And in
14
- some cases like Translate, only an API key is needed.
15
-
16
- * Create a project at https://console.developers.google.com
17
- * Go to the `API Manager` and enable the APIs you'd like to try
18
- * Go to `Credentials` and create the appropriate type of credential for the sample
19
- * For keys, use 'Server key' as the type
20
- * For OAuth Client IDs, use 'Other' as the type
21
- * For service accounts, use the 'JSON' key type
22
-
23
- Additional details on how to enable APIs and create credentials can be
24
- found in the help guide in the console.
25
-
26
-
27
- ## Example Environment Settings
28
-
29
- For convenience, application credentials can be read from the shell environment
30
- or placed in a .env file.
31
-
32
- After setup, your .env file might look something like:
33
-
34
- ```
35
- GOOGLE_API_KEY=AIzaSyC6GvjvPlEzJpTW2bW2t0MPHXXXXXXXXXX
36
- GOOGLE_CLIENT_ID=479164972499-i7j6av7bp2s4on5ltb7pjXXXXXXXXXX.apps.googleusercontent.com
37
- GOOGLE_CLIENT_SECRET=JBotCTG5biFWGzXXXXXXXXXX
38
- GOOGLE_APPLICATION_CREDENTIALS=~/ruby-samples-cred.json
39
- ```
40
-
41
- # Running the samples
42
-
43
- To list the available sample modules, run the script:
44
- ```
45
- google-api-samples
46
- ```
47
-
48
- To get help on a specific set of samples, run:
49
- ```
50
- google-api-samples help <module>
51
- ```
@@ -1,32 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- $:.unshift(File.expand_path("../lib", __FILE__))
4
-
5
- require 'thor'
6
- require 'dotenv'
7
-
8
-
9
- # Small script to allow executing samples from the command line.
10
- # Each sample is loaded as a subcommand.
11
- #
12
- # Example usage:
13
- #
14
- # google-api-samples drive upload myfile.txt
15
- #
16
- #
17
- class App < Thor
18
-
19
- # Load all the samples and register them as subcommands
20
- Dir.glob('./lib/samples/*.rb').each do |file|
21
- require file
22
- end
23
-
24
- Samples.constants.each do |const|
25
- desc const.downcase, "#{const} samples"
26
- subcommand const.downcase, Samples.const_get(const)
27
- end
28
-
29
- end
30
-
31
- Dotenv.load
32
- App.start(ARGV)
@@ -1,95 +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 'googleauth'
16
- require 'googleauth/stores/file_token_store'
17
- require 'fileutils'
18
- require 'thor'
19
- require 'os'
20
-
21
- # Base command line module for samples. Provides authorization support,
22
- # either using application default credentials or user authorization
23
- # depending on the use case.
24
- class BaseCli < Thor
25
- include Thor::Actions
26
-
27
- OOB_URI = 'urn:ietf:wg:oauth:2.0:oob'
28
-
29
- class_option :user, :type => :string
30
- class_option :api_key, :type => :string
31
-
32
- no_commands do
33
-
34
- # Returns the path to the client_secrets.json file.
35
- def client_secrets_path
36
- return ENV['GOOGLE_CLIENT_SECRETS'] if ENV.has_key?('GOOGLE_CLIENT_SECRETS')
37
- return well_known_path_for('client_secrets.json')
38
- end
39
-
40
- # Returns the path to the token store.
41
- def token_store_path
42
- return ENV['GOOGLE_CREDENTIAL_STORE'] if ENV.has_key?('GOOGLE_CREDENTIAL_STORE')
43
- return well_known_path_for('credentials.yaml')
44
- end
45
-
46
- # Builds a path to a file in $HOME/.config/google (or %APPDATA%/google,
47
- # on Windows)
48
- def well_known_path_for(file)
49
- if OS.windows?
50
- dir = ENV.fetch('HOME'){ ENV['APPDATA']}
51
- File.join(dir, 'google', file)
52
- else
53
- File.join(ENV['HOME'], '.config', 'google', file)
54
- end
55
- end
56
-
57
- # Returns application credentials for the given scope.
58
- def application_credentials_for(scope)
59
- Google::Auth.get_application_default(scope)
60
- end
61
-
62
- # Returns user credentials for the given scope. Requests authorization
63
- # if requrired.
64
- def user_credentials_for(scope)
65
- FileUtils.mkdir_p(File.dirname(token_store_path))
66
-
67
- if ENV['GOOGLE_CLIENT_ID']
68
- client_id = Google::Auth::ClientId.new(ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'])
69
- else
70
- client_id = Google::Auth::ClientId.from_file(client_secrets_path)
71
- end
72
- token_store = Google::Auth::Stores::FileTokenStore.new(:file => token_store_path)
73
- authorizer = Google::Auth::UserAuthorizer.new(client_id, scope, token_store)
74
-
75
- user_id = options[:user] || 'default'
76
-
77
- credentials = authorizer.get_credentials(user_id)
78
- if credentials.nil?
79
- url = authorizer.get_authorization_url(base_url: OOB_URI)
80
- say "Open the following URL in your browser and authorize the application."
81
- say url
82
- code = ask "Enter the authorization code:"
83
- credentials = authorizer.get_and_store_credentials_from_code(
84
- user_id: user_id, code: code, base_url: OOB_URI)
85
- end
86
- credentials
87
- end
88
-
89
- # Gets the API key of the client
90
- def api_key
91
- ENV['GOOGLE_API_KEY'] || options[:api_key]
92
- end
93
-
94
- end
95
- end
@@ -1,99 +0,0 @@
1
- # Copyright 2017 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/adsense_v1_4'
16
- require 'base_cli'
17
-
18
- module Samples
19
- # Examples for the Adsense API
20
- #
21
- # Sample usage:
22
- #
23
- # $ ./google-api-samples adsense list_accounts
24
- # $ ./google-api-samples adsense list_account_ad_clients pub-0000000000000000
25
- # $ ./google-api-samples adsense list_account_ad_units pub-0000000000000000 ca-pub-0000000000000000
26
- # $ ./google-api-samples adsense get_account_ad_unit_ad_code pub-0000000000000000 ca-pub-0000000000000000 ca-pub-0000000000000000:0000000000
27
- #
28
- class Adsense < BaseCli
29
- Adsense = Google::Apis::AdsenseV1_4
30
-
31
- desc 'list_accounts', 'List all accounts available to this AdSense account'
32
- method_option :max_results, type: :numeric, default: 100
33
- def list_accounts
34
- adsense = Adsense::AdSenseService.new
35
- adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE)
36
-
37
- result = adsense.list_accounts(max_results: options[:max_results])
38
- if result.items
39
- result.items.each { |account| puts "#{account.id} #{account.kind} #{account.name} #{account.premium} #{account.timezone}" }
40
- end
41
- end
42
-
43
- desc(
44
- 'list_account_ad_clients ACCOUNT_ID',
45
- 'List all ad clients in the specified account'
46
- )
47
- method_option :max_results, type: :numeric, default: 100
48
- def list_account_ad_clients(account_id)
49
- adsense = Adsense::AdSenseService.new
50
- adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE)
51
-
52
- result = adsense.list_account_ad_clients(
53
- account_id,
54
- max_results: options[:max_results]
55
- )
56
- if result.items
57
- result.items.each { |ad_client| puts ad_client.id }
58
- end
59
- end
60
-
61
- desc(
62
- 'list_account_ad_units ACCOUNT_ID AD_CLIENT_ID',
63
- 'List all ad units in the specified ad client for the specified account'
64
- )
65
- method_option :max_results, type: :numeric, default: 100
66
- method_option :include_inactive, type: :boolean, default: true
67
- def list_account_ad_units(account_id, ad_client_id)
68
- adsense = Adsense::AdSenseService.new
69
- adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE)
70
-
71
- result = adsense.list_account_ad_units(
72
- account_id, ad_client_id,
73
- max_results: options[:max_results],
74
- include_inactive: options[:include_inactive]
75
- )
76
- if result.items
77
- result.items.each do |ad_unit|
78
- puts "#{ad_unit.id} #{ad_unit.name} #{ad_unit.status} #{ad_unit.code}"
79
- end
80
- end
81
- end
82
-
83
- desc(
84
- 'get_account_ad_unit_ad_code ACCOUNT_ID AD_CLIENT_ID AD_UNIT_ID',
85
- 'Get ad code for the specified ad unit'
86
- )
87
- def get_account_ad_unit_ad_code(account_id, ad_client_id, ad_unit_id)
88
- adsense = Adsense::AdSenseService.new
89
- adsense.authorization = user_credentials_for(Adsense::AUTH_ADSENSE)
90
-
91
- result = adsense.get_account_ad_unit_ad_code(
92
- account_id,
93
- ad_client_id,
94
- ad_unit_id
95
- )
96
- puts result.ad_code
97
- end
98
- end
99
- end