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