google-cloud-os_login 1.0.0 → 1.1.3

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: 861c1617afdee3db50b52907396621a8c3ace4d5fcb983a955b336510b7ac192
4
- data.tar.gz: 107df0bb491569bf1fcffd2247ce3000ef19f44ed662ffcb84a069446c738fbf
3
+ metadata.gz: de362b6f67e330088f114037ff26218b9799c8d41097cab63dcf0dcb3e44b539
4
+ data.tar.gz: 6396f90a00a98ef9857d05d781f6fe8d892b19d4e1bf1aac25a9e92587111d0d
5
5
  SHA512:
6
- metadata.gz: 7bdaf5cb0e1e221df4f102873d06f291e82961b181404e13c9bb030ca3ef07b4c9f6e7d6def59badded6f99dca68b42ad452f47ccf71d1885f3814d678ae1362
7
- data.tar.gz: 7781dd276864c89f2e7c62c739dcc21923745ebfa4b76e191a5a458d9099842b37f3e7c64e07f596787f03c3844e57ba7903ca597aa1fd531aa0c5fd0186929a
6
+ metadata.gz: c8190085fbd52cd49d69716d4dabb3f0378814034dce54ed30e08d5f5157f34efb9f4a71ef3efe932e0d29c2e8d938fbaf339685af9fcba1c3a419a40e9945a1
7
+ data.tar.gz: 7033f4e4ac16e2aae73d5d1e13a16085b53d6ca35b1fd13ad4d877228fb8c0c2c6812ff468a691e78148b8abcb1e60e73caa89b6f70cf7b4a82619197fabd96c
data/MIGRATING.md CHANGED
@@ -11,7 +11,7 @@ To summarize:
11
11
 
12
12
  * The library has been broken out into three libraries. The new gems
13
13
  `google-cloud-os_login-v1` and `google-cloud-os_login-v1beta` contain the
14
- actual client classes for versions V1 and V1beta of the OSLogin
14
+ actual client classes for versions V1 and V1beta of the OS Login
15
15
  service, and the gem `google-cloud-os_login` now simply provides a
16
16
  convenience wrapper. See [Library Structure](#library-structure) for more
17
17
  info.
@@ -30,13 +30,17 @@ To summarize:
30
30
  resource paths. These paths are now instance methods on the client objects,
31
31
  and are also available in a separate paths module. See
32
32
  [Resource Path Helpers](#resource-path-helpers) for more info.
33
+ * Previously, clients reported RPC errors by raising instances of
34
+ `Google::Gax::GaxError` and its subclasses. Now, RPC exceptions are of type
35
+ `Google::Cloud::Error` and its subclasses. See
36
+ [Handling Errors](#handling-errors) for more info.
33
37
  * Some classes have moved into different namespaces. See
34
38
  [Class Namespaces](#class-namespaces) for more info.
35
39
 
36
40
  ### Library Structure
37
41
 
38
42
  Older 0.x releases of the `google-cloud-os_login` gem were all-in-one gems that
39
- included potentially multiple clients for multiple versions of the OSLogin
43
+ included potentially multiple clients for multiple versions of the OS Login
40
44
  service. The `Google::Cloud::OsLogin.new` factory method would
41
45
  return you an instance of a `Google::Cloud::OsLogin::V1::OsLoginServiceClient`
42
46
  object for the V1 version of the service, or a
@@ -70,7 +74,7 @@ constructor. It was also extremely difficult to customize the default settings.
70
74
  With the 1.0 release, a configuration interface provides control over these
71
75
  parameters, including defaults for all instances of a client, and settings for
72
76
  each specific client instance. For example, to set default credentials and
73
- timeout for all OSLogin V1 clients:
77
+ timeout for all OS Login V1 clients:
74
78
 
75
79
  ```
76
80
  Google::Cloud::OsLogin::V1::OsLoginService::Client.configure do |config|
@@ -88,11 +92,11 @@ Google::Cloud::OsLogin::V1::OsLoginService::Client.configure do |config|
88
92
  end
89
93
  ```
90
94
 
91
- Defaults for certain configurations can be set for all Redis versions
95
+ Defaults for certain configurations can be set for all OS Login versions
92
96
  globally:
93
97
 
94
98
  ```
95
- Google::Cloud::Redis.configure do |config|
99
+ Google::Cloud::OsLogin.configure do |config|
96
100
  config.credentials = "/path/to/credentials.json"
97
101
  config.timeout = 10.0
98
102
  end
@@ -238,7 +242,7 @@ In the 1.0 client, you can also use the paths module as a convenience module.
238
242
 
239
243
  New:
240
244
  ```
241
- # Bring the session_path method into the current class
245
+ # Bring the path helper methods into the current class
242
246
  include Google::Cloud::OsLogin::V1::OsLoginService::Paths
243
247
 
244
248
  def foo
@@ -253,6 +257,48 @@ def foo
253
257
  end
254
258
  ```
255
259
 
260
+ ### Handling Errors
261
+
262
+ The client reports standard
263
+ [gRPC error codes](https://github.com/grpc/grpc/blob/master/doc/statuscodes.md)
264
+ by raising exceptions. In older releases, these exceptions were located in the
265
+ `Google::Gax` namespace and were subclasses of the `Google::Gax::GaxError` base
266
+ exception class, defined in the `google-gax` gem. However, these classes were
267
+ different from the standard exceptions (subclasses of `Google::Cloud::Error`)
268
+ thrown by other client libraries such as `google-cloud-storage`.
269
+
270
+ The 1.0 client library now uses the `Google::Cloud::Error` exception hierarchy,
271
+ for consistency across all the Google Cloud client libraries. In general, these
272
+ exceptions have the same name as their counterparts from older releases, but
273
+ are located in the `Google::Cloud` namespace rather than the `Google::Gax`
274
+ namespace.
275
+
276
+ Old:
277
+ ```
278
+ client = Google::Cloud::OsLogin.new
279
+
280
+ key_name = "users/my-user/sshPublicKeys/12345"
281
+
282
+ begin
283
+ response = client.get_ssh_public_key key_name
284
+ rescue Google::Gax::Error => e
285
+ # Handle exceptions that subclass Google::Gax::Error
286
+ end
287
+ ```
288
+
289
+ New:
290
+ ```
291
+ client = Google::Cloud::OsLogin.os_login_service
292
+
293
+ key_name = "users/my-user/sshPublicKeys/12345"
294
+
295
+ begin
296
+ response = client.get_ssh_public_key name: key_name
297
+ rescue Google::Cloud::Error => e
298
+ # Handle exceptions that subclass Google::Cloud::Error
299
+ end
300
+ ```
301
+
256
302
  ### Class Namespaces
257
303
 
258
304
  In older releases, some data type (protobuf) classes were located under the
data/README.md CHANGED
@@ -6,9 +6,10 @@ Use OS Login to manage SSH access to your instances using IAM without having to
6
6
 
7
7
  Actual client classes for the various versions of this API are defined in
8
8
  _versioned_ client gems, with names of the form `google-cloud-os_login-v*`.
9
- The gem `google-cloud-os_login` is a convenience wrapper library that brings the
9
+ The gem `google-cloud-os_login` is the main client library that brings the
10
10
  verisoned gems in as dependencies, and provides high-level methods for
11
- constructing clients.
11
+ constructing clients. More information on versioned clients can be found below
12
+ in the section titled *Which client should I use?*.
12
13
 
13
14
  View the [Client Library Documentation](https://googleapis.dev/ruby/google-cloud-os_login/latest)
14
15
  for this library, google-cloud-os_login, to see the convenience methods for
@@ -78,3 +79,61 @@ in security maintenance, and not end of life. Currently, this means Ruby 2.4
78
79
  and later. Older versions of Ruby _may_ still work, but are unsupported and not
79
80
  recommended. See https://www.ruby-lang.org/en/downloads/branches/ for details
80
81
  about the Ruby support schedule.
82
+
83
+ ## Which client should I use?
84
+
85
+ Most modern Ruby client libraries for Google APIs come in two flavors: the main
86
+ client library with a name such as `google-cloud-os_login`,
87
+ and lower-level _versioned_ client libraries with names such as
88
+ `google-cloud-os_login-v1`.
89
+ _In most cases, you should install the main client._
90
+
91
+ ### What's the difference between the main client and a versioned client?
92
+
93
+ A _versioned client_ provides a basic set of data types and client classes for
94
+ a _single version_ of a specific service. (That is, for a service with multiple
95
+ versions, there might be a separate versioned client for each service version.)
96
+ Most versioned clients are written and maintained by a code generator.
97
+
98
+ The _main client_ is designed to provide you with the _recommended_ client
99
+ interfaces for the service. There will be only one main client for any given
100
+ service, even a service with multiple versions. The main client includes
101
+ factory methods for constructing the client objects we recommend for most
102
+ users. In some cases, those will be classes provided by an underlying versioned
103
+ client; in other cases, they will be handwritten higher-level client objects
104
+ with additional capabilities, convenience methods, or best practices built in.
105
+ Generally, the main client will default to a recommended service version,
106
+ although in some cases you can override this if you need to talk to a specific
107
+ service version.
108
+
109
+ ### Why would I want to use the main client?
110
+
111
+ We recommend that most users install the main client gem for a service. You can
112
+ identify this gem as the one _without_ a version in its name, e.g.
113
+ `google-cloud-os_login`.
114
+ The main client is recommended because it will embody the best practices for
115
+ accessing the service, and may also provide more convenient interfaces or
116
+ tighter integration into frameworks and third-party libraries. In addition, the
117
+ documentation and samples published by Google will generally demonstrate use of
118
+ the main client.
119
+
120
+ ### Why would I want to use a versioned client?
121
+
122
+ You can use a versioned client if you are content with a possibly lower-level
123
+ class interface, you explicitly want to avoid features provided by the main
124
+ client, or you want to access a specific service version not be covered by the
125
+ main client. You can identify versioned client gems because the service version
126
+ is part of the name, e.g. `google-cloud-os_login-v1`.
127
+
128
+ ### What about the google-apis-<name> clients?
129
+
130
+ Client library gems with names that begin with `google-apis-` are based on an
131
+ older code generation technology. They talk to a REST/JSON backend (whereas
132
+ most modern clients talk to a [gRPC](https://grpc.io/) backend) and they may
133
+ not offer the same performance, features, and ease of use provided by more
134
+ modern clients.
135
+
136
+ The `google-apis-` clients have wide coverage across Google services, so you
137
+ might need to use one if there is no modern client available for the service.
138
+ However, if a modern client is available, we generally recommend it over the
139
+ older `google-apis-` clients.
@@ -29,13 +29,16 @@ require "google/cloud/config"
29
29
 
30
30
  # Set the default configuration
31
31
  ::Google::Cloud.configure.add_config! :os_login do |config|
32
- config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials]
33
- config.add_field! :lib_name, nil, match: ::String
34
- config.add_field! :lib_version, nil, match: ::String
35
- config.add_field! :interceptors, nil, match: ::Array
36
- config.add_field! :timeout, nil, match: ::Numeric
37
- config.add_field! :metadata, nil, match: ::Hash
38
- config.add_field! :retry_policy, nil, match: [::Hash, ::Proc]
32
+ config.add_field! :endpoint, "oslogin.googleapis.com", match: ::String
33
+ config.add_field! :credentials, nil, match: [::String, ::Hash, ::Google::Auth::Credentials]
34
+ config.add_field! :scope, nil, match: [::Array, ::String]
35
+ config.add_field! :lib_name, nil, match: ::String
36
+ config.add_field! :lib_version, nil, match: ::String
37
+ config.add_field! :interceptors, nil, match: ::Array
38
+ config.add_field! :timeout, nil, match: ::Numeric
39
+ config.add_field! :metadata, nil, match: ::Hash
40
+ config.add_field! :retry_policy, nil, match: [::Hash, ::Proc]
41
+ config.add_field! :quota_project, nil, match: ::String
39
42
  end
40
43
 
41
44
  module Google
@@ -88,8 +91,8 @@ module Google
88
91
  # The library version as recorded in instrumentation and logging.
89
92
  # * `interceptors` (*type:* `Array<GRPC::ClientInterceptor>`) -
90
93
  # An array of interceptors that are run before calls are executed.
91
- # * `timeout` (*type:* `Integer`) -
92
- # Default timeout in milliseconds.
94
+ # * `timeout` (*type:* `Numeric`) -
95
+ # Default timeout in seconds.
93
96
  # * `metadata` (*type:* `Hash{Symbol=>String}`) -
94
97
  # Additional gRPC headers to be sent with the call.
95
98
  # * `retry_policy` (*type:* `Hash`) -
@@ -110,3 +113,6 @@ module Google
110
113
  end
111
114
  end
112
115
  end
116
+
117
+ helper_path = ::File.join __dir__, "os_login", "helpers.rb"
118
+ require "google/cloud/os_login/helpers" if ::File.file? helper_path
@@ -20,7 +20,7 @@
20
20
  module Google
21
21
  module Cloud
22
22
  module OsLogin
23
- VERSION = "1.0.0"
23
+ VERSION = "1.1.3"
24
24
  end
25
25
  end
26
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-os_login
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-07 00:00:00.000000000 Z
11
+ date: 2021-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: google-cloud-core
@@ -52,20 +52,6 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.0'
55
- - !ruby/object:Gem::Dependency
56
- name: autotest-suffix
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: '1.1'
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: '1.1'
69
55
  - !ruby/object:Gem::Dependency
70
56
  name: google-style
71
57
  requirement: !ruby/object:Gem::Requirement
@@ -94,20 +80,6 @@ dependencies:
94
80
  - - "~>"
95
81
  - !ruby/object:Gem::Version
96
82
  version: '5.14'
97
- - !ruby/object:Gem::Dependency
98
- name: minitest-autotest
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '1.0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '1.0'
111
83
  - !ruby/object:Gem::Dependency
112
84
  name: minitest-focus
113
85
  requirement: !ruby/object:Gem::Requirement
@@ -228,7 +200,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
200
  - !ruby/object:Gem::Version
229
201
  version: '0'
230
202
  requirements: []
231
- rubygems_version: 3.0.6
203
+ rubygems_version: 3.2.6
232
204
  signing_key:
233
205
  specification_version: 4
234
206
  summary: API Client library for the Cloud OS Login API