google-cloud-os_login-v1beta 0.5.0 → 0.6.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: 991ec6a6faff76e98b0e91ad50780ff022bca2147ba41049860f675eadfed0a2
4
- data.tar.gz: c158f8415f71f8f00db4f99ef73c0d1dbb014b55331240877a0f73f70bff11a4
3
+ metadata.gz: 19d734c3c0f55ed9206d34dfae0e92ed1f3e24f978710b2b451a4a75b574c798
4
+ data.tar.gz: a17771113618b8d7d4f7265d207809e1cb8669268e1dc7e85e241ad962949994
5
5
  SHA512:
6
- metadata.gz: 1dd564255d4d46c2bf2a98ac056c8cbcd4b916a4e4231ca5d344e8169cdab4536eaeed41fa9ba5e6244e47a953d8818c9382c0ba420a99ba5d4c9cedc6a27bda
7
- data.tar.gz: 83cf2133f3d3527d0af113db977be7e0129123354917f71681dc4c35e302a4e85481afe3d6b4eec3ea5f28ea1c2e46725e58df194c4fb7acee797d609eed0d44
6
+ metadata.gz: 87028c075ac85b26bdae1aadaab9d8761817ae823309d0cfad69c4f58b18f4e54ad2446c070e32485203ac9843c8fd00f6f82d4bea1c509891d450d3e309d7b5
7
+ data.tar.gz: 8ae0c205877542166b644650a59510a7851be297da49515a35b3d21d9483f3b68fcfbe0044aacf4c5bfe4089b91c77edb4db4465f3557f560703fa90739d35ec
data/AUTHENTICATION.md CHANGED
@@ -114,7 +114,7 @@ credentials are discovered.
114
114
  To configure your system for this, simply:
115
115
 
116
116
  1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
117
- 2. Authenticate using OAuth 2.0 `$ gcloud auth login`
117
+ 2. Authenticate using OAuth 2.0 `$ gcloud auth application-default login`
118
118
  3. Write code as if already authenticated.
119
119
 
120
120
  **NOTE:** This is _not_ recommended for running in production. The Cloud SDK
data/README.md CHANGED
@@ -33,8 +33,8 @@ In order to use this library, you first need to go through the following steps:
33
33
  require "google/cloud/os_login/v1beta"
34
34
 
35
35
  client = ::Google::Cloud::OsLogin::V1beta::OsLoginService::Client.new
36
- request = ::Google::Cloud::OsLogin::V1beta::DeletePosixAccountRequest.new # (request fields as keyword arguments...)
37
- response = client.delete_posix_account request
36
+ request = ::Google::Cloud::OsLogin::V1beta::CreateSshPublicKeyRequest.new # (request fields as keyword arguments...)
37
+ response = client.create_ssh_public_key request
38
38
  ```
39
39
 
40
40
  View the [Client Library Documentation](https://cloud.google.com/ruby/docs/reference/google-cloud-os_login-v1beta/latest)
@@ -177,6 +177,93 @@ module Google
177
177
 
178
178
  # Service calls
179
179
 
180
+ ##
181
+ # Create an SSH public key
182
+ #
183
+ # @overload create_ssh_public_key(request, options = nil)
184
+ # Pass arguments to `create_ssh_public_key` via a request object, either of type
185
+ # {::Google::Cloud::OsLogin::V1beta::CreateSshPublicKeyRequest} or an equivalent Hash.
186
+ #
187
+ # @param request [::Google::Cloud::OsLogin::V1beta::CreateSshPublicKeyRequest, ::Hash]
188
+ # A request object representing the call parameters. Required. To specify no
189
+ # parameters, or to keep all the default parameter values, pass an empty Hash.
190
+ # @param options [::Gapic::CallOptions, ::Hash]
191
+ # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
192
+ #
193
+ # @overload create_ssh_public_key(parent: nil, ssh_public_key: nil)
194
+ # Pass arguments to `create_ssh_public_key` via keyword arguments. Note that at
195
+ # least one keyword argument is required. To specify no parameters, or to keep all
196
+ # the default parameter values, pass an empty Hash as a request object (see above).
197
+ #
198
+ # @param parent [::String]
199
+ # Required. The unique ID for the user in format `users/{user}`.
200
+ # @param ssh_public_key [::Google::Cloud::OsLogin::Common::SshPublicKey, ::Hash]
201
+ # Required. The SSH public key and expiration time.
202
+ #
203
+ # @yield [response, operation] Access the result along with the RPC operation
204
+ # @yieldparam response [::Google::Cloud::OsLogin::Common::SshPublicKey]
205
+ # @yieldparam operation [::GRPC::ActiveCall::Operation]
206
+ #
207
+ # @return [::Google::Cloud::OsLogin::Common::SshPublicKey]
208
+ #
209
+ # @raise [::Google::Cloud::Error] if the RPC is aborted.
210
+ #
211
+ # @example Basic example
212
+ # require "google/cloud/os_login/v1beta"
213
+ #
214
+ # # Create a client object. The client can be reused for multiple calls.
215
+ # client = Google::Cloud::OsLogin::V1beta::OsLoginService::Client.new
216
+ #
217
+ # # Create a request. To set request fields, pass in keyword arguments.
218
+ # request = Google::Cloud::OsLogin::V1beta::CreateSshPublicKeyRequest.new
219
+ #
220
+ # # Call the create_ssh_public_key method.
221
+ # result = client.create_ssh_public_key request
222
+ #
223
+ # # The returned object is of type Google::Cloud::OsLogin::Common::SshPublicKey.
224
+ # p result
225
+ #
226
+ def create_ssh_public_key request, options = nil
227
+ raise ::ArgumentError, "request must be provided" if request.nil?
228
+
229
+ request = ::Gapic::Protobuf.coerce request, to: ::Google::Cloud::OsLogin::V1beta::CreateSshPublicKeyRequest
230
+
231
+ # Converts hash and nil to an options object
232
+ options = ::Gapic::CallOptions.new(**options.to_h) if options.respond_to? :to_h
233
+
234
+ # Customize the options with defaults
235
+ metadata = @config.rpcs.create_ssh_public_key.metadata.to_h
236
+
237
+ # Set x-goog-api-client and x-goog-user-project headers
238
+ metadata[:"x-goog-api-client"] ||= ::Gapic::Headers.x_goog_api_client \
239
+ lib_name: @config.lib_name, lib_version: @config.lib_version,
240
+ gapic_version: ::Google::Cloud::OsLogin::V1beta::VERSION
241
+ metadata[:"x-goog-user-project"] = @quota_project_id if @quota_project_id
242
+
243
+ header_params = {}
244
+ if request.parent
245
+ header_params["parent"] = request.parent
246
+ end
247
+
248
+ request_params_header = header_params.map { |k, v| "#{k}=#{v}" }.join("&")
249
+ metadata[:"x-goog-request-params"] ||= request_params_header
250
+
251
+ options.apply_defaults timeout: @config.rpcs.create_ssh_public_key.timeout,
252
+ metadata: metadata,
253
+ retry_policy: @config.rpcs.create_ssh_public_key.retry_policy
254
+
255
+ options.apply_defaults timeout: @config.timeout,
256
+ metadata: @config.metadata,
257
+ retry_policy: @config.retry_policy
258
+
259
+ @os_login_service_stub.call_rpc :create_ssh_public_key, request, options: options do |response, operation|
260
+ yield response, operation if block_given?
261
+ return response
262
+ end
263
+ rescue ::GRPC::BadStatus => e
264
+ raise ::Google::Cloud::Error.from_error(e)
265
+ end
266
+
180
267
  ##
181
268
  # Deletes a POSIX account.
182
269
  #
@@ -365,7 +452,7 @@ module Google
365
452
  # @param options [::Gapic::CallOptions, ::Hash]
366
453
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
367
454
  #
368
- # @overload get_login_profile(name: nil, project_id: nil, system_id: nil)
455
+ # @overload get_login_profile(name: nil, project_id: nil, system_id: nil, view: nil)
369
456
  # Pass arguments to `get_login_profile` via keyword arguments. Note that at
370
457
  # least one keyword argument is required. To specify no parameters, or to keep all
371
458
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -376,6 +463,8 @@ module Google
376
463
  # The project ID of the Google Cloud Platform project.
377
464
  # @param system_id [::String]
378
465
  # A system ID for filtering the results of the request.
466
+ # @param view [::Google::Cloud::OsLogin::V1beta::LoginProfileView]
467
+ # The view configures whether to retrieve security keys information.
379
468
  #
380
469
  # @yield [response, operation] Access the result along with the RPC operation
381
470
  # @yieldparam response [::Google::Cloud::OsLogin::V1beta::LoginProfile]
@@ -543,7 +632,7 @@ module Google
543
632
  # @param options [::Gapic::CallOptions, ::Hash]
544
633
  # Overrides the default settings for this call, e.g, timeout, retries, etc. Optional.
545
634
  #
546
- # @overload import_ssh_public_key(parent: nil, ssh_public_key: nil, project_id: nil)
635
+ # @overload import_ssh_public_key(parent: nil, ssh_public_key: nil, project_id: nil, view: nil)
547
636
  # Pass arguments to `import_ssh_public_key` via keyword arguments. Note that at
548
637
  # least one keyword argument is required. To specify no parameters, or to keep all
549
638
  # the default parameter values, pass an empty Hash as a request object (see above).
@@ -554,6 +643,8 @@ module Google
554
643
  # Required. The SSH public key and expiration time.
555
644
  # @param project_id [::String]
556
645
  # The project ID of the Google Cloud Platform project.
646
+ # @param view [::Google::Cloud::OsLogin::V1beta::LoginProfileView]
647
+ # The view configures whether to retrieve security keys information.
557
648
  #
558
649
  # @yield [response, operation] Access the result along with the RPC operation
559
650
  # @yieldparam response [::Google::Cloud::OsLogin::V1beta::ImportSshPublicKeyResponse]
@@ -727,17 +818,17 @@ module Google
727
818
  # @example
728
819
  #
729
820
  # # Modify the global config, setting the timeout for
730
- # # delete_posix_account to 20 seconds,
821
+ # # create_ssh_public_key to 20 seconds,
731
822
  # # and all remaining timeouts to 10 seconds.
732
823
  # ::Google::Cloud::OsLogin::V1beta::OsLoginService::Client.configure do |config|
733
824
  # config.timeout = 10.0
734
- # config.rpcs.delete_posix_account.timeout = 20.0
825
+ # config.rpcs.create_ssh_public_key.timeout = 20.0
735
826
  # end
736
827
  #
737
828
  # # Apply the above configuration only to a new client.
738
829
  # client = ::Google::Cloud::OsLogin::V1beta::OsLoginService::Client.new do |config|
739
830
  # config.timeout = 10.0
740
- # config.rpcs.delete_posix_account.timeout = 20.0
831
+ # config.rpcs.create_ssh_public_key.timeout = 20.0
741
832
  # end
742
833
  #
743
834
  # @!attribute [rw] endpoint
@@ -846,6 +937,11 @@ module Google
846
937
  # trigger a retry.
847
938
  #
848
939
  class Rpcs
940
+ ##
941
+ # RPC-specific configuration for `create_ssh_public_key`
942
+ # @return [::Gapic::Config::Method]
943
+ #
944
+ attr_reader :create_ssh_public_key
849
945
  ##
850
946
  # RPC-specific configuration for `delete_posix_account`
851
947
  # @return [::Gapic::Config::Method]
@@ -879,6 +975,8 @@ module Google
879
975
 
880
976
  # @private
881
977
  def initialize parent_rpcs = nil
978
+ create_ssh_public_key_config = parent_rpcs.create_ssh_public_key if parent_rpcs.respond_to? :create_ssh_public_key
979
+ @create_ssh_public_key = ::Gapic::Config::Method.new create_ssh_public_key_config
882
980
  delete_posix_account_config = parent_rpcs.delete_posix_account if parent_rpcs.respond_to? :delete_posix_account
883
981
  @delete_posix_account = ::Gapic::Config::Method.new delete_posix_account_config
884
982
  delete_ssh_public_key_config = parent_rpcs.delete_ssh_public_key if parent_rpcs.respond_to? :delete_ssh_public_key
@@ -21,7 +21,7 @@ module Google
21
21
  module Cloud
22
22
  module OsLogin
23
23
  module V1beta
24
- VERSION = "0.5.0"
24
+ VERSION = "0.6.0"
25
25
  end
26
26
  end
27
27
  end
@@ -17,6 +17,11 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
17
17
  optional :name, :string, 1
18
18
  repeated :posix_accounts, :message, 2, "google.cloud.oslogin.common.PosixAccount"
19
19
  map :ssh_public_keys, :string, :message, 3, "google.cloud.oslogin.common.SshPublicKey"
20
+ repeated :security_keys, :message, 5, "google.cloud.oslogin.v1beta.SecurityKey"
21
+ end
22
+ add_message "google.cloud.oslogin.v1beta.CreateSshPublicKeyRequest" do
23
+ optional :parent, :string, 1
24
+ optional :ssh_public_key, :message, 2, "google.cloud.oslogin.common.SshPublicKey"
20
25
  end
21
26
  add_message "google.cloud.oslogin.v1beta.DeletePosixAccountRequest" do
22
27
  optional :name, :string, 1
@@ -28,6 +33,7 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
28
33
  optional :name, :string, 1
29
34
  optional :project_id, :string, 2
30
35
  optional :system_id, :string, 3
36
+ optional :view, :enum, 4, "google.cloud.oslogin.v1beta.LoginProfileView"
31
37
  end
32
38
  add_message "google.cloud.oslogin.v1beta.GetSshPublicKeyRequest" do
33
39
  optional :name, :string, 1
@@ -36,15 +42,36 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
36
42
  optional :parent, :string, 1
37
43
  optional :ssh_public_key, :message, 2, "google.cloud.oslogin.common.SshPublicKey"
38
44
  optional :project_id, :string, 3
45
+ optional :view, :enum, 4, "google.cloud.oslogin.v1beta.LoginProfileView"
39
46
  end
40
47
  add_message "google.cloud.oslogin.v1beta.ImportSshPublicKeyResponse" do
41
48
  optional :login_profile, :message, 1, "google.cloud.oslogin.v1beta.LoginProfile"
49
+ optional :details, :string, 2
42
50
  end
43
51
  add_message "google.cloud.oslogin.v1beta.UpdateSshPublicKeyRequest" do
44
52
  optional :name, :string, 1
45
53
  optional :ssh_public_key, :message, 2, "google.cloud.oslogin.common.SshPublicKey"
46
54
  optional :update_mask, :message, 3, "google.protobuf.FieldMask"
47
55
  end
56
+ add_message "google.cloud.oslogin.v1beta.SecurityKey" do
57
+ optional :public_key, :string, 1
58
+ optional :private_key, :string, 2
59
+ oneof :protocol_type do
60
+ optional :universal_two_factor, :message, 3, "google.cloud.oslogin.v1beta.UniversalTwoFactor"
61
+ optional :web_authn, :message, 4, "google.cloud.oslogin.v1beta.WebAuthn"
62
+ end
63
+ end
64
+ add_message "google.cloud.oslogin.v1beta.UniversalTwoFactor" do
65
+ optional :app_id, :string, 1
66
+ end
67
+ add_message "google.cloud.oslogin.v1beta.WebAuthn" do
68
+ optional :rp_id, :string, 1
69
+ end
70
+ add_enum "google.cloud.oslogin.v1beta.LoginProfileView" do
71
+ value :LOGIN_PROFILE_VIEW_UNSPECIFIED, 0
72
+ value :BASIC, 1
73
+ value :SECURITY_KEY, 2
74
+ end
48
75
  end
49
76
  end
50
77
 
@@ -53,6 +80,7 @@ module Google
53
80
  module OsLogin
54
81
  module V1beta
55
82
  LoginProfile = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.LoginProfile").msgclass
83
+ CreateSshPublicKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.CreateSshPublicKeyRequest").msgclass
56
84
  DeletePosixAccountRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.DeletePosixAccountRequest").msgclass
57
85
  DeleteSshPublicKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.DeleteSshPublicKeyRequest").msgclass
58
86
  GetLoginProfileRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.GetLoginProfileRequest").msgclass
@@ -60,6 +88,10 @@ module Google
60
88
  ImportSshPublicKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.ImportSshPublicKeyRequest").msgclass
61
89
  ImportSshPublicKeyResponse = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.ImportSshPublicKeyResponse").msgclass
62
90
  UpdateSshPublicKeyRequest = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.UpdateSshPublicKeyRequest").msgclass
91
+ SecurityKey = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.SecurityKey").msgclass
92
+ UniversalTwoFactor = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.UniversalTwoFactor").msgclass
93
+ WebAuthn = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.WebAuthn").msgclass
94
+ LoginProfileView = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.cloud.oslogin.v1beta.LoginProfileView").enummodule
63
95
  end
64
96
  end
65
97
  end
@@ -1,7 +1,7 @@
1
1
  # Generated by the protocol buffer compiler. DO NOT EDIT!
2
2
  # Source: google/cloud/oslogin/v1beta/oslogin.proto for package 'Google.Cloud.OsLogin.V1beta'
3
3
  # Original file comments:
4
- # Copyright 2019 Google LLC.
4
+ # Copyright 2022 Google LLC
5
5
  #
6
6
  # Licensed under the Apache License, Version 2.0 (the "License");
7
7
  # you may not use this file except in compliance with the License.
@@ -15,7 +15,6 @@
15
15
  # See the License for the specific language governing permissions and
16
16
  # limitations under the License.
17
17
  #
18
- #
19
18
 
20
19
  require 'grpc'
21
20
  require 'google/cloud/oslogin/v1beta/oslogin_pb'
@@ -37,6 +36,8 @@ module Google
37
36
  self.unmarshal_class_method = :decode
38
37
  self.service_name = 'google.cloud.oslogin.v1beta.OsLoginService'
39
38
 
39
+ # Create an SSH public key
40
+ rpc :CreateSshPublicKey, ::Google::Cloud::OsLogin::V1beta::CreateSshPublicKeyRequest, ::Google::Cloud::OsLogin::Common::SshPublicKey
40
41
  # Deletes a POSIX account.
41
42
  rpc :DeletePosixAccount, ::Google::Cloud::OsLogin::V1beta::DeletePosixAccountRequest, ::Google::Protobuf::Empty
42
43
  # Deletes an SSH public key.
@@ -0,0 +1,318 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Api
22
+ # Required information for every language.
23
+ # @!attribute [rw] reference_docs_uri
24
+ # @return [::String]
25
+ # Link to automatically generated reference documentation. Example:
26
+ # https://cloud.google.com/nodejs/docs/reference/asset/latest
27
+ # @!attribute [rw] destinations
28
+ # @return [::Array<::Google::Api::ClientLibraryDestination>]
29
+ # The destination where API teams want this client library to be published.
30
+ class CommonLanguageSettings
31
+ include ::Google::Protobuf::MessageExts
32
+ extend ::Google::Protobuf::MessageExts::ClassMethods
33
+ end
34
+
35
+ # Details about how and where to publish client libraries.
36
+ # @!attribute [rw] version
37
+ # @return [::String]
38
+ # Version of the API to apply these settings to.
39
+ # @!attribute [rw] launch_stage
40
+ # @return [::Google::Api::LaunchStage]
41
+ # Launch stage of this version of the API.
42
+ # @!attribute [rw] rest_numeric_enums
43
+ # @return [::Boolean]
44
+ # When using transport=rest, the client request will encode enums as
45
+ # numbers rather than strings.
46
+ # @!attribute [rw] java_settings
47
+ # @return [::Google::Api::JavaSettings]
48
+ # Settings for legacy Java features, supported in the Service YAML.
49
+ # @!attribute [rw] cpp_settings
50
+ # @return [::Google::Api::CppSettings]
51
+ # Settings for C++ client libraries.
52
+ # @!attribute [rw] php_settings
53
+ # @return [::Google::Api::PhpSettings]
54
+ # Settings for PHP client libraries.
55
+ # @!attribute [rw] python_settings
56
+ # @return [::Google::Api::PythonSettings]
57
+ # Settings for Python client libraries.
58
+ # @!attribute [rw] node_settings
59
+ # @return [::Google::Api::NodeSettings]
60
+ # Settings for Node client libraries.
61
+ # @!attribute [rw] dotnet_settings
62
+ # @return [::Google::Api::DotnetSettings]
63
+ # Settings for .NET client libraries.
64
+ # @!attribute [rw] ruby_settings
65
+ # @return [::Google::Api::RubySettings]
66
+ # Settings for Ruby client libraries.
67
+ # @!attribute [rw] go_settings
68
+ # @return [::Google::Api::GoSettings]
69
+ # Settings for Go client libraries.
70
+ class ClientLibrarySettings
71
+ include ::Google::Protobuf::MessageExts
72
+ extend ::Google::Protobuf::MessageExts::ClassMethods
73
+ end
74
+
75
+ # This message configures the settings for publishing [Google Cloud Client
76
+ # libraries](https://cloud.google.com/apis/docs/cloud-client-libraries)
77
+ # generated from the service config.
78
+ # @!attribute [rw] method_settings
79
+ # @return [::Array<::Google::Api::MethodSettings>]
80
+ # A list of API method settings, e.g. the behavior for methods that use the
81
+ # long-running operation pattern.
82
+ # @!attribute [rw] new_issue_uri
83
+ # @return [::String]
84
+ # Link to a place that API users can report issues. Example:
85
+ # https://issuetracker.google.com/issues/new?component=190865&template=1161103
86
+ # @!attribute [rw] documentation_uri
87
+ # @return [::String]
88
+ # Link to product home page. Example:
89
+ # https://cloud.google.com/asset-inventory/docs/overview
90
+ # @!attribute [rw] api_short_name
91
+ # @return [::String]
92
+ # Used as a tracking tag when collecting data about the APIs developer
93
+ # relations artifacts like docs, packages delivered to package managers,
94
+ # etc. Example: "speech".
95
+ # @!attribute [rw] github_label
96
+ # @return [::String]
97
+ # GitHub label to apply to issues and pull requests opened for this API.
98
+ # @!attribute [rw] codeowner_github_teams
99
+ # @return [::Array<::String>]
100
+ # GitHub teams to be added to CODEOWNERS in the directory in GitHub
101
+ # containing source code for the client libraries for this API.
102
+ # @!attribute [rw] doc_tag_prefix
103
+ # @return [::String]
104
+ # A prefix used in sample code when demarking regions to be included in
105
+ # documentation.
106
+ # @!attribute [rw] organization
107
+ # @return [::Google::Api::ClientLibraryOrganization]
108
+ # For whom the client library is being published.
109
+ # @!attribute [rw] library_settings
110
+ # @return [::Array<::Google::Api::ClientLibrarySettings>]
111
+ # Client library settings. If the same version string appears multiple
112
+ # times in this list, then the last one wins. Settings from earlier
113
+ # settings with the same version string are discarded.
114
+ class Publishing
115
+ include ::Google::Protobuf::MessageExts
116
+ extend ::Google::Protobuf::MessageExts::ClassMethods
117
+ end
118
+
119
+ # Settings for Java client libraries.
120
+ # @!attribute [rw] library_package
121
+ # @return [::String]
122
+ # The package name to use in Java. Clobbers the java_package option
123
+ # set in the protobuf. This should be used **only** by APIs
124
+ # who have already set the language_settings.java.package_name" field
125
+ # in gapic.yaml. API teams should use the protobuf java_package option
126
+ # where possible.
127
+ #
128
+ # Example of a YAML configuration::
129
+ #
130
+ # publishing:
131
+ # java_settings:
132
+ # library_package: com.google.cloud.pubsub.v1
133
+ # @!attribute [rw] service_class_names
134
+ # @return [::Google::Protobuf::Map{::String => ::String}]
135
+ # Configure the Java class name to use instead of the service's for its
136
+ # corresponding generated GAPIC client. Keys are fully-qualified
137
+ # service names as they appear in the protobuf (including the full
138
+ # the language_settings.java.interface_names" field in gapic.yaml. API
139
+ # teams should otherwise use the service name as it appears in the
140
+ # protobuf.
141
+ #
142
+ # Example of a YAML configuration::
143
+ #
144
+ # publishing:
145
+ # java_settings:
146
+ # service_class_names:
147
+ # - google.pubsub.v1.Publisher: TopicAdmin
148
+ # - google.pubsub.v1.Subscriber: SubscriptionAdmin
149
+ # @!attribute [rw] common
150
+ # @return [::Google::Api::CommonLanguageSettings]
151
+ # Some settings.
152
+ class JavaSettings
153
+ include ::Google::Protobuf::MessageExts
154
+ extend ::Google::Protobuf::MessageExts::ClassMethods
155
+
156
+ # @!attribute [rw] key
157
+ # @return [::String]
158
+ # @!attribute [rw] value
159
+ # @return [::String]
160
+ class ServiceClassNamesEntry
161
+ include ::Google::Protobuf::MessageExts
162
+ extend ::Google::Protobuf::MessageExts::ClassMethods
163
+ end
164
+ end
165
+
166
+ # Settings for C++ client libraries.
167
+ # @!attribute [rw] common
168
+ # @return [::Google::Api::CommonLanguageSettings]
169
+ # Some settings.
170
+ class CppSettings
171
+ include ::Google::Protobuf::MessageExts
172
+ extend ::Google::Protobuf::MessageExts::ClassMethods
173
+ end
174
+
175
+ # Settings for Php client libraries.
176
+ # @!attribute [rw] common
177
+ # @return [::Google::Api::CommonLanguageSettings]
178
+ # Some settings.
179
+ class PhpSettings
180
+ include ::Google::Protobuf::MessageExts
181
+ extend ::Google::Protobuf::MessageExts::ClassMethods
182
+ end
183
+
184
+ # Settings for Python client libraries.
185
+ # @!attribute [rw] common
186
+ # @return [::Google::Api::CommonLanguageSettings]
187
+ # Some settings.
188
+ class PythonSettings
189
+ include ::Google::Protobuf::MessageExts
190
+ extend ::Google::Protobuf::MessageExts::ClassMethods
191
+ end
192
+
193
+ # Settings for Node client libraries.
194
+ # @!attribute [rw] common
195
+ # @return [::Google::Api::CommonLanguageSettings]
196
+ # Some settings.
197
+ class NodeSettings
198
+ include ::Google::Protobuf::MessageExts
199
+ extend ::Google::Protobuf::MessageExts::ClassMethods
200
+ end
201
+
202
+ # Settings for Dotnet client libraries.
203
+ # @!attribute [rw] common
204
+ # @return [::Google::Api::CommonLanguageSettings]
205
+ # Some settings.
206
+ class DotnetSettings
207
+ include ::Google::Protobuf::MessageExts
208
+ extend ::Google::Protobuf::MessageExts::ClassMethods
209
+ end
210
+
211
+ # Settings for Ruby client libraries.
212
+ # @!attribute [rw] common
213
+ # @return [::Google::Api::CommonLanguageSettings]
214
+ # Some settings.
215
+ class RubySettings
216
+ include ::Google::Protobuf::MessageExts
217
+ extend ::Google::Protobuf::MessageExts::ClassMethods
218
+ end
219
+
220
+ # Settings for Go client libraries.
221
+ # @!attribute [rw] common
222
+ # @return [::Google::Api::CommonLanguageSettings]
223
+ # Some settings.
224
+ class GoSettings
225
+ include ::Google::Protobuf::MessageExts
226
+ extend ::Google::Protobuf::MessageExts::ClassMethods
227
+ end
228
+
229
+ # Describes the generator configuration for a method.
230
+ # @!attribute [rw] selector
231
+ # @return [::String]
232
+ # The fully qualified name of the method, for which the options below apply.
233
+ # This is used to find the method to apply the options.
234
+ # @!attribute [rw] long_running
235
+ # @return [::Google::Api::MethodSettings::LongRunning]
236
+ # Describes settings to use for long-running operations when generating
237
+ # API methods for RPCs. Complements RPCs that use the annotations in
238
+ # google/longrunning/operations.proto.
239
+ #
240
+ # Example of a YAML configuration::
241
+ #
242
+ # publishing:
243
+ # method_behavior:
244
+ # - selector: CreateAdDomain
245
+ # long_running:
246
+ # initial_poll_delay:
247
+ # seconds: 60 # 1 minute
248
+ # poll_delay_multiplier: 1.5
249
+ # max_poll_delay:
250
+ # seconds: 360 # 6 minutes
251
+ # total_poll_timeout:
252
+ # seconds: 54000 # 90 minutes
253
+ class MethodSettings
254
+ include ::Google::Protobuf::MessageExts
255
+ extend ::Google::Protobuf::MessageExts::ClassMethods
256
+
257
+ # Describes settings to use when generating API methods that use the
258
+ # long-running operation pattern.
259
+ # All default values below are from those used in the client library
260
+ # generators (e.g.
261
+ # [Java](https://github.com/googleapis/gapic-generator-java/blob/04c2faa191a9b5a10b92392fe8482279c4404803/src/main/java/com/google/api/generator/gapic/composer/common/RetrySettingsComposer.java)).
262
+ # @!attribute [rw] initial_poll_delay
263
+ # @return [::Google::Protobuf::Duration]
264
+ # Initial delay after which the first poll request will be made.
265
+ # Default value: 5 seconds.
266
+ # @!attribute [rw] poll_delay_multiplier
267
+ # @return [::Float]
268
+ # Multiplier to gradually increase delay between subsequent polls until it
269
+ # reaches max_poll_delay.
270
+ # Default value: 1.5.
271
+ # @!attribute [rw] max_poll_delay
272
+ # @return [::Google::Protobuf::Duration]
273
+ # Maximum time between two subsequent poll requests.
274
+ # Default value: 45 seconds.
275
+ # @!attribute [rw] total_poll_timeout
276
+ # @return [::Google::Protobuf::Duration]
277
+ # Total polling timeout.
278
+ # Default value: 5 minutes.
279
+ class LongRunning
280
+ include ::Google::Protobuf::MessageExts
281
+ extend ::Google::Protobuf::MessageExts::ClassMethods
282
+ end
283
+ end
284
+
285
+ # The organization for which the client libraries are being published.
286
+ # Affects the url where generated docs are published, etc.
287
+ module ClientLibraryOrganization
288
+ # Not useful.
289
+ CLIENT_LIBRARY_ORGANIZATION_UNSPECIFIED = 0
290
+
291
+ # Google Cloud Platform Org.
292
+ CLOUD = 1
293
+
294
+ # Ads (Advertising) Org.
295
+ ADS = 2
296
+
297
+ # Photos Org.
298
+ PHOTOS = 3
299
+
300
+ # Street View Org.
301
+ STREET_VIEW = 4
302
+ end
303
+
304
+ # To where should client libraries be published?
305
+ module ClientLibraryDestination
306
+ # Client libraries will neither be generated nor published to package
307
+ # managers.
308
+ CLIENT_LIBRARY_DESTINATION_UNSPECIFIED = 0
309
+
310
+ # Generate the client library in a repo under github.com/googleapis,
311
+ # but don't publish it to package managers.
312
+ GITHUB = 10
313
+
314
+ # Publish the library to package managers like nuget.org and npmjs.com.
315
+ PACKAGE_MANAGER = 20
316
+ end
317
+ end
318
+ end
@@ -0,0 +1,71 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Api
22
+ # The launch stage as defined by [Google Cloud Platform
23
+ # Launch Stages](https://cloud.google.com/terms/launch-stages).
24
+ module LaunchStage
25
+ # Do not use this default value.
26
+ LAUNCH_STAGE_UNSPECIFIED = 0
27
+
28
+ # The feature is not yet implemented. Users can not use it.
29
+ UNIMPLEMENTED = 6
30
+
31
+ # Prelaunch features are hidden from users and are only visible internally.
32
+ PRELAUNCH = 7
33
+
34
+ # Early Access features are limited to a closed group of testers. To use
35
+ # these features, you must sign up in advance and sign a Trusted Tester
36
+ # agreement (which includes confidentiality provisions). These features may
37
+ # be unstable, changed in backward-incompatible ways, and are not
38
+ # guaranteed to be released.
39
+ EARLY_ACCESS = 1
40
+
41
+ # Alpha is a limited availability test for releases before they are cleared
42
+ # for widespread use. By Alpha, all significant design issues are resolved
43
+ # and we are in the process of verifying functionality. Alpha customers
44
+ # need to apply for access, agree to applicable terms, and have their
45
+ # projects allowlisted. Alpha releases don't have to be feature complete,
46
+ # no SLAs are provided, and there are no technical support obligations, but
47
+ # they will be far enough along that customers can actually use them in
48
+ # test environments or for limited-use tests -- just like they would in
49
+ # normal production cases.
50
+ ALPHA = 2
51
+
52
+ # Beta is the point at which we are ready to open a release for any
53
+ # customer to use. There are no SLA or technical support obligations in a
54
+ # Beta release. Products will be complete from a feature perspective, but
55
+ # may have some open outstanding issues. Beta releases are suitable for
56
+ # limited production use cases.
57
+ BETA = 3
58
+
59
+ # GA features are open to all developers and are considered stable and
60
+ # fully qualified for production use.
61
+ GA = 4
62
+
63
+ # Deprecated features are scheduled to be shut down and removed. For more
64
+ # information, see the "Deprecation Policy" section of our [Terms of
65
+ # Service](https://cloud.google.com/terms/)
66
+ # and the [Google Cloud Platform Subject to the Deprecation
67
+ # Policy](https://cloud.google.com/terms/deprecation) documentation.
68
+ DEPRECATED = 5
69
+ end
70
+ end
71
+ end
@@ -32,6 +32,9 @@ module Google
32
32
  # @!attribute [rw] ssh_public_keys
33
33
  # @return [::Google::Protobuf::Map{::String => ::Google::Cloud::OsLogin::Common::SshPublicKey}]
34
34
  # A map from SSH public key fingerprint to the associated key object.
35
+ # @!attribute [rw] security_keys
36
+ # @return [::Array<::Google::Cloud::OsLogin::V1beta::SecurityKey>]
37
+ # The registered security key credentials for a user.
35
38
  class LoginProfile
36
39
  include ::Google::Protobuf::MessageExts
37
40
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -46,6 +49,18 @@ module Google
46
49
  end
47
50
  end
48
51
 
52
+ # A request message for creating an SSH public key.
53
+ # @!attribute [rw] parent
54
+ # @return [::String]
55
+ # Required. The unique ID for the user in format `users/{user}`.
56
+ # @!attribute [rw] ssh_public_key
57
+ # @return [::Google::Cloud::OsLogin::Common::SshPublicKey]
58
+ # Required. The SSH public key and expiration time.
59
+ class CreateSshPublicKeyRequest
60
+ include ::Google::Protobuf::MessageExts
61
+ extend ::Google::Protobuf::MessageExts::ClassMethods
62
+ end
63
+
49
64
  # A request message for deleting a POSIX account entry.
50
65
  # @!attribute [rw] name
51
66
  # @return [::String]
@@ -78,6 +93,9 @@ module Google
78
93
  # @!attribute [rw] system_id
79
94
  # @return [::String]
80
95
  # A system ID for filtering the results of the request.
96
+ # @!attribute [rw] view
97
+ # @return [::Google::Cloud::OsLogin::V1beta::LoginProfileView]
98
+ # The view configures whether to retrieve security keys information.
81
99
  class GetLoginProfileRequest
82
100
  include ::Google::Protobuf::MessageExts
83
101
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -104,6 +122,9 @@ module Google
104
122
  # @!attribute [rw] project_id
105
123
  # @return [::String]
106
124
  # The project ID of the Google Cloud Platform project.
125
+ # @!attribute [rw] view
126
+ # @return [::Google::Cloud::OsLogin::V1beta::LoginProfileView]
127
+ # The view configures whether to retrieve security keys information.
107
128
  class ImportSshPublicKeyRequest
108
129
  include ::Google::Protobuf::MessageExts
109
130
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -113,6 +134,9 @@ module Google
113
134
  # @!attribute [rw] login_profile
114
135
  # @return [::Google::Cloud::OsLogin::V1beta::LoginProfile]
115
136
  # The login profile information for the user.
137
+ # @!attribute [rw] details
138
+ # @return [::String]
139
+ # Detailed information about import results.
116
140
  class ImportSshPublicKeyResponse
117
141
  include ::Google::Protobuf::MessageExts
118
142
  extend ::Google::Protobuf::MessageExts::ClassMethods
@@ -134,6 +158,55 @@ module Google
134
158
  include ::Google::Protobuf::MessageExts
135
159
  extend ::Google::Protobuf::MessageExts::ClassMethods
136
160
  end
161
+
162
+ # The credential information for a Google registered security key.
163
+ # @!attribute [rw] public_key
164
+ # @return [::String]
165
+ # Public key text in SSH format, defined by
166
+ # [RFC4253]("https://www.ietf.org/rfc/rfc4253.txt") section 6.6.
167
+ # @!attribute [rw] private_key
168
+ # @return [::String]
169
+ # Hardware-backed private key text in SSH format.
170
+ # @!attribute [rw] universal_two_factor
171
+ # @return [::Google::Cloud::OsLogin::V1beta::UniversalTwoFactor]
172
+ # The U2F protocol type.
173
+ # @!attribute [rw] web_authn
174
+ # @return [::Google::Cloud::OsLogin::V1beta::WebAuthn]
175
+ # The Web Authentication protocol type.
176
+ class SecurityKey
177
+ include ::Google::Protobuf::MessageExts
178
+ extend ::Google::Protobuf::MessageExts::ClassMethods
179
+ end
180
+
181
+ # Security key information specific to the U2F protocol.
182
+ # @!attribute [rw] app_id
183
+ # @return [::String]
184
+ # Application ID for the U2F protocol.
185
+ class UniversalTwoFactor
186
+ include ::Google::Protobuf::MessageExts
187
+ extend ::Google::Protobuf::MessageExts::ClassMethods
188
+ end
189
+
190
+ # Security key information specific to the Web Authentication protocol.
191
+ # @!attribute [rw] rp_id
192
+ # @return [::String]
193
+ # Relying party ID for Web Authentication.
194
+ class WebAuthn
195
+ include ::Google::Protobuf::MessageExts
196
+ extend ::Google::Protobuf::MessageExts::ClassMethods
197
+ end
198
+
199
+ # The login profile view limits the user content retrieved.
200
+ module LoginProfileView
201
+ # The default login profile view. The API defaults to the BASIC view.
202
+ LOGIN_PROFILE_VIEW_UNSPECIFIED = 0
203
+
204
+ # Includes POSIX and SSH key information.
205
+ BASIC = 1
206
+
207
+ # Include security key information for the user.
208
+ SECURITY_KEY = 2
209
+ end
137
210
  end
138
211
  end
139
212
  end
@@ -0,0 +1,98 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2022 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Protobuf
22
+ # A Duration represents a signed, fixed-length span of time represented
23
+ # as a count of seconds and fractions of seconds at nanosecond
24
+ # resolution. It is independent of any calendar and concepts like "day"
25
+ # or "month". It is related to Timestamp in that the difference between
26
+ # two Timestamp values is a Duration and it can be added or subtracted
27
+ # from a Timestamp. Range is approximately +-10,000 years.
28
+ #
29
+ # # Examples
30
+ #
31
+ # Example 1: Compute Duration from two Timestamps in pseudo code.
32
+ #
33
+ # Timestamp start = ...;
34
+ # Timestamp end = ...;
35
+ # Duration duration = ...;
36
+ #
37
+ # duration.seconds = end.seconds - start.seconds;
38
+ # duration.nanos = end.nanos - start.nanos;
39
+ #
40
+ # if (duration.seconds < 0 && duration.nanos > 0) {
41
+ # duration.seconds += 1;
42
+ # duration.nanos -= 1000000000;
43
+ # } else if (duration.seconds > 0 && duration.nanos < 0) {
44
+ # duration.seconds -= 1;
45
+ # duration.nanos += 1000000000;
46
+ # }
47
+ #
48
+ # Example 2: Compute Timestamp from Timestamp + Duration in pseudo code.
49
+ #
50
+ # Timestamp start = ...;
51
+ # Duration duration = ...;
52
+ # Timestamp end = ...;
53
+ #
54
+ # end.seconds = start.seconds + duration.seconds;
55
+ # end.nanos = start.nanos + duration.nanos;
56
+ #
57
+ # if (end.nanos < 0) {
58
+ # end.seconds -= 1;
59
+ # end.nanos += 1000000000;
60
+ # } else if (end.nanos >= 1000000000) {
61
+ # end.seconds += 1;
62
+ # end.nanos -= 1000000000;
63
+ # }
64
+ #
65
+ # Example 3: Compute Duration from datetime.timedelta in Python.
66
+ #
67
+ # td = datetime.timedelta(days=3, minutes=10)
68
+ # duration = Duration()
69
+ # duration.FromTimedelta(td)
70
+ #
71
+ # # JSON Mapping
72
+ #
73
+ # In JSON format, the Duration type is encoded as a string rather than an
74
+ # object, where the string ends in the suffix "s" (indicating seconds) and
75
+ # is preceded by the number of seconds, with nanoseconds expressed as
76
+ # fractional seconds. For example, 3 seconds with 0 nanoseconds should be
77
+ # encoded in JSON format as "3s", while 3 seconds and 1 nanosecond should
78
+ # be expressed in JSON format as "3.000000001s", and 3 seconds and 1
79
+ # microsecond should be expressed in JSON format as "3.000001s".
80
+ # @!attribute [rw] seconds
81
+ # @return [::Integer]
82
+ # Signed seconds of the span of time. Must be from -315,576,000,000
83
+ # to +315,576,000,000 inclusive. Note: these bounds are computed from:
84
+ # 60 sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
85
+ # @!attribute [rw] nanos
86
+ # @return [::Integer]
87
+ # Signed fractions of a second at nanosecond resolution of the span
88
+ # of time. Durations less than one second are represented with a 0
89
+ # `seconds` field and a positive or negative `nanos` field. For durations
90
+ # of one second or more, a non-zero value for the `nanos` field must be
91
+ # of the same sign as the `seconds` field. Must be from -999,999,999
92
+ # to +999,999,999 inclusive.
93
+ class Duration
94
+ include ::Google::Protobuf::MessageExts
95
+ extend ::Google::Protobuf::MessageExts::ClassMethods
96
+ end
97
+ end
98
+ end
@@ -26,8 +26,6 @@ module Google
26
26
  # service Foo {
27
27
  # rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);
28
28
  # }
29
- #
30
- # The JSON representation for `Empty` is empty JSON object `{}`.
31
29
  class Empty
32
30
  include ::Google::Protobuf::MessageExts
33
31
  extend ::Google::Protobuf::MessageExts::ClassMethods
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-os_login-v1beta
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-07-07 00:00:00.000000000 Z
11
+ date: 2022-11-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gapic-common
@@ -16,7 +16,7 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0.10'
19
+ version: '0.12'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 2.a
@@ -26,7 +26,7 @@ dependencies:
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '0.10'
29
+ version: '0.12'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 2.a
@@ -182,10 +182,13 @@ files:
182
182
  - lib/google/cloud/oslogin/v1beta/oslogin_pb.rb
183
183
  - lib/google/cloud/oslogin/v1beta/oslogin_services_pb.rb
184
184
  - proto_docs/README.md
185
+ - proto_docs/google/api/client.rb
185
186
  - proto_docs/google/api/field_behavior.rb
187
+ - proto_docs/google/api/launch_stage.rb
186
188
  - proto_docs/google/api/resource.rb
187
189
  - proto_docs/google/cloud/oslogin/common/common.rb
188
190
  - proto_docs/google/cloud/oslogin/v1beta/oslogin.rb
191
+ - proto_docs/google/protobuf/duration.rb
189
192
  - proto_docs/google/protobuf/empty.rb
190
193
  - proto_docs/google/protobuf/field_mask.rb
191
194
  homepage: https://github.com/googleapis/google-cloud-ruby