lt-google-api 0.3.0 → 0.4.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ef6072dcd14c9155a6862c96e7297c3404bfa4650c0ffa96f3a5a51cfe6fcc2
4
- data.tar.gz: 84db76b71530c838107cd7299a593ce0cc303746c8137b54a882991ebe845157
3
+ metadata.gz: faca9abedb6b078492d31453906ef726354152d5f350ad0b714664cfd2f045e8
4
+ data.tar.gz: 0a8629ceae2e67f95366ec228f071845c5776e1a4dc18042e120d9cbf3bccc7e
5
5
  SHA512:
6
- metadata.gz: fb20c295a3d7b200e0f141825e21834d0b04b6d538fea872768cc6586856e0bbda68c3864c7ea59c973aa7ce9640e5400682a9fad9e33fcc4d9089436a23baca
7
- data.tar.gz: 8e66041fe64bcbfda26cabbce165a608cb2dee3bbf2877879e5e100b8f2c6e21636bf7056019a3299ea93b383e28005d7757b0ccc552f62e806f52cab912a552
6
+ metadata.gz: 182f0c4733210227d4531d187185844e2b9167ee462e79aefa84899a6a2e1efeacaead975fbd088d407b82ba336ce96f1f6ea40e89d6eeea495190d1dcf7d33b
7
+ data.tar.gz: b3d35089ec2d0ff6967398c4a338b4a9bf321a728b5ef9b7b34c9db370c387e0b4e92ed8268e6b2183e6778b7988182a7bdac24e11756fbdfe12608c2993a202
data/.gitignore CHANGED
@@ -13,3 +13,4 @@
13
13
  # Misc
14
14
  .DS_Store
15
15
  .gem_rbs_collection/
16
+ /notes
data/.rubocop.yml CHANGED
@@ -13,7 +13,7 @@ AllCops:
13
13
  - db/schema.rb
14
14
  - node_modules/**/*
15
15
  NewCops: enable
16
- TargetRubyVersion: 2.7
16
+ TargetRubyVersion: 3.2
17
17
 
18
18
  Gemspec/DevelopmentDependencies:
19
19
  EnforcedStyle: gemspec
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.7.7
1
+ 3.2.1
data/CHANGELOG.md CHANGED
@@ -4,9 +4,26 @@ All notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## [Unreleased](https://github.com/learningtapestry/lt-google-api/compare/v0.3.0...HEAD)
7
+ ## [Unreleased](https://github.com/learningtapestry/lt-google-api/compare/v0.4.0...HEAD)
8
8
 
9
- ## [0.3.0](https://github.com/learningtapestry/lt-lcms/compare/v0.2.4...v0.3.0) - 2023-12-23
9
+ ## [0.4.0](https://github.com/learningtapestry/lt-google-api/compare/v0.3.2...v0.4.0) - 2025-06-21
10
+
11
+ ### Removed
12
+
13
+ - Ruby 2.7 support
14
+
15
+ ## [0.3.2](https://github.com/learningtapestry/lt-google-api/compare/v0.3.0...v0.3.2) - 2023-12-23
16
+
17
+ ### Changed
18
+
19
+ - Bumped versions for 'google-apis-drive_v3' to '~> 0.63.0' and 'googleauth', '~> 1.11.2'
20
+
21
+ ## [0.3.1](https://github.com/learningtapestry/lt-google-api/compare/v0.3.0...v0.3.1) - 2024-10-22
22
+ ### Changed
23
+ - Updated dependencies [@shlag3n](https://github.com/shlag3n)
24
+ - Upgraded google-api to 0.15 [@shlag3n](https://github.com/shlag3n)
25
+
26
+ ## [0.3.0](https://github.com/learningtapestry/lt-google-api/compare/v0.2.4...v0.3.0) - 2023-12-23
10
27
  ### Added
11
28
 
12
29
  - Added Docker support [@paranoicsan](https://github.com/paranoicsan)
@@ -19,25 +36,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
19
36
  - Ruby updated to 2.7.7 [@shlag3n](https://github.com/shlag3n) at the main branch
20
37
  - Upgraded google-api to 0.11 [@shlag3n](https://github.com/shlag3n)
21
38
 
22
- ## [0.2.4](https://github.com/learningtapestry/lt-lcms/compare/v0.2.3...v0.2.4) - 2021-07-16
39
+ ## [0.2.4](https://github.com/learningtapestry/lt-google-api/compare/v0.2.3...v0.2.4) - 2021-07-16
23
40
 
24
41
  ### Fixed
25
42
 
26
43
  - Fix for Google Query ([#13](https://github.com/learningtapestry/lt-google-api/pull/13))
27
44
 
28
- ## [0.2.3](https://github.com/learningtapestry/lt-lcms/compare/v0.2.2...v0.2.3) - 2021-07-02
45
+ ## [0.2.3](https://github.com/learningtapestry/lt-google-api/compare/v0.2.2...v0.2.3) - 2021-07-02
29
46
 
30
47
  ### Fixed
31
48
 
32
49
  - Fix Google API query when object name contains special characters like " ' " ([#11](https://github.com/learningtapestry/lt-google-api/pull/11))
33
50
 
34
- ## [0.2.2](https://github.com/learningtapestry/lt-lcms/compare/v0.2.1...v0.2.2) - 2020-12-25
51
+ ## [0.2.2](https://github.com/learningtapestry/lt-google-api/compare/v0.2.1...v0.2.2) - 2020-12-25
35
52
 
36
53
  ### Fixed
37
54
 
38
55
  - Fix Google API namespace ([#9](https://github.com/learningtapestry/lt-google-api/pull/9))
39
56
 
40
- ## [0.2.1](https://github.com/learningtapestry/lt-lcms/compare/v0.2.0...v0.2.1) - 2020-10-15
57
+ ## [0.2.1](https://github.com/learningtapestry/lt-google-api/compare/v0.2.0...v0.2.1) - 2020-10-15
41
58
 
42
59
  ### Fixed
43
60
 
@@ -49,7 +66,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
49
66
 
50
67
  - Add support for Google Shared Drives ([#7](https://github.com/learningtapestry/lt-google-api/pull/7))
51
68
 
52
- ## [0.1.1](https://github.com/learningtapestry/lt-lcms/compare/v0.1.0...v0.1.1) - 2020-01-13
69
+ ## [0.1.1](https://github.com/learningtapestry/lt-google-api/compare/v0.1.0...v0.1.1) - 2020-01-13
53
70
 
54
71
  ### Added
55
72
 
data/Dockerfile CHANGED
@@ -1,15 +1,15 @@
1
- FROM ruby:2.7.7
1
+ FROM ruby:3.2.1
2
2
 
3
- ENV APP_PATH /app/
4
- ENV LANG C.UTF-8
5
- ENV GIT_AUTHOR_NAME "Joe Doe"
6
- ENV GIT_AUTHOR_EMAIL joe@doe.com
3
+ ENV APP_PATH=/app/
4
+ ENV LANG=C.UTF-8
5
+ ENV GIT_AUTHOR_NAME="Joe Doe"
6
+ ENV GIT_AUTHOR_EMAIL=joe@doe.com
7
7
 
8
8
  WORKDIR $APP_PATH
9
9
 
10
10
  COPY . $APP_PATH
11
11
 
12
- ENV BUNDLER_VERSION 2.4.22
12
+ ENV BUNDLER_VERSION=2.4.22
13
13
  RUN gem install bundler:"$BUNDLER_VERSION" \
14
14
  && bundle install --jobs `expr $(cat /proc/cpuinfo | grep -c "cpu cores") - 1` --retry 3 \
15
15
  && rm -rf /usr/local/bundle/cache/*.gem \
data/Gemfile.lock CHANGED
@@ -1,109 +1,133 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- lt-google-api (0.3.0)
5
- google-apis-drive_v3 (~> 0.46)
6
- googleauth (~> 1.9)
4
+ lt-google-api (0.4.0)
5
+ google-apis-drive_v3 (~> 0.66)
6
+ googleauth (~> 1.14)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- activesupport (7.0.7.2)
12
- concurrent-ruby (~> 1.0, >= 1.0.2)
11
+ activesupport (8.0.2)
12
+ base64
13
+ benchmark (>= 0.3)
14
+ bigdecimal
15
+ concurrent-ruby (~> 1.0, >= 1.3.1)
16
+ connection_pool (>= 2.2.5)
17
+ drb
13
18
  i18n (>= 1.6, < 2)
19
+ logger (>= 1.4.2)
14
20
  minitest (>= 5.1)
15
- tzinfo (~> 2.0)
16
- addressable (2.8.6)
17
- public_suffix (>= 2.0.2, < 6.0)
18
- ast (2.4.2)
19
- base64 (0.1.1)
20
- childprocess (4.1.0)
21
- concurrent-ruby (1.2.2)
22
- csv (3.2.7)
21
+ securerandom (>= 0.3)
22
+ tzinfo (~> 2.0, >= 2.0.5)
23
+ uri (>= 0.13.1)
24
+ addressable (2.8.7)
25
+ public_suffix (>= 2.0.2, < 7.0)
26
+ ast (2.4.3)
27
+ base64 (0.3.0)
28
+ benchmark (0.4.1)
29
+ bigdecimal (3.2.0)
30
+ childprocess (5.1.0)
31
+ logger (~> 1.5)
32
+ concurrent-ruby (1.3.5)
33
+ connection_pool (2.5.3)
34
+ csv (3.3.4)
23
35
  declarative (0.0.20)
24
- faraday (2.7.12)
25
- base64
26
- faraday-net_http (>= 2.0, < 3.1)
27
- ruby2_keywords (>= 0.0.4)
28
- faraday-net_http (3.0.2)
29
- ffi (1.15.5)
30
- fileutils (1.7.1)
31
- google-apis-core (0.11.2)
36
+ drb (2.2.3)
37
+ faraday (2.13.1)
38
+ faraday-net_http (>= 2.0, < 3.5)
39
+ json
40
+ logger
41
+ faraday-net_http (3.4.0)
42
+ net-http (>= 0.5.0)
43
+ ffi (1.17.2-aarch64-linux-gnu)
44
+ ffi (1.17.2-x86_64-linux-gnu)
45
+ fileutils (1.7.3)
46
+ google-apis-core (0.16.0)
32
47
  addressable (~> 2.5, >= 2.5.1)
33
- googleauth (>= 0.16.2, < 2.a)
34
- httpclient (>= 2.8.1, < 3.a)
48
+ googleauth (~> 1.9)
49
+ httpclient (>= 2.8.3, < 3.a)
35
50
  mini_mime (~> 1.0)
51
+ mutex_m
36
52
  representable (~> 3.0)
37
53
  retriable (>= 2.0, < 4.a)
38
- rexml
39
- webrick
40
- google-apis-drive_v3 (0.46.0)
41
- google-apis-core (>= 0.11.0, < 2.a)
42
- google-cloud-env (2.1.0)
54
+ google-apis-drive_v3 (0.66.0)
55
+ google-apis-core (>= 0.15.0, < 2.a)
56
+ google-cloud-env (2.3.1)
57
+ base64 (~> 0.2)
43
58
  faraday (>= 1.0, < 3.a)
44
- googleauth (1.9.1)
59
+ google-logging-utils (0.2.0)
60
+ googleauth (1.14.0)
45
61
  faraday (>= 1.0, < 3.a)
46
- google-cloud-env (~> 2.1)
62
+ google-cloud-env (~> 2.2)
63
+ google-logging-utils (~> 0.1)
47
64
  jwt (>= 1.4, < 3.0)
48
65
  multi_json (~> 1.11)
49
66
  os (>= 0.9, < 2.0)
50
67
  signet (>= 0.16, < 2.a)
51
- httpclient (2.8.3)
52
- i18n (1.14.1)
68
+ httpclient (2.9.0)
69
+ mutex_m
70
+ i18n (1.14.7)
53
71
  concurrent-ruby (~> 1.0)
54
72
  iniparse (1.5.0)
55
- json (2.6.3)
56
- jwt (2.7.1)
57
- language_server-protocol (3.17.0.3)
58
- listen (3.8.0)
73
+ json (2.12.2)
74
+ jwt (2.10.1)
75
+ base64
76
+ language_server-protocol (3.17.0.5)
77
+ lint_roller (1.1.0)
78
+ listen (3.9.0)
59
79
  rb-fsevent (~> 0.10, >= 0.10.3)
60
80
  rb-inotify (~> 0.9, >= 0.9.10)
61
- logger (1.5.3)
81
+ logger (1.7.0)
62
82
  mini_mime (1.1.5)
63
- minitest (5.19.0)
83
+ minitest (5.25.5)
64
84
  multi_json (1.15.0)
85
+ mutex_m (0.3.0)
86
+ net-http (0.6.0)
87
+ uri
65
88
  os (1.1.4)
66
- overcommit (0.60.0)
67
- childprocess (>= 0.6.3, < 5)
89
+ overcommit (0.67.1)
90
+ childprocess (>= 0.6.3, < 6)
68
91
  iniparse (~> 1.4)
69
- rexml (~> 3.2)
70
- parallel (1.23.0)
71
- parser (3.2.2.3)
92
+ rexml (>= 3.3.9)
93
+ parallel (1.27.0)
94
+ parser (3.3.8.0)
72
95
  ast (~> 2.4.1)
73
96
  racc
74
- public_suffix (5.0.4)
75
- racc (1.7.1)
97
+ prism (1.4.0)
98
+ public_suffix (6.0.2)
99
+ racc (1.8.1)
76
100
  rainbow (3.1.1)
77
- rake (13.0.6)
101
+ rake (13.3.0)
78
102
  rb-fsevent (0.11.2)
79
- rb-inotify (0.10.1)
103
+ rb-inotify (0.11.1)
80
104
  ffi (~> 1.0)
81
- rbs (3.1.3)
82
- regexp_parser (2.8.1)
105
+ rbs (3.9.4)
106
+ logger
107
+ regexp_parser (2.10.0)
83
108
  representable (3.2.0)
84
109
  declarative (< 0.1.0)
85
110
  trailblazer-option (>= 0.1.1, < 0.2.0)
86
111
  uber (< 0.2.0)
87
112
  retriable (3.1.2)
88
- rexml (3.2.6)
89
- rubocop (1.56.2)
90
- base64 (~> 0.1.1)
113
+ rexml (3.4.1)
114
+ rubocop (1.75.8)
91
115
  json (~> 2.3)
92
- language_server-protocol (>= 3.17.0)
116
+ language_server-protocol (~> 3.17.0.2)
117
+ lint_roller (~> 1.1.0)
93
118
  parallel (~> 1.10)
94
- parser (>= 3.2.2.3)
119
+ parser (>= 3.3.0.2)
95
120
  rainbow (>= 2.2.2, < 4.0)
96
- regexp_parser (>= 1.8, < 3.0)
97
- rexml (>= 3.2.5, < 4.0)
98
- rubocop-ast (>= 1.28.1, < 2.0)
121
+ regexp_parser (>= 2.9.3, < 3.0)
122
+ rubocop-ast (>= 1.44.0, < 2.0)
99
123
  ruby-progressbar (~> 1.7)
100
- unicode-display_width (>= 2.4.0, < 3.0)
101
- rubocop-ast (1.29.0)
102
- parser (>= 3.2.1.0)
124
+ unicode-display_width (>= 2.4.0, < 4.0)
125
+ rubocop-ast (1.44.1)
126
+ parser (>= 3.3.7.2)
127
+ prism (~> 1.4)
103
128
  ruby-progressbar (1.13.0)
104
- ruby2_keywords (0.0.5)
105
- securerandom (0.2.2)
106
- signet (0.18.0)
129
+ securerandom (0.4.1)
130
+ signet (0.20.0)
107
131
  addressable (~> 2.8)
108
132
  faraday (>= 0.17.5, < 3.a)
109
133
  jwt (>= 1.5, < 3.0)
@@ -123,17 +147,18 @@ GEM
123
147
  securerandom (>= 0.1)
124
148
  strscan (>= 1.0.0)
125
149
  terminal-table (>= 2, < 4)
126
- strscan (3.0.6)
150
+ strscan (3.1.5)
127
151
  terminal-table (3.0.2)
128
152
  unicode-display_width (>= 1.1.1, < 3)
129
153
  trailblazer-option (0.1.2)
130
154
  tzinfo (2.0.6)
131
155
  concurrent-ruby (~> 1.0)
132
156
  uber (0.1.0)
133
- unicode-display_width (2.4.2)
134
- webrick (1.8.1)
157
+ unicode-display_width (2.6.0)
158
+ uri (1.0.3)
135
159
 
136
160
  PLATFORMS
161
+ aarch64-linux
137
162
  x86_64-linux
138
163
 
139
164
  DEPENDENCIES
@@ -0,0 +1,8 @@
1
+ version: '3.8'
2
+
3
+ services:
4
+ app:
5
+ image: learningtapestry/lt-google-api:legacy
6
+ command: bash -c "bundle install && tail -f /dev/null"
7
+ volumes:
8
+ - .:/app
@@ -18,7 +18,7 @@ module Lt
18
18
  client_id =
19
19
  ::Google::Auth::ClientId.new(ENV.fetch('GOOGLE_OAUTH2_CLIENT_ID', nil),
20
20
  ENV.fetch('GOOGLE_OAUTH2_CLIENT_SECRET', nil))
21
- token_store ||= ::Google::Auth::Stores::RedisTokenStore.new(redis: redis)
21
+ token_store ||= ::Google::Auth::Stores::RedisTokenStore.new(redis:)
22
22
  scope = %w(https://www.googleapis.com/auth/drive)
23
23
  ::Google::Auth::WebUserAuthorizer.new(client_id, scope, token_store, callback_path)
24
24
  end
@@ -65,7 +65,11 @@ module Lt
65
65
  end
66
66
 
67
67
  def remove_expired_token
68
- data = ::JSON.parse(redis.get(user_token)) rescue nil
68
+ data = begin
69
+ ::JSON.parse(redis.get(user_token))
70
+ rescue StandardError
71
+ nil
72
+ end
69
73
  return unless data
70
74
 
71
75
  expires_at = data['expiration_time_millis'].to_i / 1_000
@@ -6,7 +6,7 @@ module Lt
6
6
  module Google
7
7
  module Api
8
8
  class Drive
9
- FOLDER_RE = %r{/drive/(.*/)?folders/([^/?]+)/?}.freeze
9
+ FOLDER_RE = %r{/drive/(.*/)?folders/([^/?]+)/?}
10
10
  MIME_FILE = 'application/vnd.google-apps.document'
11
11
  MIME_FOLDER = 'application/vnd.google-apps.folder'
12
12
 
@@ -75,7 +75,7 @@ module Lt
75
75
  end
76
76
 
77
77
  metadata = ::Google::Apis::DriveV3::File.new(
78
- name: name,
78
+ name:,
79
79
  mime_type: MIME_FOLDER,
80
80
  parents: [parent_id]
81
81
  )
@@ -99,7 +99,7 @@ module Lt
99
99
  case f.mime_type
100
100
  when mime_type then result << f.id
101
101
  when MIME_FOLDER
102
- result.concat(list_file_ids_in f.id, mime_type: mime_type) if with_subfolders
102
+ result.concat(list_file_ids_in(f.id, mime_type: mime_type)) if with_subfolders
103
103
  end
104
104
  end
105
105
 
@@ -3,7 +3,7 @@
3
3
  module Lt
4
4
  module Google
5
5
  module Api
6
- VERSION = '0.3.0'
6
+ VERSION = '0.4.0'
7
7
  end
8
8
  end
9
9
  end
@@ -15,7 +15,7 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
15
15
  spec.description = ''
16
16
  spec.license = 'Apache-2.0'
17
17
 
18
- spec.required_ruby_version = '>= 2.7'
18
+ spec.required_ruby_version = '>= 3.2'
19
19
 
20
20
  # Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
21
21
  # to allow pushing to a single host or delete this section to allow pushing to any host.
@@ -33,8 +33,8 @@ Gem::Specification.new do |spec| # rubocop:disable Metrics/BlockLength
33
33
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
34
34
  spec.require_paths = ['lib']
35
35
 
36
- spec.add_dependency 'google-apis-drive_v3', '~> 0.46'
37
- spec.add_dependency 'googleauth', '~> 1.9'
36
+ spec.add_dependency 'google-apis-drive_v3', ' ~> 0.66'
37
+ spec.add_dependency 'googleauth', '~> 1.14'
38
38
 
39
39
  spec.add_development_dependency 'bundler', '~> 2.4'
40
40
  spec.add_development_dependency 'overcommit', '~> 0.57'
@@ -1,7 +1,7 @@
1
1
  module Lt
2
2
  module Google
3
3
  module Api
4
- VERSION: "0.2.4"
4
+ VERSION: "0.3.1"
5
5
  end
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lt-google-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Kuznetsov
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2023-12-23 00:00:00.000000000 Z
12
+ date: 2025-06-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: google-apis-drive_v3
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0.46'
20
+ version: '0.66'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0.46'
27
+ version: '0.66'
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: googleauth
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '1.9'
34
+ version: '1.14'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '1.9'
41
+ version: '1.14'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bundler
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +136,7 @@ files:
136
136
  - bin/console
137
137
  - bin/overcommit
138
138
  - bin/setup
139
+ - docker-compose.yml
139
140
  - lib/lt/google/api.rb
140
141
  - lib/lt/google/api/auth/cli.rb
141
142
  - lib/lt/google/api/auth/credentials.rb
@@ -168,14 +169,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
168
169
  requirements:
169
170
  - - ">="
170
171
  - !ruby/object:Gem::Version
171
- version: '2.7'
172
+ version: '3.2'
172
173
  required_rubygems_version: !ruby/object:Gem::Requirement
173
174
  requirements:
174
175
  - - ">="
175
176
  - !ruby/object:Gem::Version
176
177
  version: '0'
177
178
  requirements: []
178
- rubygems_version: 3.0.3.1
179
+ rubygems_version: 3.4.6
179
180
  signing_key:
180
181
  specification_version: 4
181
182
  summary: Provides the set of classes to simplify work with Google services