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,80 +0,0 @@
|
|
1
|
-
# Copyright 2016 Google Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'google/apis/analytics_v3'
|
16
|
-
require 'base_cli'
|
17
|
-
|
18
|
-
module Samples
|
19
|
-
# Examples for the Google Analytics APIs
|
20
|
-
#
|
21
|
-
# Sample usage session:
|
22
|
-
#
|
23
|
-
# $ ./google-api-samples analytics show_visits 55622900 --start='2015-12-01' --end='2015-12-08'
|
24
|
-
# ga:date ga:sessions ga:users ga:newUsers ga:percentNewSessions ga:sessionDuration ga:avgSessionDuration
|
25
|
-
# 20151201 0 0 0 0.0 0.0 0.0
|
26
|
-
# 20151202 0 0 0 0.0 0.0 0.0
|
27
|
-
# 20151203 1 1 1 100.0 0.0 0.0
|
28
|
-
# 20151204 2 2 1 50.0 616.0 308.0
|
29
|
-
# 20151205 0 0 0 0.0 0.0 0.0
|
30
|
-
# 20151206 1 1 1 100.0 0.0 0.0
|
31
|
-
# 20151207 0 0 0 0.0 0.0 0.0
|
32
|
-
# 20151208 2 2 1 50.0 0.0 0.0
|
33
|
-
#
|
34
|
-
class Analytics < BaseCli
|
35
|
-
Analytics = Google::Apis::AnalyticsV3
|
36
|
-
|
37
|
-
desc 'show_visits PROFILE_ID', 'Show visits for the given analytics profile ID'
|
38
|
-
method_option :start, type: :string, required: true
|
39
|
-
method_option :end, type: :string, required: true
|
40
|
-
def show_visits(profile_id)
|
41
|
-
analytics = Analytics::AnalyticsService.new
|
42
|
-
analytics.authorization = user_credentials_for(Analytics::AUTH_ANALYTICS)
|
43
|
-
|
44
|
-
dimensions = %w(ga:date)
|
45
|
-
metrics = %w(ga:sessions ga:users ga:newUsers ga:percentNewSessions
|
46
|
-
ga:sessionDuration ga:avgSessionDuration)
|
47
|
-
sort = %w(ga:date)
|
48
|
-
result = analytics.get_ga_data("ga:#{profile_id}",
|
49
|
-
options[:start],
|
50
|
-
options[:end],
|
51
|
-
metrics.join(','),
|
52
|
-
dimensions: dimensions.join(','),
|
53
|
-
sort: sort.join(','))
|
54
|
-
|
55
|
-
data = []
|
56
|
-
data.push(result.column_headers.map { |h| h.name })
|
57
|
-
data.push(*result.rows)
|
58
|
-
print_table(data)
|
59
|
-
end
|
60
|
-
|
61
|
-
desc 'show_realtime_visits PROFILE_ID', 'Show realtime visits for the given analytics profile ID'
|
62
|
-
def show_realtime_visits(profile_id)
|
63
|
-
analytics = Analytics::AnalyticsService.new
|
64
|
-
analytics.authorization = user_credentials_for(Analytics::AUTH_ANALYTICS)
|
65
|
-
|
66
|
-
dimensions = %w(rt:medium rt:pagePath)
|
67
|
-
metrics = %w(rt:activeUsers)
|
68
|
-
sort = %w(rt:medium rt:pagePath)
|
69
|
-
result = analytics.get_realtime_data("ga:#{profile_id}",
|
70
|
-
metrics.join(','),
|
71
|
-
dimensions: dimensions.join(','),
|
72
|
-
sort: sort.join(','))
|
73
|
-
|
74
|
-
data = []
|
75
|
-
data.push(result.column_headers.map { |h| h.name })
|
76
|
-
data.push(*result.rows)
|
77
|
-
print_table(data)
|
78
|
-
end
|
79
|
-
end
|
80
|
-
end
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# Copyright 2016 Google Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'google/apis/androidpublisher_v2'
|
16
|
-
require 'base_cli'
|
17
|
-
|
18
|
-
|
19
|
-
module Samples
|
20
|
-
# Examples for the Google Play Developer API
|
21
|
-
#
|
22
|
-
# Sample usage:
|
23
|
-
#
|
24
|
-
# $ ./google-api-samples androidpublisher upload --apk-path /path/to/com.spiffygame.apk --package-name com.spiffygame
|
25
|
-
class Androidpublisher < BaseCli
|
26
|
-
Androidpublisher = Google::Apis::AndroidpublisherV2
|
27
|
-
|
28
|
-
desc 'upload', 'Upload an apk to Google Play'
|
29
|
-
method_option :apk_path, type: :string
|
30
|
-
method_option :package_name, type: :string
|
31
|
-
def upload_apk
|
32
|
-
android_publisher = Androidpublisher::AndroidPublisherService.new
|
33
|
-
android_publisher.authorization = user_credentials_for(Androidpublisher::AUTH_ANDROIDPUBLISHER)
|
34
|
-
|
35
|
-
apk_path = options[:apk_path]
|
36
|
-
package_name = options[:package_name]
|
37
|
-
|
38
|
-
edit = android_publisher.insert_edit(package_name)
|
39
|
-
apk = android_publisher.upload_apk(package_name, edit.id, upload_source: apk_path)
|
40
|
-
android_publisher.update_track(package_name, edit.id, :production,
|
41
|
-
Androidpublisher::Track.new(track: "production", version_codes: [apk.version_code]))
|
42
|
-
android_publisher.commit_edit(package_name, edit.id)
|
43
|
-
|
44
|
-
say "Upload complete"
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,101 +0,0 @@
|
|
1
|
-
# Copyright 2016 Google Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'google/apis/bigquery_v2'
|
16
|
-
require 'base_cli'
|
17
|
-
|
18
|
-
|
19
|
-
module Samples
|
20
|
-
# Examples for the Google BigQuery API
|
21
|
-
#
|
22
|
-
# Sample usage:
|
23
|
-
#
|
24
|
-
# $ ./google-api-samples bigquery list_datasets --project_id=publicdata
|
25
|
-
# $ ./google-api-samples bigquery list_tables --project_id=publicdata --dataset_id=samples
|
26
|
-
# $ ./google-api-samples bigquery list_table_data --project_id=publicdata --dataset_id=samples --table_id=wikipedia --max_results=10
|
27
|
-
class Bigquery < BaseCli
|
28
|
-
Bigquery = Google::Apis::BigqueryV2
|
29
|
-
|
30
|
-
desc 'list datasets', 'List datasets'
|
31
|
-
method_option :project_id, type: :string
|
32
|
-
def list_datasets
|
33
|
-
bigquery = Bigquery::BigqueryService.new
|
34
|
-
bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
|
35
|
-
|
36
|
-
begin
|
37
|
-
project_id = options[:project_id] || 'publicdata'
|
38
|
-
result = bigquery.list_datasets(project_id)
|
39
|
-
data = []
|
40
|
-
data << ['id','kind']
|
41
|
-
result.datasets.each do |dataset|
|
42
|
-
data << [
|
43
|
-
dataset.id,
|
44
|
-
dataset.kind,
|
45
|
-
]
|
46
|
-
end
|
47
|
-
print_table(data)
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
desc 'list tables', 'List tables'
|
52
|
-
method_option :project_id, type: :string
|
53
|
-
method_option :dataset_id, type: :string
|
54
|
-
def list_tables
|
55
|
-
bigquery = Bigquery::BigqueryService.new
|
56
|
-
bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
|
57
|
-
|
58
|
-
begin
|
59
|
-
project_id = options[:project_id] || 'publicdata'
|
60
|
-
dataset_id = options[:dataset_id] || 'samples'
|
61
|
-
result = bigquery.list_tables(project_id, dataset_id)
|
62
|
-
data = []
|
63
|
-
data << ['id','kind']
|
64
|
-
result.tables.each do |table|
|
65
|
-
data << [
|
66
|
-
table.id,
|
67
|
-
table.kind,
|
68
|
-
]
|
69
|
-
end
|
70
|
-
print_table(data)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
|
-
desc 'list table data', 'List table data'
|
75
|
-
method_option :project_id, type: :string
|
76
|
-
method_option :dataset_id, type: :string
|
77
|
-
method_option :table_id, type: :string
|
78
|
-
def list_table_data
|
79
|
-
bigquery = Bigquery::BigqueryService.new
|
80
|
-
bigquery.authorization = user_credentials_for(Bigquery::AUTH_BIGQUERY)
|
81
|
-
|
82
|
-
begin
|
83
|
-
project_id = options[:project_id] || 'publicdata'
|
84
|
-
dataset_id = options[:dataset_id] || 'samples'
|
85
|
-
table_id = options[:table_id] || 'wikipedia'
|
86
|
-
max_results = options[:max_results] || 10
|
87
|
-
result = bigquery.list_table_data(project_id, dataset_id, table_id, max_results: max_results)
|
88
|
-
|
89
|
-
datas = []
|
90
|
-
result.rows.each do |row|
|
91
|
-
data = []
|
92
|
-
row.f.each do |field|
|
93
|
-
data << field.v
|
94
|
-
end
|
95
|
-
datas << data
|
96
|
-
end
|
97
|
-
print_table(datas)
|
98
|
-
end
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
@@ -1,83 +0,0 @@
|
|
1
|
-
# Copyright 2016 Google Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'google/apis/calendar_v3'
|
16
|
-
require 'base_cli'
|
17
|
-
|
18
|
-
|
19
|
-
module Samples
|
20
|
-
# Examples for the Google Calendar API
|
21
|
-
#
|
22
|
-
# Sample usage:
|
23
|
-
#
|
24
|
-
# $ ./google-api-samples calendar list --limit 10
|
25
|
-
class Calendar < BaseCli
|
26
|
-
Calendar = Google::Apis::CalendarV3
|
27
|
-
|
28
|
-
desc 'schedule', 'Create an event'
|
29
|
-
method_option :summary, type: :string, required: true
|
30
|
-
method_option :start, type: :string, required: true
|
31
|
-
method_option :end , type: :string, required: true
|
32
|
-
method_option :attendees, type: :array
|
33
|
-
def schedule
|
34
|
-
calendar = Calendar::CalendarService.new
|
35
|
-
calendar.authorization = user_credentials_for(Calendar::AUTH_CALENDAR)
|
36
|
-
|
37
|
-
event = {
|
38
|
-
summary: options[:summary],
|
39
|
-
attendees: Array(options[:attendees]).map { |email| { email: email } },
|
40
|
-
start: {
|
41
|
-
date_time: DateTime.parse(options[:start])
|
42
|
-
},
|
43
|
-
end: {
|
44
|
-
date_time: DateTime.parse(options[:end])
|
45
|
-
}
|
46
|
-
}
|
47
|
-
|
48
|
-
event = calendar.insert_event('primary', event, send_notifications: true)
|
49
|
-
say "Created event '#{event.summary}' (#{event.id})"
|
50
|
-
end
|
51
|
-
|
52
|
-
desc 'list', 'List upcoming events'
|
53
|
-
method_option :limit, type: :numeric
|
54
|
-
def list()
|
55
|
-
calendar = Calendar::CalendarService.new
|
56
|
-
calendar.authorization = user_credentials_for(Calendar::AUTH_CALENDAR)
|
57
|
-
|
58
|
-
page_token = nil
|
59
|
-
limit = options[:limit] || 1000
|
60
|
-
now = Time.now.iso8601
|
61
|
-
begin
|
62
|
-
result = calendar.list_events('primary',
|
63
|
-
max_results: [limit, 100].min,
|
64
|
-
single_events: true,
|
65
|
-
order_by: 'startTime',
|
66
|
-
time_min: now,
|
67
|
-
page_token: page_token,
|
68
|
-
fields: 'items(id,summary,start),next_page_token')
|
69
|
-
|
70
|
-
result.items.each do |event|
|
71
|
-
time = event.start.date_time || event.start.date
|
72
|
-
say "#{time}, #{event.summary}"
|
73
|
-
end
|
74
|
-
limit -= result.items.length
|
75
|
-
if result.next_page_token
|
76
|
-
page_token = result.next_page_token
|
77
|
-
else
|
78
|
-
page_token = nil
|
79
|
-
end
|
80
|
-
end while !page_token.nil? && limit > 0
|
81
|
-
end
|
82
|
-
end
|
83
|
-
end
|
@@ -1,82 +0,0 @@
|
|
1
|
-
# Copyright 2016 Google Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'google/apis/drive_v3'
|
16
|
-
require 'base_cli'
|
17
|
-
|
18
|
-
|
19
|
-
module Samples
|
20
|
-
# Examples for the Google Drive API
|
21
|
-
#
|
22
|
-
# Sample usage:
|
23
|
-
#
|
24
|
-
# $ ./google-api-samples drive upload ~/myvideo.mov
|
25
|
-
class Drive < BaseCli
|
26
|
-
Drive = Google::Apis::DriveV3
|
27
|
-
|
28
|
-
desc 'upload FILE', 'Upload a file to Google Drive'
|
29
|
-
method_option :name, type: :string
|
30
|
-
def upload(file)
|
31
|
-
drive = Drive::DriveService.new
|
32
|
-
drive.authorization = user_credentials_for(Drive::AUTH_DRIVE)
|
33
|
-
|
34
|
-
metadata = {
|
35
|
-
name: options[:name] || file
|
36
|
-
}
|
37
|
-
result = drive.create_file(metadata, upload_source: file)
|
38
|
-
say "Upload complete"
|
39
|
-
end
|
40
|
-
|
41
|
-
desc 'download FILE_ID', 'Download a file from Google Drive'
|
42
|
-
method_option :out, type: :string
|
43
|
-
def download(file_id)
|
44
|
-
drive = Drive::DriveService.new
|
45
|
-
drive.authorization = user_credentials_for(Drive::AUTH_DRIVE)
|
46
|
-
|
47
|
-
dest = options[:out] || StringIO.new
|
48
|
-
drive.get_file(file_id, download_dest: dest)
|
49
|
-
|
50
|
-
if dest.is_a?(StringIO)
|
51
|
-
dest.rewind
|
52
|
-
STDOUT.write(dest.read)
|
53
|
-
else
|
54
|
-
say "File downloaded to #{options[:out]}"
|
55
|
-
end
|
56
|
-
end
|
57
|
-
|
58
|
-
desc 'list QUERY', 'Search for files'
|
59
|
-
method_option :limit, type: :numeric
|
60
|
-
def list(query)
|
61
|
-
drive = Drive::DriveService.new
|
62
|
-
drive.authorization = user_credentials_for(Drive::AUTH_DRIVE)
|
63
|
-
|
64
|
-
page_token = nil
|
65
|
-
limit = options[:limit] || 1000
|
66
|
-
begin
|
67
|
-
result = drive.list_files(q: query,
|
68
|
-
page_size: [limit, 100].min,
|
69
|
-
page_token: page_token,
|
70
|
-
fields: 'files(id,name),next_page_token')
|
71
|
-
|
72
|
-
result.files.each { |file| puts "#{file.id}, #{file.name}" }
|
73
|
-
limit -= result.files.length
|
74
|
-
if result.next_page_token
|
75
|
-
page_token = result.next_page_token
|
76
|
-
else
|
77
|
-
page_token = nil
|
78
|
-
end
|
79
|
-
end while !page_token.nil? && limit > 0
|
80
|
-
end
|
81
|
-
end
|
82
|
-
end
|
@@ -1,157 +0,0 @@
|
|
1
|
-
# Copyright 2016 Google Inc.
|
2
|
-
#
|
3
|
-
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
|
-
# you may not use this file except in compliance with the License.
|
5
|
-
# You may obtain a copy of the License at
|
6
|
-
#
|
7
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
8
|
-
#
|
9
|
-
# Unless required by applicable law or agreed to in writing, software
|
10
|
-
# distributed under the License is distributed on an "AS IS" BASIS,
|
11
|
-
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
12
|
-
# See the License for the specific language governing permissions and
|
13
|
-
# limitations under the License.
|
14
|
-
|
15
|
-
require 'google/apis/gmail_v1'
|
16
|
-
require 'base_cli'
|
17
|
-
require 'rmail'
|
18
|
-
|
19
|
-
module Samples
|
20
|
-
# Examples for the Gmail API
|
21
|
-
#
|
22
|
-
# Sample usage:
|
23
|
-
#
|
24
|
-
# $ ./google-api-samples gmail send 'Hello there!' \
|
25
|
-
# --to='recipient@example.com' --from='user@example.com' \
|
26
|
-
# --subject='Hello'
|
27
|
-
#
|
28
|
-
class Gmail < BaseCli
|
29
|
-
Gmail = Google::Apis::GmailV1
|
30
|
-
|
31
|
-
desc 'get ID', 'Get a message for an id with the gmail API'
|
32
|
-
def get(id)
|
33
|
-
gmail = Gmail::GmailService.new
|
34
|
-
gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
|
35
|
-
|
36
|
-
result = gmail.get_user_message('me', id)
|
37
|
-
payload = result.payload
|
38
|
-
headers = payload.headers
|
39
|
-
|
40
|
-
date = headers.any? { |h| h.name == 'Date' } ? headers.find { |h| h.name == 'Date' }.value : ''
|
41
|
-
from = headers.any? { |h| h.name == 'From' } ? headers.find { |h| h.name == 'From' }.value : ''
|
42
|
-
to = headers.any? { |h| h.name == 'To' } ? headers.find { |h| h.name == 'To' }.value : ''
|
43
|
-
subject = headers.any? { |h| h.name == 'Subject' } ? headers.find { |h| h.name == 'Subject' }.value : ''
|
44
|
-
|
45
|
-
body = payload.body.data
|
46
|
-
if body.nil? && payload.parts.any?
|
47
|
-
body = payload.parts.map { |part| part.body.data }.join
|
48
|
-
end
|
49
|
-
|
50
|
-
puts "id: #{result.id}"
|
51
|
-
puts "date: #{date}"
|
52
|
-
puts "from: #{from}"
|
53
|
-
puts "to: #{to}"
|
54
|
-
puts "subject: #{subject}"
|
55
|
-
puts "body: #{body}"
|
56
|
-
end
|
57
|
-
|
58
|
-
desc 'send TEXT', 'Send a message with the gmail API'
|
59
|
-
method_option :to, type: :string, required: true
|
60
|
-
method_option :from, type: :string, required: true
|
61
|
-
method_option :subject, type: :string, required: true
|
62
|
-
def send(body)
|
63
|
-
gmail = Gmail::GmailService.new
|
64
|
-
gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
|
65
|
-
|
66
|
-
message = RMail::Message.new
|
67
|
-
message.header['To'] = options[:to]
|
68
|
-
message.header['From'] = options[:from]
|
69
|
-
message.header['Subject'] = options[:subject]
|
70
|
-
message.body = body
|
71
|
-
|
72
|
-
gmail.send_user_message('me',
|
73
|
-
upload_source: StringIO.new(message.to_s),
|
74
|
-
content_type: 'message/rfc822')
|
75
|
-
end
|
76
|
-
|
77
|
-
desc 'list', 'list messages with the gmail API'
|
78
|
-
method_option :limit, type: :numeric, default: 100
|
79
|
-
def list
|
80
|
-
gmail = Gmail::GmailService.new
|
81
|
-
gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
|
82
|
-
|
83
|
-
messages = []
|
84
|
-
next_page = nil
|
85
|
-
begin
|
86
|
-
result = gmail.list_user_messages('me', max_results: [options[:limit], 500].min, page_token: next_page)
|
87
|
-
messages += result.messages
|
88
|
-
break if messages.size >= options[:limit]
|
89
|
-
next_page = result.next_page_token
|
90
|
-
end while next_page
|
91
|
-
|
92
|
-
puts "Found #{messages.size} messages"
|
93
|
-
end
|
94
|
-
|
95
|
-
desc 'search QUERY', 'Search messages matching the specified query with the gmail API'
|
96
|
-
method_option :limit, type: :numeric, default: 100
|
97
|
-
def search(query)
|
98
|
-
gmail = Gmail::GmailService.new
|
99
|
-
gmail.authorization = user_credentials_for(Gmail::AUTH_SCOPE)
|
100
|
-
|
101
|
-
ids =
|
102
|
-
gmail.fetch_all(max: options[:limit], items: :messages) do |token|
|
103
|
-
gmail.list_user_messages('me', max_results: [options[:limit], 500].min, q: query, page_token: token)
|
104
|
-
end.map(&:id)
|
105
|
-
|
106
|
-
callback = lambda do |result, err|
|
107
|
-
if err
|
108
|
-
puts "error: #{err.inspect}"
|
109
|
-
else
|
110
|
-
headers = result.payload.headers
|
111
|
-
date = headers.any? { |h| h.name == 'Date' } ? headers.find { |h| h.name == 'Date' }.value : ''
|
112
|
-
subject = headers.any? { |h| h.name == 'Subject' } ? headers.find { |h| h.name == 'Subject' }.value : ''
|
113
|
-
puts "#{result.id}, #{date}, #{subject}"
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
ids.each_slice(1000) do |ids_array|
|
118
|
-
gmail.batch do |gm|
|
119
|
-
ids_array.each { |id| gm.get_user_message('me', id, &callback) }
|
120
|
-
end
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
|
125
|
-
desc 'impersonate and update email signature', 'Update the email signature of another user'
|
126
|
-
method_option :impersonated_email, type: :string, required: true
|
127
|
-
def update_email_signature(new_signature_content)
|
128
|
-
gmail = Gmail::GmailService.new
|
129
|
-
|
130
|
-
# You can download a client_secret.json from the service account page
|
131
|
-
# of your developer's console
|
132
|
-
|
133
|
-
attrs = {
|
134
|
-
json_key_io: 'client_secret.json',
|
135
|
-
scope: [ Gmail::AUTH_GMAIL_SETTINGS_BASIC ]
|
136
|
-
}
|
137
|
-
|
138
|
-
auth = Google::Auth::ServiceAccountCredentials.make_creds(attrs)
|
139
|
-
impersonate_auth = auth.dup
|
140
|
-
impersonate_auth.sub = impersonated_email
|
141
|
-
|
142
|
-
user_id = impersonated_email
|
143
|
-
send_as_email = update_user_setting_send_as
|
144
|
-
|
145
|
-
|
146
|
-
gmail.authorization = impersonate_auth
|
147
|
-
|
148
|
-
send_as_object = {"signature": new_signature_content}
|
149
|
-
# options: {} is necessary for method to be called correctly.
|
150
|
-
result = service.patch_user_setting_send_as(user_id, send_as_email, send_as_object, options: {})
|
151
|
-
|
152
|
-
|
153
|
-
puts "signature of #{impersonated_email} is now: #{result.signature}"
|
154
|
-
end
|
155
|
-
|
156
|
-
end
|
157
|
-
end
|