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.
- checksums.yaml +4 -4
- data/.yardopts +0 -14
- data/CHANGELOG.md +6 -0
- data/OVERVIEW.md +36 -27
- data/generated/google/apis/accesscontextmanager_v1.rb +1 -1
- data/generated/google/apis/accesscontextmanager_v1/classes.rb +326 -0
- data/generated/google/apis/accesscontextmanager_v1/representations.rb +139 -0
- data/generated/google/apis/admin_directory_v1.rb +1 -1
- data/generated/google/apis/admin_directory_v1/service.rb +2 -2
- data/generated/google/apis/analyticsadmin_v1alpha.rb +2 -2
- data/generated/google/apis/analyticsadmin_v1alpha/classes.rb +8 -0
- data/generated/google/apis/analyticsadmin_v1alpha/representations.rb +1 -0
- data/generated/google/apis/analyticsadmin_v1alpha/service.rb +12 -1
- data/{lib/google/apis/core/logging.rb → generated/google/apis/apigateway_v1.rb} +14 -10
- data/generated/google/apis/apigateway_v1/classes.rb +1116 -0
- data/generated/google/apis/apigateway_v1/representations.rb +442 -0
- data/generated/google/apis/apigateway_v1/service.rb +1172 -0
- data/generated/google/apis/apigateway_v1beta.rb +1 -1
- data/generated/google/apis/apigateway_v1beta/classes.rb +19 -8
- data/generated/google/apis/apigateway_v1beta/representations.rb +1 -0
- data/generated/google/apis/apigee_v1.rb +1 -1
- data/generated/google/apis/apigee_v1/classes.rb +24 -22
- data/generated/google/apis/apigee_v1/service.rb +50 -48
- data/generated/google/apis/artifactregistry_v1.rb +38 -0
- data/generated/google/apis/artifactregistry_v1/classes.rb +242 -0
- data/generated/google/apis/artifactregistry_v1/representations.rb +116 -0
- data/generated/google/apis/artifactregistry_v1/service.rb +210 -0
- data/generated/google/apis/artifactregistry_v1beta1.rb +1 -1
- data/generated/google/apis/artifactregistry_v1beta1/classes.rb +0 -120
- data/generated/google/apis/artifactregistry_v1beta1/representations.rb +0 -62
- data/generated/google/apis/artifactregistry_v1beta2.rb +1 -1
- data/generated/google/apis/artifactregistry_v1beta2/classes.rb +0 -120
- data/generated/google/apis/artifactregistry_v1beta2/representations.rb +0 -62
- data/generated/google/apis/chat_v1.rb +1 -1
- data/generated/google/apis/chat_v1/service.rb +132 -0
- data/generated/google/apis/cloudasset_v1.rb +1 -1
- data/generated/google/apis/cloudasset_v1/classes.rb +326 -0
- data/generated/google/apis/cloudasset_v1/representations.rb +139 -0
- data/generated/google/apis/cloudasset_v1beta1.rb +1 -1
- data/generated/google/apis/cloudasset_v1beta1/classes.rb +326 -0
- data/generated/google/apis/cloudasset_v1beta1/representations.rb +139 -0
- data/generated/google/apis/cloudasset_v1p5beta1.rb +1 -1
- data/generated/google/apis/cloudasset_v1p5beta1/classes.rb +326 -0
- data/generated/google/apis/cloudasset_v1p5beta1/representations.rb +139 -0
- data/generated/google/apis/cloudbuild_v1.rb +1 -1
- data/generated/google/apis/cloudbuild_v1/classes.rb +3 -3
- data/generated/google/apis/cloudbuild_v1alpha1.rb +1 -1
- data/generated/google/apis/cloudbuild_v1alpha1/classes.rb +3 -3
- data/generated/google/apis/cloudbuild_v1alpha2.rb +1 -1
- data/generated/google/apis/cloudbuild_v1alpha2/classes.rb +3 -3
- data/generated/google/apis/cloudidentity_v1beta1.rb +1 -1
- data/generated/google/apis/cloudidentity_v1beta1/classes.rb +1 -1
- data/generated/google/apis/cloudresourcemanager_v1.rb +1 -1
- data/generated/google/apis/cloudresourcemanager_v1/classes.rb +0 -26
- data/generated/google/apis/cloudresourcemanager_v1/representations.rb +0 -24
- data/generated/google/apis/cloudresourcemanager_v1beta1.rb +1 -1
- data/generated/google/apis/cloudresourcemanager_v1beta1/classes.rb +0 -26
- data/generated/google/apis/cloudresourcemanager_v1beta1/representations.rb +0 -24
- data/generated/google/apis/cloudresourcemanager_v2.rb +1 -1
- data/generated/google/apis/cloudresourcemanager_v2/classes.rb +0 -26
- data/generated/google/apis/cloudresourcemanager_v2/representations.rb +0 -24
- data/generated/google/apis/cloudresourcemanager_v2beta1.rb +1 -1
- data/generated/google/apis/cloudresourcemanager_v2beta1/classes.rb +0 -26
- data/generated/google/apis/cloudresourcemanager_v2beta1/representations.rb +0 -24
- data/generated/google/apis/container_v1.rb +1 -1
- data/generated/google/apis/container_v1/classes.rb +7 -7
- data/generated/google/apis/container_v1beta1.rb +1 -1
- data/generated/google/apis/container_v1beta1/classes.rb +7 -7
- data/generated/google/apis/content_v2_1.rb +1 -1
- data/generated/google/apis/content_v2_1/classes.rb +434 -0
- data/generated/google/apis/content_v2_1/representations.rb +187 -0
- data/generated/google/apis/content_v2_1/service.rb +116 -0
- data/generated/google/apis/datacatalog_v1beta1.rb +1 -1
- data/generated/google/apis/datacatalog_v1beta1/classes.rb +6 -0
- data/generated/google/apis/datacatalog_v1beta1/representations.rb +1 -0
- data/generated/google/apis/dataflow_v1b3.rb +1 -1
- data/generated/google/apis/datalabeling_v1beta1.rb +1 -1
- data/generated/google/apis/dataproc_v1.rb +1 -1
- data/generated/google/apis/dataproc_v1/classes.rb +29 -1
- data/generated/google/apis/dataproc_v1/representations.rb +14 -0
- data/generated/google/apis/dataproc_v1/service.rb +42 -0
- data/generated/google/apis/dataproc_v1beta2.rb +1 -1
- data/generated/google/apis/dataproc_v1beta2/classes.rb +29 -1
- data/generated/google/apis/dataproc_v1beta2/representations.rb +14 -0
- data/generated/google/apis/dataproc_v1beta2/service.rb +42 -0
- data/generated/google/apis/dialogflow_v2.rb +1 -1
- data/generated/google/apis/dialogflow_v2/classes.rb +4041 -678
- data/generated/google/apis/dialogflow_v2/representations.rb +1851 -298
- data/generated/google/apis/dialogflow_v2beta1.rb +1 -1
- data/generated/google/apis/dialogflow_v2beta1/classes.rb +4047 -684
- data/generated/google/apis/dialogflow_v2beta1/representations.rb +1862 -309
- data/generated/google/apis/dialogflow_v3.rb +1 -1
- data/generated/google/apis/dialogflow_v3/classes.rb +3120 -311
- data/generated/google/apis/dialogflow_v3/representations.rb +2002 -617
- data/generated/google/apis/dialogflow_v3/service.rb +408 -0
- data/generated/google/apis/dialogflow_v3beta1.rb +1 -1
- data/generated/google/apis/dialogflow_v3beta1/classes.rb +5145 -2336
- data/generated/google/apis/dialogflow_v3beta1/representations.rb +1729 -344
- data/generated/google/apis/dialogflow_v3beta1/service.rb +408 -0
- data/generated/google/apis/dlp_v2.rb +1 -1
- data/generated/google/apis/dlp_v2/service.rb +3 -9
- data/generated/google/apis/documentai_v1beta2.rb +1 -1
- data/generated/google/apis/documentai_v1beta2/classes.rb +5 -92
- data/generated/google/apis/documentai_v1beta2/representations.rb +2 -15
- data/generated/google/apis/documentai_v1beta3.rb +1 -1
- data/generated/google/apis/documentai_v1beta3/classes.rb +5 -92
- data/generated/google/apis/documentai_v1beta3/representations.rb +2 -15
- data/generated/google/apis/gameservices_v1.rb +1 -1
- data/generated/google/apis/gameservices_v1/service.rb +14 -14
- data/generated/google/apis/gameservices_v1beta.rb +1 -1
- data/generated/google/apis/gameservices_v1beta/service.rb +14 -14
- data/generated/google/apis/localservices_v1.rb +4 -1
- data/generated/google/apis/manufacturers_v1.rb +1 -1
- data/generated/google/apis/manufacturers_v1/classes.rb +2 -2
- data/generated/google/apis/monitoring_v3.rb +1 -1
- data/generated/google/apis/monitoring_v3/classes.rb +2 -2
- data/generated/google/apis/notebooks_v1.rb +1 -1
- data/generated/google/apis/notebooks_v1/classes.rb +13 -0
- data/generated/google/apis/notebooks_v1/representations.rb +12 -0
- data/generated/google/apis/notebooks_v1/service.rb +34 -0
- data/generated/google/apis/prod_tt_sasportal_v1alpha1.rb +1 -1
- data/generated/google/apis/prod_tt_sasportal_v1alpha1/classes.rb +0 -37
- data/generated/google/apis/prod_tt_sasportal_v1alpha1/representations.rb +0 -18
- data/generated/google/apis/recommendationengine_v1beta1.rb +1 -1
- data/generated/google/apis/recommendationengine_v1beta1/service.rb +2 -1
- data/generated/google/apis/securitycenter_v1.rb +1 -1
- data/generated/google/apis/securitycenter_v1/classes.rb +18 -10
- data/generated/google/apis/securitycenter_v1/representations.rb +1 -0
- data/generated/google/apis/securitycenter_v1/service.rb +30 -30
- data/generated/google/apis/securitycenter_v1beta1.rb +1 -1
- data/generated/google/apis/securitycenter_v1beta1/classes.rb +7 -0
- data/generated/google/apis/securitycenter_v1beta1/representations.rb +1 -0
- data/generated/google/apis/securitycenter_v1beta2.rb +1 -1
- data/generated/google/apis/securitycenter_v1beta2/classes.rb +7 -0
- data/generated/google/apis/securitycenter_v1beta2/representations.rb +1 -0
- data/generated/google/apis/servicemanagement_v1.rb +1 -1
- data/generated/google/apis/servicemanagement_v1/classes.rb +11 -10
- data/generated/google/apis/sqladmin_v1beta4.rb +1 -1
- data/generated/google/apis/sqladmin_v1beta4/classes.rb +7 -7
- data/generated/google/apis/sqladmin_v1beta4/service.rb +4 -1
- data/generated/google/apis/storagetransfer_v1.rb +1 -1
- data/generated/google/apis/storagetransfer_v1/classes.rb +25 -0
- data/generated/google/apis/storagetransfer_v1/representations.rb +3 -0
- data/generated/google/apis/webmasters_v3/classes.rb +8 -0
- data/generated/google/apis/webmasters_v3/representations.rb +1 -0
- data/generated/google/apis/youtube_v3.rb +1 -1
- data/generated/google/apis/youtube_v3/classes.rb +18 -143
- data/generated/google/apis/youtube_v3/representations.rb +0 -57
- data/generated/google/apis/youtube_v3/service.rb +0 -43
- data/lib/google/apis/version.rb +1 -23
- metadata +27 -263
- data/.github/CONTRIBUTING.md +0 -31
- data/.github/ISSUE_TEMPLATE/bug_report.md +0 -36
- data/.github/ISSUE_TEMPLATE/feature_request.md +0 -21
- data/.github/ISSUE_TEMPLATE/support_request.md +0 -7
- data/.github/workflows/autoapprove.yml +0 -49
- data/.github/workflows/release-please.yml +0 -57
- data/.gitignore +0 -23
- data/.kokoro/build.bat +0 -11
- data/.kokoro/build.sh +0 -4
- data/.kokoro/continuous/common.cfg +0 -25
- data/.kokoro/continuous/linux.cfg +0 -25
- data/.kokoro/continuous/osx.cfg +0 -8
- data/.kokoro/continuous/post.cfg +0 -30
- data/.kokoro/continuous/windows.cfg +0 -29
- data/.kokoro/osx.sh +0 -4
- data/.kokoro/presubmit/common.cfg +0 -24
- data/.kokoro/presubmit/linux.cfg +0 -24
- data/.kokoro/presubmit/osx.cfg +0 -8
- data/.kokoro/presubmit/windows.cfg +0 -29
- data/.kokoro/release.cfg +0 -94
- data/.kokoro/trampoline.bat +0 -10
- data/.kokoro/trampoline.sh +0 -4
- data/.repo-metadata.json +0 -5
- data/.rspec +0 -2
- data/.rubocop.yml +0 -12
- data/.rubocop_todo.yml +0 -63
- data/CODE_OF_CONDUCT.md +0 -43
- data/Gemfile +0 -55
- data/MIGRATING.md +0 -215
- data/README.md +0 -402
- data/Rakefile +0 -131
- data/api_list_config.yaml +0 -9
- data/api_names.yaml +0 -1082
- data/bin/generate-api +0 -194
- data/docs/api-keys.md +0 -20
- data/docs/auth.md +0 -53
- data/docs/client-secrets.md +0 -69
- data/docs/getting-started.md +0 -340
- data/docs/installation.md +0 -0
- data/docs/logging.md +0 -34
- data/docs/media-upload.md +0 -25
- data/docs/oauth-installed.md +0 -191
- data/docs/oauth-server.md +0 -133
- data/docs/oauth-web.md +0 -280
- data/docs/oauth.md +0 -268
- data/docs/pagination.md +0 -29
- data/docs/performance.md +0 -25
- data/google-api-client.gemspec +0 -36
- data/lib/google/api_client/auth/installed_app.rb +0 -143
- data/lib/google/api_client/auth/key_utils.rb +0 -94
- data/lib/google/api_client/auth/storage.rb +0 -104
- data/lib/google/api_client/auth/storages/file_store.rb +0 -57
- data/lib/google/api_client/auth/storages/redis_store.rb +0 -59
- data/lib/google/api_client/client_secrets.rb +0 -176
- data/lib/google/apis.rb +0 -58
- data/lib/google/apis/core/api_command.rb +0 -209
- data/lib/google/apis/core/base_service.rb +0 -447
- data/lib/google/apis/core/batch.rb +0 -236
- data/lib/google/apis/core/composite_io.rb +0 -97
- data/lib/google/apis/core/download.rb +0 -118
- data/lib/google/apis/core/hashable.rb +0 -44
- data/lib/google/apis/core/http_command.rb +0 -447
- data/lib/google/apis/core/json_representation.rb +0 -153
- data/lib/google/apis/core/multipart.rb +0 -135
- data/lib/google/apis/core/upload.rb +0 -273
- data/lib/google/apis/errors.rb +0 -89
- data/lib/google/apis/generator.rb +0 -71
- data/lib/google/apis/generator/annotator.rb +0 -339
- data/lib/google/apis/generator/helpers.rb +0 -76
- data/lib/google/apis/generator/model.rb +0 -187
- data/lib/google/apis/generator/template.rb +0 -124
- data/lib/google/apis/generator/templates/_class.tmpl +0 -43
- data/lib/google/apis/generator/templates/_method.tmpl +0 -92
- data/lib/google/apis/generator/templates/_representation.tmpl +0 -51
- data/lib/google/apis/generator/templates/_representation_stub.tmpl +0 -17
- data/lib/google/apis/generator/templates/_representation_type.tmpl +0 -10
- data/lib/google/apis/generator/templates/classes.rb.tmpl +0 -29
- data/lib/google/apis/generator/templates/module.rb.tmpl +0 -40
- data/lib/google/apis/generator/templates/representations.rb.tmpl +0 -32
- data/lib/google/apis/generator/templates/service.rb.tmpl +0 -61
- data/lib/google/apis/options.rb +0 -116
- data/rakelib/devsite/devsite_builder.rb +0 -126
- data/rakelib/devsite/link_checker.rb +0 -64
- data/rakelib/devsite/repo_metadata.rb +0 -56
- data/rakelib/metrics.rake +0 -22
- data/rakelib/rubocop.rake +0 -10
- data/rakelib/spec.rake +0 -11
- data/rakelib/yard.rake +0 -11
- data/samples/cli/.env +0 -4
- data/samples/cli/Gemfile +0 -7
- data/samples/cli/README.md +0 -51
- data/samples/cli/google-api-samples +0 -32
- data/samples/cli/lib/base_cli.rb +0 -95
- data/samples/cli/lib/samples/adsense.rb +0 -99
- data/samples/cli/lib/samples/analytics.rb +0 -80
- data/samples/cli/lib/samples/androidpublisher.rb +0 -47
- data/samples/cli/lib/samples/bigquery.rb +0 -101
- data/samples/cli/lib/samples/calendar.rb +0 -83
- data/samples/cli/lib/samples/drive.rb +0 -82
- data/samples/cli/lib/samples/gmail.rb +0 -157
- data/samples/cli/lib/samples/pubsub.rb +0 -114
- data/samples/cli/lib/samples/sheets.rb +0 -61
- data/samples/cli/lib/samples/translate.rb +0 -44
- data/samples/cli/lib/samples/vision.rb +0 -69
- data/samples/cli/lib/samples/you_tube.rb +0 -47
- data/samples/web/Gemfile +0 -9
- data/samples/web/README.md +0 -44
- data/samples/web/app.rb +0 -120
- data/samples/web/views/calendar.erb +0 -34
- data/samples/web/views/drive.erb +0 -33
- data/samples/web/views/home.erb +0 -34
- data/samples/web/views/layout.erb +0 -40
- 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
|
data/rakelib/metrics.rake
DELETED
@@ -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
|
data/rakelib/rubocop.rake
DELETED
@@ -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
|
data/rakelib/spec.rake
DELETED
data/rakelib/yard.rake
DELETED
data/samples/cli/.env
DELETED
data/samples/cli/Gemfile
DELETED
data/samples/cli/README.md
DELETED
@@ -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)
|
data/samples/cli/lib/base_cli.rb
DELETED
@@ -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
|