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,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