google-cloud-os_login 0.7.0 → 1.0.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.
Files changed (32) hide show
  1. checksums.yaml +4 -4
  2. data/.yardopts +2 -1
  3. data/AUTHENTICATION.md +51 -54
  4. data/LICENSE.md +203 -0
  5. data/MIGRATING.md +277 -0
  6. data/README.md +36 -24
  7. data/lib/{google/cloud/os_login/v1/doc/google/protobuf/empty.rb → google-cloud-os_login.rb} +4 -14
  8. data/lib/google/cloud/os_login.rb +82 -117
  9. data/lib/google/cloud/os_login/version.rb +6 -2
  10. metadata +100 -59
  11. data/LICENSE +0 -201
  12. data/lib/google/cloud/os_login/v1.rb +0 -148
  13. data/lib/google/cloud/os_login/v1/credentials.rb +0 -42
  14. data/lib/google/cloud/os_login/v1/doc/google/cloud/oslogin/common/common.rb +0 -89
  15. data/lib/google/cloud/os_login/v1/doc/google/cloud/oslogin/v1/oslogin.rb +0 -103
  16. data/lib/google/cloud/os_login/v1/doc/google/protobuf/field_mask.rb +0 -222
  17. data/lib/google/cloud/os_login/v1/os_login_service_client.rb +0 -506
  18. data/lib/google/cloud/os_login/v1/os_login_service_client_config.json +0 -56
  19. data/lib/google/cloud/os_login/v1beta.rb +0 -148
  20. data/lib/google/cloud/os_login/v1beta/credentials.rb +0 -44
  21. data/lib/google/cloud/os_login/v1beta/doc/google/cloud/oslogin/common.rb +0 -67
  22. data/lib/google/cloud/os_login/v1beta/doc/google/cloud/oslogin/common/common.rb +0 -89
  23. data/lib/google/cloud/os_login/v1beta/doc/google/cloud/oslogin/v1beta/oslogin.rb +0 -103
  24. data/lib/google/cloud/os_login/v1beta/doc/google/protobuf/empty.rb +0 -29
  25. data/lib/google/cloud/os_login/v1beta/doc/google/protobuf/field_mask.rb +0 -222
  26. data/lib/google/cloud/os_login/v1beta/os_login_service_client.rb +0 -511
  27. data/lib/google/cloud/os_login/v1beta/os_login_service_client_config.json +0 -56
  28. data/lib/google/cloud/oslogin/common/common_pb.rb +0 -40
  29. data/lib/google/cloud/oslogin/v1/oslogin_pb.rb +0 -65
  30. data/lib/google/cloud/oslogin/v1/oslogin_services_pb.rb +0 -65
  31. data/lib/google/cloud/oslogin/v1beta/oslogin_pb.rb +0 -65
  32. data/lib/google/cloud/oslogin/v1beta/oslogin_services_pb.rb +0 -65
@@ -1,56 +0,0 @@
1
- {
2
- "interfaces": {
3
- "google.cloud.oslogin.v1.OsLoginService": {
4
- "retry_codes": {
5
- "idempotent": [
6
- "DEADLINE_EXCEEDED",
7
- "UNAVAILABLE"
8
- ],
9
- "non_idempotent": []
10
- },
11
- "retry_params": {
12
- "default": {
13
- "initial_retry_delay_millis": 100,
14
- "retry_delay_multiplier": 1.3,
15
- "max_retry_delay_millis": 60000,
16
- "initial_rpc_timeout_millis": 20000,
17
- "rpc_timeout_multiplier": 1.0,
18
- "max_rpc_timeout_millis": 20000,
19
- "total_timeout_millis": 600000
20
- }
21
- },
22
- "methods": {
23
- "DeletePosixAccount": {
24
- "timeout_millis": 60000,
25
- "retry_codes_name": "non_idempotent",
26
- "retry_params_name": "default"
27
- },
28
- "DeleteSshPublicKey": {
29
- "timeout_millis": 60000,
30
- "retry_codes_name": "non_idempotent",
31
- "retry_params_name": "default"
32
- },
33
- "GetLoginProfile": {
34
- "timeout_millis": 60000,
35
- "retry_codes_name": "idempotent",
36
- "retry_params_name": "default"
37
- },
38
- "GetSshPublicKey": {
39
- "timeout_millis": 60000,
40
- "retry_codes_name": "idempotent",
41
- "retry_params_name": "default"
42
- },
43
- "ImportSshPublicKey": {
44
- "timeout_millis": 60000,
45
- "retry_codes_name": "non_idempotent",
46
- "retry_params_name": "default"
47
- },
48
- "UpdateSshPublicKey": {
49
- "timeout_millis": 60000,
50
- "retry_codes_name": "non_idempotent",
51
- "retry_params_name": "default"
52
- }
53
- }
54
- }
55
- }
56
- }
@@ -1,148 +0,0 @@
1
- # Copyright 2020 Google LLC
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
- # https://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
-
16
- require "google/cloud/os_login/v1beta/os_login_service_client"
17
-
18
- module Google
19
- module Cloud
20
- module OsLogin
21
- # rubocop:disable LineLength
22
-
23
- ##
24
- # # Ruby Client for Google Cloud OS Login API
25
- #
26
- # [Google Cloud OS Login API][Product Documentation]:
27
- # Manages OS login configuration for Google account users.
28
- # - [Product Documentation][]
29
- #
30
- # ## Quick Start
31
- # In order to use this library, you first need to go through the following
32
- # steps:
33
- #
34
- # 1. [Select or create a Cloud Platform project.](https://console.cloud.google.com/project)
35
- # 2. [Enable billing for your project.](https://cloud.google.com/billing/docs/how-to/modify-project#enable_billing_for_a_project)
36
- # 3. [Enable the Google Cloud OS Login API.](https://console.cloud.google.com/apis/library/oslogin.googleapis.com)
37
- # 4. [Setup Authentication.](https://googleapis.dev/ruby/google-cloud-os_login/latest/file.AUTHENTICATION.html)
38
- #
39
- # ### Installation
40
- # ```
41
- # $ gem install google-cloud-os_login
42
- # ```
43
- #
44
- # ### Next Steps
45
- # - Read the [Google Cloud OS Login API Product documentation][Product Documentation]
46
- # to learn more about the product and see How-to Guides.
47
- # - View this [repository's main README](https://github.com/googleapis/google-cloud-ruby/blob/master/README.md)
48
- # to see the full list of Cloud APIs that we cover.
49
- #
50
- # [Product Documentation]: https://cloud.google.com/compute/docs/oslogin/rest/
51
- #
52
- # ## Enabling Logging
53
- #
54
- # To enable logging for this library, set the logger for the underlying [gRPC](https://github.com/grpc/grpc/tree/master/src/ruby) library.
55
- # The logger that you set may be a Ruby stdlib [`Logger`](https://ruby-doc.org/stdlib-2.5.0/libdoc/logger/rdoc/Logger.html) as shown below,
56
- # or a [`Google::Cloud::Logging::Logger`](https://googleapis.dev/ruby/google-cloud-logging/latest)
57
- # that will write logs to [Stackdriver Logging](https://cloud.google.com/logging/). See [grpc/logconfig.rb](https://github.com/grpc/grpc/blob/master/src/ruby/lib/grpc/logconfig.rb)
58
- # and the gRPC [spec_helper.rb](https://github.com/grpc/grpc/blob/master/src/ruby/spec/spec_helper.rb) for additional information.
59
- #
60
- # Configuring a Ruby stdlib logger:
61
- #
62
- # ```ruby
63
- # require "logger"
64
- #
65
- # module MyLogger
66
- # LOGGER = Logger.new $stderr, level: Logger::WARN
67
- # def logger
68
- # LOGGER
69
- # end
70
- # end
71
- #
72
- # # Define a gRPC module-level logger method before grpc/logconfig.rb loads.
73
- # module GRPC
74
- # extend MyLogger
75
- # end
76
- # ```
77
- #
78
- module V1beta
79
- # rubocop:enable LineLength
80
-
81
- ##
82
- # Cloud OS Login API
83
- #
84
- # The Cloud OS Login API allows you to manage users and their associated SSH
85
- # public keys for logging into virtual machines on Google Cloud Platform.
86
- #
87
- # @param credentials [Google::Auth::Credentials, String, Hash, GRPC::Core::Channel, GRPC::Core::ChannelCredentials, Proc]
88
- # Provides the means for authenticating requests made by the client. This parameter can
89
- # be many types.
90
- # A `Google::Auth::Credentials` uses a the properties of its represented keyfile for
91
- # authenticating requests made by this client.
92
- # A `String` will be treated as the path to the keyfile to be used for the construction of
93
- # credentials for this client.
94
- # A `Hash` will be treated as the contents of a keyfile to be used for the construction of
95
- # credentials for this client.
96
- # A `GRPC::Core::Channel` will be used to make calls through.
97
- # A `GRPC::Core::ChannelCredentials` for the setting up the RPC client. The channel credentials
98
- # should already be composed with a `GRPC::Core::CallCredentials` object.
99
- # A `Proc` will be used as an updater_proc for the Grpc channel. The proc transforms the
100
- # metadata for requests, generally, to give OAuth credentials.
101
- # @param scopes [Array<String>]
102
- # The OAuth scopes for this service. This parameter is ignored if
103
- # an updater_proc is supplied.
104
- # @param client_config [Hash]
105
- # A Hash for call options for each method. See
106
- # Google::Gax#construct_settings for the structure of
107
- # this data. Falls back to the default config if not specified
108
- # or the specified config is missing data points.
109
- # @param timeout [Numeric]
110
- # The default timeout, in seconds, for calls made through this client.
111
- # @param metadata [Hash]
112
- # Default metadata to be sent with each request. This can be overridden on a per call basis.
113
- # @param service_address [String]
114
- # Override for the service hostname, or `nil` to leave as the default.
115
- # @param service_port [Integer]
116
- # Override for the service port, or `nil` to leave as the default.
117
- # @param exception_transformer [Proc]
118
- # An optional proc that intercepts any exceptions raised during an API call to inject
119
- # custom error handling.
120
- def self.new \
121
- credentials: nil,
122
- scopes: nil,
123
- client_config: nil,
124
- timeout: nil,
125
- metadata: nil,
126
- service_address: nil,
127
- service_port: nil,
128
- exception_transformer: nil,
129
- lib_name: nil,
130
- lib_version: nil
131
- kwargs = {
132
- credentials: credentials,
133
- scopes: scopes,
134
- client_config: client_config,
135
- timeout: timeout,
136
- metadata: metadata,
137
- exception_transformer: exception_transformer,
138
- lib_name: lib_name,
139
- service_address: service_address,
140
- service_port: service_port,
141
- lib_version: lib_version
142
- }.select { |_, v| v != nil }
143
- Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.new(**kwargs)
144
- end
145
- end
146
- end
147
- end
148
- end
@@ -1,44 +0,0 @@
1
- # Copyright 2020 Google LLC
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
- # https://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
-
16
- require "googleauth"
17
-
18
- module Google
19
- module Cloud
20
- module OsLogin
21
- module V1beta
22
- class Credentials < Google::Auth::Credentials
23
- SCOPE = [
24
- "https://www.googleapis.com/auth/cloud-platform",
25
- "https://www.googleapis.com/auth/cloud-platform.read-only",
26
- "https://www.googleapis.com/auth/compute",
27
- "https://www.googleapis.com/auth/compute.readonly"
28
- ].freeze
29
- PATH_ENV_VARS = %w(OS_LOGIN_CREDENTIALS
30
- OS_LOGIN_KEYFILE
31
- GOOGLE_CLOUD_CREDENTIALS
32
- GOOGLE_CLOUD_KEYFILE
33
- GCLOUD_KEYFILE)
34
- JSON_ENV_VARS = %w(OS_LOGIN_CREDENTIALS_JSON
35
- OS_LOGIN_KEYFILE_JSON
36
- GOOGLE_CLOUD_CREDENTIALS_JSON
37
- GOOGLE_CLOUD_KEYFILE_JSON
38
- GCLOUD_KEYFILE_JSON)
39
- DEFAULT_PATHS = ["~/.config/gcloud/application_default_credentials.json"]
40
- end
41
- end
42
- end
43
- end
44
- end
@@ -1,67 +0,0 @@
1
- # Copyright 2017 Google LLC
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
- # https://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
-
16
- module Google
17
- module Cloud
18
- module OsLogin
19
- module Common
20
- # The POSIX account information associated with a Google account.
21
- # @!attribute [rw] primary
22
- # @return [true, false]
23
- # Only one POSIX account can be marked as primary.
24
- # @!attribute [rw] username
25
- # @return [String]
26
- # The username of the POSIX account.
27
- # @!attribute [rw] uid
28
- # @return [Integer]
29
- # The user ID.
30
- # @!attribute [rw] gid
31
- # @return [Integer]
32
- # The default group ID.
33
- # @!attribute [rw] home_directory
34
- # @return [String]
35
- # The path to the home directory for this account.
36
- # @!attribute [rw] shell
37
- # @return [String]
38
- # The path to the logic shell for this account.
39
- # @!attribute [rw] gecos
40
- # @return [String]
41
- # The GECOS (user information) entry for this account.
42
- # @!attribute [rw] system_id
43
- # @return [String]
44
- # System identifier for which account the username or uid applies to.
45
- # By default, the empty value is used.
46
- # @!attribute [rw] account_id
47
- # @return [String]
48
- # Output only. A POSIX account identifier.
49
- class PosixAccount; end
50
-
51
- # The SSH public key information associated with a Google account.
52
- # @!attribute [rw] key
53
- # @return [String]
54
- # Public key text in SSH format, defined by
55
- # <a href="https://www.ietf.org/rfc/rfc4253.txt" target="_blank">RFC4253</a>
56
- # section 6.6.
57
- # @!attribute [rw] expiration_time_usec
58
- # @return [Integer]
59
- # An expiration time in microseconds since epoch.
60
- # @!attribute [rw] fingerprint
61
- # @return [String]
62
- # Output only. The SHA-256 fingerprint of the SSH public key.
63
- class SshPublicKey; end
64
- end
65
- end
66
- end
67
- end
@@ -1,89 +0,0 @@
1
- # Copyright 2020 Google LLC
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
- # https://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
-
16
- module Google
17
- module Cloud
18
- module OsLogin
19
- module Common
20
- # The POSIX account information associated with a Google account.
21
- # @!attribute [rw] primary
22
- # @return [true, false]
23
- # Only one POSIX account can be marked as primary.
24
- # @!attribute [rw] username
25
- # @return [String]
26
- # The username of the POSIX account.
27
- # @!attribute [rw] uid
28
- # @return [Integer]
29
- # The user ID.
30
- # @!attribute [rw] gid
31
- # @return [Integer]
32
- # The default group ID.
33
- # @!attribute [rw] home_directory
34
- # @return [String]
35
- # The path to the home directory for this account.
36
- # @!attribute [rw] shell
37
- # @return [String]
38
- # The path to the logic shell for this account.
39
- # @!attribute [rw] gecos
40
- # @return [String]
41
- # The GECOS (user information) entry for this account.
42
- # @!attribute [rw] system_id
43
- # @return [String]
44
- # System identifier for which account the username or uid applies to.
45
- # By default, the empty value is used.
46
- # @!attribute [rw] account_id
47
- # @return [String]
48
- # Output only. A POSIX account identifier.
49
- # @!attribute [rw] operating_system_type
50
- # @return [Google::Cloud::OsLogin::Common::OperatingSystemType]
51
- # The operating system type where this account applies.
52
- # @!attribute [rw] name
53
- # @return [String]
54
- # Output only. The canonical resource name.
55
- class PosixAccount; end
56
-
57
- # The SSH public key information associated with a Google account.
58
- # @!attribute [rw] key
59
- # @return [String]
60
- # Public key text in SSH format, defined by
61
- # <a href="https://www.ietf.org/rfc/rfc4253.txt" target="_blank">RFC4253</a>
62
- # section 6.6.
63
- # @!attribute [rw] expiration_time_usec
64
- # @return [Integer]
65
- # An expiration time in microseconds since epoch.
66
- # @!attribute [rw] fingerprint
67
- # @return [String]
68
- # Output only. The SHA-256 fingerprint of the SSH public key.
69
- # @!attribute [rw] name
70
- # @return [String]
71
- # Output only. The canonical resource name.
72
- class SshPublicKey; end
73
-
74
- # The operating system options for account entries.
75
- module OperatingSystemType
76
- # The operating system type associated with the user account information is
77
- # unspecified.
78
- OPERATING_SYSTEM_TYPE_UNSPECIFIED = 0
79
-
80
- # Linux user account information.
81
- LINUX = 1
82
-
83
- # Windows user account information.
84
- WINDOWS = 2
85
- end
86
- end
87
- end
88
- end
89
- end
@@ -1,103 +0,0 @@
1
- # Copyright 2020 Google LLC
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
- # https://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
-
16
- module Google
17
- module Cloud
18
- module OsLogin
19
- module V1beta
20
- # The user profile information used for logging in to a virtual machine on
21
- # Google Compute Engine.
22
- # @!attribute [rw] name
23
- # @return [String]
24
- # Required. A unique user ID.
25
- # @!attribute [rw] posix_accounts
26
- # @return [Array<Google::Cloud::OsLogin::Common::PosixAccount>]
27
- # The list of POSIX accounts associated with the user.
28
- # @!attribute [rw] ssh_public_keys
29
- # @return [Hash{String => Google::Cloud::OsLogin::Common::SshPublicKey}]
30
- # A map from SSH public key fingerprint to the associated key object.
31
- class LoginProfile; end
32
-
33
- # A request message for deleting a POSIX account entry.
34
- # @!attribute [rw] name
35
- # @return [String]
36
- # Required. A reference to the POSIX account to update. POSIX accounts are identified
37
- # by the project ID they are associated with. A reference to the POSIX
38
- # account is in format `users/{user}/projects/{project}`.
39
- class DeletePosixAccountRequest; end
40
-
41
- # A request message for deleting an SSH public key.
42
- # @!attribute [rw] name
43
- # @return [String]
44
- # Required. The fingerprint of the public key to update. Public keys are identified by
45
- # their SHA-256 fingerprint. The fingerprint of the public key is in format
46
- # `users/{user}/sshPublicKeys/{fingerprint}`.
47
- class DeleteSshPublicKeyRequest; end
48
-
49
- # A request message for retrieving the login profile information for a user.
50
- # @!attribute [rw] name
51
- # @return [String]
52
- # Required. The unique ID for the user in format `users/{user}`.
53
- # @!attribute [rw] project_id
54
- # @return [String]
55
- # The project ID of the Google Cloud Platform project.
56
- # @!attribute [rw] system_id
57
- # @return [String]
58
- # A system ID for filtering the results of the request.
59
- class GetLoginProfileRequest; end
60
-
61
- # A request message for retrieving an SSH public key.
62
- # @!attribute [rw] name
63
- # @return [String]
64
- # Required. The fingerprint of the public key to retrieve. Public keys are identified
65
- # by their SHA-256 fingerprint. The fingerprint of the public key is in
66
- # format `users/{user}/sshPublicKeys/{fingerprint}`.
67
- class GetSshPublicKeyRequest; end
68
-
69
- # A request message for importing an SSH public key.
70
- # @!attribute [rw] parent
71
- # @return [String]
72
- # The unique ID for the user in format `users/{user}`.
73
- # @!attribute [rw] ssh_public_key
74
- # @return [Google::Cloud::OsLogin::Common::SshPublicKey]
75
- # Required. The SSH public key and expiration time.
76
- # @!attribute [rw] project_id
77
- # @return [String]
78
- # The project ID of the Google Cloud Platform project.
79
- class ImportSshPublicKeyRequest; end
80
-
81
- # A response message for importing an SSH public key.
82
- # @!attribute [rw] login_profile
83
- # @return [Google::Cloud::OsLogin::V1beta::LoginProfile]
84
- # The login profile information for the user.
85
- class ImportSshPublicKeyResponse; end
86
-
87
- # A request message for updating an SSH public key.
88
- # @!attribute [rw] name
89
- # @return [String]
90
- # Required. The fingerprint of the public key to update. Public keys are identified by
91
- # their SHA-256 fingerprint. The fingerprint of the public key is in format
92
- # `users/{user}/sshPublicKeys/{fingerprint}`.
93
- # @!attribute [rw] ssh_public_key
94
- # @return [Google::Cloud::OsLogin::Common::SshPublicKey]
95
- # Required. The SSH public key and expiration time.
96
- # @!attribute [rw] update_mask
97
- # @return [Google::Protobuf::FieldMask]
98
- # Mask to control which fields get updated. Updates all if not present.
99
- class UpdateSshPublicKeyRequest; end
100
- end
101
- end
102
- end
103
- end