google-cloud-os_login 1.0.0 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
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