google-cloud-os_login 0.2.3 → 0.2.4
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 +4 -4
- data/.yardopts +2 -0
- data/AUTHENTICATION.md +199 -0
- data/lib/google/cloud/os_login.rb +1 -1
- data/lib/google/cloud/os_login/v1.rb +1 -1
- data/lib/google/cloud/os_login/v1/credentials.rb +1 -1
- data/lib/google/cloud/os_login/v1/doc/google/cloud/oslogin/common/common.rb +1 -1
- data/lib/google/cloud/os_login/v1/doc/google/cloud/oslogin/v1/oslogin.rb +1 -1
- data/lib/google/cloud/os_login/v1/doc/google/protobuf/empty.rb +1 -1
- data/lib/google/cloud/os_login/v1/doc/google/protobuf/field_mask.rb +19 -27
- data/lib/google/cloud/os_login/v1/os_login_service_client.rb +53 -35
- data/lib/google/cloud/os_login/v1beta.rb +1 -1
- data/lib/google/cloud/os_login/v1beta/credentials.rb +1 -1
- data/lib/google/cloud/os_login/v1beta/doc/google/cloud/oslogin/common/common.rb +1 -1
- data/lib/google/cloud/os_login/v1beta/doc/google/cloud/oslogin/v1beta/oslogin.rb +1 -1
- data/lib/google/cloud/os_login/v1beta/doc/google/protobuf/empty.rb +1 -1
- data/lib/google/cloud/os_login/v1beta/doc/google/protobuf/field_mask.rb +19 -27
- data/lib/google/cloud/os_login/v1beta/os_login_service_client.rb +53 -35
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '00835896ab7d149057548174a28a78b1216ed852bb3f845e50ab15baa731e590'
|
4
|
+
data.tar.gz: a64bc7e03995876c70e71835febf619b08dda3d2e8cc9b8e2b60f74d2f9ce149
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e34a7f48b5f4a2d6757ca9a04514408cc75191710c45e5b1964eda801a0a9c03645a573d7e2695bed2d3f787ff6294d3d38d286fe3039c0822823279570ed7f0
|
7
|
+
data.tar.gz: 7631ec87db2f67152f801e73e6b1e0f3fd804c2b50f039df8c8a45e6e4a0d8bb39b8c72b2f4987dfec83fec92c349acde8b301b42705a23bbac22986d8835578
|
data/.yardopts
CHANGED
data/AUTHENTICATION.md
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
# Authentication
|
2
|
+
|
3
|
+
In general, the google-cloud-os_login library uses [Service
|
4
|
+
Account](https://cloud.google.com/iam/docs/creating-managing-service-accounts)
|
5
|
+
credentials to connect to Google Cloud services. When running within [Google
|
6
|
+
Cloud Platform environments](#google-cloud-platform-environments)
|
7
|
+
the credentials will be discovered automatically. When running on other
|
8
|
+
environments, the Service Account credentials can be specified by providing the
|
9
|
+
path to the [JSON
|
10
|
+
keyfile](https://cloud.google.com/iam/docs/managing-service-account-keys) for
|
11
|
+
the account (or the JSON itself) in [environment
|
12
|
+
variables](#environment-variables). Additionally, Cloud SDK credentials can also
|
13
|
+
be discovered automatically, but this is only recommended during development.
|
14
|
+
|
15
|
+
## Quickstart
|
16
|
+
|
17
|
+
1. [Create a service account and credentials](#creating-a-service-account).
|
18
|
+
2. Set the [environment variable](#environment-variables).
|
19
|
+
|
20
|
+
```sh
|
21
|
+
export OS_LOGIN_CREDENTIALS=/path/to/json`
|
22
|
+
```
|
23
|
+
|
24
|
+
3. Initialize the client.
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
require "google/cloud/os_login"
|
28
|
+
|
29
|
+
client = Google::Cloud::OsLogin.new
|
30
|
+
```
|
31
|
+
|
32
|
+
## Project and Credential Lookup
|
33
|
+
|
34
|
+
The google-cloud-os_login library aims to make authentication
|
35
|
+
as simple as possible, and provides several mechanisms to configure your system
|
36
|
+
without providing **Project ID** and **Service Account Credentials** directly in
|
37
|
+
code.
|
38
|
+
|
39
|
+
**Project ID** is discovered in the following order:
|
40
|
+
|
41
|
+
1. Specify project ID in method arguments
|
42
|
+
2. Specify project ID in configuration
|
43
|
+
3. Discover project ID in environment variables
|
44
|
+
4. Discover GCE project ID
|
45
|
+
5. Discover project ID in credentials JSON
|
46
|
+
|
47
|
+
**Credentials** are discovered in the following order:
|
48
|
+
|
49
|
+
1. Specify credentials in method arguments
|
50
|
+
2. Specify credentials in configuration
|
51
|
+
3. Discover credentials path in environment variables
|
52
|
+
4. Discover credentials JSON in environment variables
|
53
|
+
5. Discover credentials file in the Cloud SDK's path
|
54
|
+
6. Discover GCE credentials
|
55
|
+
|
56
|
+
### Google Cloud Platform environments
|
57
|
+
|
58
|
+
While running on Google Cloud Platform environments such as Google Compute
|
59
|
+
Engine, Google App Engine and Google Kubernetes Engine, no extra work is needed.
|
60
|
+
The **Project ID** and **Credentials** and are discovered automatically. Code
|
61
|
+
should be written as if already authenticated. Just be sure when you [set up the
|
62
|
+
GCE instance][gce-how-to], you add the correct scopes for the APIs you want to
|
63
|
+
access. For example:
|
64
|
+
|
65
|
+
* **All APIs**
|
66
|
+
* `https://www.googleapis.com/auth/cloud-platform`
|
67
|
+
* `https://www.googleapis.com/auth/cloud-platform.read-only`
|
68
|
+
* **BigQuery**
|
69
|
+
* `https://www.googleapis.com/auth/bigquery`
|
70
|
+
* `https://www.googleapis.com/auth/bigquery.insertdata`
|
71
|
+
* **Compute Engine**
|
72
|
+
* `https://www.googleapis.com/auth/compute`
|
73
|
+
* **Datastore**
|
74
|
+
* `https://www.googleapis.com/auth/datastore`
|
75
|
+
* `https://www.googleapis.com/auth/userinfo.email`
|
76
|
+
* **DNS**
|
77
|
+
* `https://www.googleapis.com/auth/ndev.clouddns.readwrite`
|
78
|
+
* **Pub/Sub**
|
79
|
+
* `https://www.googleapis.com/auth/pubsub`
|
80
|
+
* **Storage**
|
81
|
+
* `https://www.googleapis.com/auth/devstorage.full_control`
|
82
|
+
* `https://www.googleapis.com/auth/devstorage.read_only`
|
83
|
+
* `https://www.googleapis.com/auth/devstorage.read_write`
|
84
|
+
|
85
|
+
### Environment Variables
|
86
|
+
|
87
|
+
The **Project ID** and **Credentials JSON** can be placed in environment
|
88
|
+
variables instead of declaring them directly in code. Each service has its own
|
89
|
+
environment variable, allowing for different service accounts to be used for
|
90
|
+
different services. (See the READMEs for the individual service gems for
|
91
|
+
details.) The path to the **Credentials JSON** file can be stored in the
|
92
|
+
environment variable, or the **Credentials JSON** itself can be stored for
|
93
|
+
environments such as Docker containers where writing files is difficult or not
|
94
|
+
encouraged.
|
95
|
+
|
96
|
+
The environment variables that google-cloud-os_login checks for project ID are:
|
97
|
+
|
98
|
+
1. `OS_LOGIN_PROJECT`
|
99
|
+
2. `GOOGLE_CLOUD_PROJECT`
|
100
|
+
|
101
|
+
The environment variables that google-cloud-os_login checks for credentials are configured on {Google::Cloud::OsLogin::V1::Credentials}:
|
102
|
+
|
103
|
+
1. `OS_LOGIN_CREDENTIALS` - Path to JSON file, or JSON contents
|
104
|
+
2. `OS_LOGIN_KEYFILE` - Path to JSON file, or JSON contents
|
105
|
+
3. `GOOGLE_CLOUD_CREDENTIALS` - Path to JSON file, or JSON contents
|
106
|
+
4. `GOOGLE_CLOUD_KEYFILE` - Path to JSON file, or JSON contents
|
107
|
+
5. `GOOGLE_APPLICATION_CREDENTIALS` - Path to JSON file
|
108
|
+
|
109
|
+
```ruby
|
110
|
+
require "google/cloud/os_login"
|
111
|
+
|
112
|
+
ENV["OS_LOGIN_PROJECT"] = "my-project-id"
|
113
|
+
ENV["OS_LOGIN_CREDENTIALS"] = "path/to/keyfile.json"
|
114
|
+
|
115
|
+
client = Google::Cloud::OsLogin.new
|
116
|
+
```
|
117
|
+
|
118
|
+
### Configuration
|
119
|
+
|
120
|
+
The **Project ID** and **Credentials JSON** can be configured instead of placing them in environment variables or providing them as arguments.
|
121
|
+
|
122
|
+
```ruby
|
123
|
+
require "google/cloud/os_login"
|
124
|
+
|
125
|
+
Google::Cloud::OsLogin.configure do |config|
|
126
|
+
config.project_id = "my-project-id"
|
127
|
+
config.credentials = "path/to/keyfile.json"
|
128
|
+
end
|
129
|
+
|
130
|
+
client = Google::Cloud::OsLogin.new
|
131
|
+
```
|
132
|
+
|
133
|
+
### Cloud SDK
|
134
|
+
|
135
|
+
This option allows for an easy way to authenticate during development. If
|
136
|
+
credentials are not provided in code or in environment variables, then Cloud SDK
|
137
|
+
credentials are discovered.
|
138
|
+
|
139
|
+
To configure your system for this, simply:
|
140
|
+
|
141
|
+
1. [Download and install the Cloud SDK](https://cloud.google.com/sdk)
|
142
|
+
2. Authenticate using OAuth 2.0 `$ gcloud auth login`
|
143
|
+
3. Write code as if already authenticated.
|
144
|
+
|
145
|
+
**NOTE:** This is _not_ recommended for running in production. The Cloud SDK
|
146
|
+
*should* only be used during development.
|
147
|
+
|
148
|
+
[gce-how-to]: https://cloud.google.com/compute/docs/authentication#using
|
149
|
+
[dev-console]: https://console.cloud.google.com/project
|
150
|
+
|
151
|
+
[enable-apis]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/enable-apis.png
|
152
|
+
|
153
|
+
[create-new-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account.png
|
154
|
+
[create-new-service-account-existing-keys]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/create-new-service-account-existing-keys.png
|
155
|
+
[reuse-service-account]: https://raw.githubusercontent.com/GoogleCloudPlatform/gcloud-common/master/authentication/reuse-service-account.png
|
156
|
+
|
157
|
+
## Creating a Service Account
|
158
|
+
|
159
|
+
Google Cloud requires a **Project ID** and **Service Account Credentials** to
|
160
|
+
connect to the APIs. You will use the **Project ID** and **JSON key file** to
|
161
|
+
connect to most services with google-cloud-os_login.
|
162
|
+
|
163
|
+
If you are not running this client within [Google Cloud Platform
|
164
|
+
environments](#google-cloud-platform-environments), you need a Google
|
165
|
+
Developers service account.
|
166
|
+
|
167
|
+
1. Visit the [Google Developers Console][dev-console].
|
168
|
+
1. Create a new project or click on an existing project.
|
169
|
+
1. Activate the slide-out navigation tray and select **API Manager**. From
|
170
|
+
here, you will enable the APIs that your application requires.
|
171
|
+
|
172
|
+
![Enable the APIs that your application requires][enable-apis]
|
173
|
+
|
174
|
+
*Note: You may need to enable billing in order to use these services.*
|
175
|
+
|
176
|
+
1. Select **Credentials** from the side navigation.
|
177
|
+
|
178
|
+
You should see a screen like one of the following.
|
179
|
+
|
180
|
+
![Create a new service account][create-new-service-account]
|
181
|
+
|
182
|
+
![Create a new service account With Existing Keys][create-new-service-account-existing-keys]
|
183
|
+
|
184
|
+
Find the "Add credentials" drop down and select "Service account" to be
|
185
|
+
guided through downloading a new JSON key file.
|
186
|
+
|
187
|
+
If you want to re-use an existing service account, you can easily generate a
|
188
|
+
new key file. Just select the account you wish to re-use, and click "Generate
|
189
|
+
new JSON key":
|
190
|
+
|
191
|
+
![Re-use an existing service account][reuse-service-account]
|
192
|
+
|
193
|
+
The key file you download will be used by this library to authenticate API
|
194
|
+
requests and should be stored in a secure location.
|
195
|
+
|
196
|
+
## Troubleshooting
|
197
|
+
|
198
|
+
If you're having trouble authenticating you can ask for help by following the
|
199
|
+
{file:TROUBLESHOOTING.md Troubleshooting Guide}.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2019 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -83,57 +83,49 @@ module Google
|
|
83
83
|
# describe the updated values, the API ignores the values of all
|
84
84
|
# fields not covered by the mask.
|
85
85
|
#
|
86
|
-
# If a repeated field is specified for an update operation,
|
87
|
-
#
|
88
|
-
#
|
89
|
-
# string.
|
86
|
+
# If a repeated field is specified for an update operation, new values will
|
87
|
+
# be appended to the existing repeated field in the target resource. Note that
|
88
|
+
# a repeated field is only allowed in the last position of a `paths` string.
|
90
89
|
#
|
91
90
|
# If a sub-message is specified in the last position of the field mask for an
|
92
|
-
# update operation, then the existing sub-message
|
93
|
-
#
|
91
|
+
# update operation, then new value will be merged into the existing sub-message
|
92
|
+
# in the target resource.
|
93
|
+
#
|
94
|
+
# For example, given the target message:
|
94
95
|
#
|
95
96
|
# f {
|
96
97
|
# b {
|
97
|
-
# d
|
98
|
-
# x
|
98
|
+
# d: 1
|
99
|
+
# x: 2
|
99
100
|
# }
|
100
|
-
# c
|
101
|
+
# c: [1]
|
101
102
|
# }
|
102
103
|
#
|
103
104
|
# And an update message:
|
104
105
|
#
|
105
106
|
# f {
|
106
107
|
# b {
|
107
|
-
# d
|
108
|
+
# d: 10
|
108
109
|
# }
|
110
|
+
# c: [2]
|
109
111
|
# }
|
110
112
|
#
|
111
113
|
# then if the field mask is:
|
112
114
|
#
|
113
|
-
# paths: "f.b"
|
115
|
+
# paths: ["f.b", "f.c"]
|
114
116
|
#
|
115
117
|
# then the result will be:
|
116
118
|
#
|
117
119
|
# f {
|
118
120
|
# b {
|
119
|
-
# d
|
121
|
+
# d: 10
|
122
|
+
# x: 2
|
120
123
|
# }
|
121
|
-
# c
|
124
|
+
# c: [1, 2]
|
122
125
|
# }
|
123
126
|
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
# paths: "f.b.d"
|
127
|
-
#
|
128
|
-
# then the result would be:
|
129
|
-
#
|
130
|
-
# f {
|
131
|
-
# b {
|
132
|
-
# d : 10
|
133
|
-
# x : 2
|
134
|
-
# }
|
135
|
-
# c : 1
|
136
|
-
# }
|
127
|
+
# An implementation may provide options to override this default behavior for
|
128
|
+
# repeated and message fields.
|
137
129
|
#
|
138
130
|
# In order to reset a field's value to the default, the field must
|
139
131
|
# be in the mask and set to the default value in the provided resource.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2019 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -64,11 +64,11 @@ module Google
|
|
64
64
|
].freeze
|
65
65
|
|
66
66
|
|
67
|
-
|
68
|
-
"users/{user}"
|
67
|
+
FINGERPRINT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
68
|
+
"users/{user}/sshPublicKeys/{fingerprint}"
|
69
69
|
)
|
70
70
|
|
71
|
-
private_constant :
|
71
|
+
private_constant :FINGERPRINT_PATH_TEMPLATE
|
72
72
|
|
73
73
|
PROJECT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
74
74
|
"users/{user}/projects/{project}"
|
@@ -76,18 +76,20 @@ module Google
|
|
76
76
|
|
77
77
|
private_constant :PROJECT_PATH_TEMPLATE
|
78
78
|
|
79
|
-
|
80
|
-
"users/{user}
|
79
|
+
USER_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
80
|
+
"users/{user}"
|
81
81
|
)
|
82
82
|
|
83
|
-
private_constant :
|
83
|
+
private_constant :USER_PATH_TEMPLATE
|
84
84
|
|
85
|
-
# Returns a fully-qualified
|
85
|
+
# Returns a fully-qualified fingerprint resource name string.
|
86
86
|
# @param user [String]
|
87
|
+
# @param fingerprint [String]
|
87
88
|
# @return [String]
|
88
|
-
def self.
|
89
|
-
|
90
|
-
:"user" => user
|
89
|
+
def self.fingerprint_path user, fingerprint
|
90
|
+
FINGERPRINT_PATH_TEMPLATE.render(
|
91
|
+
:"user" => user,
|
92
|
+
:"fingerprint" => fingerprint
|
91
93
|
)
|
92
94
|
end
|
93
95
|
|
@@ -102,14 +104,12 @@ module Google
|
|
102
104
|
)
|
103
105
|
end
|
104
106
|
|
105
|
-
# Returns a fully-qualified
|
107
|
+
# Returns a fully-qualified user resource name string.
|
106
108
|
# @param user [String]
|
107
|
-
# @param fingerprint [String]
|
108
109
|
# @return [String]
|
109
|
-
def self.
|
110
|
-
|
111
|
-
:"user" => user
|
112
|
-
:"fingerprint" => fingerprint
|
110
|
+
def self.user_path user
|
111
|
+
USER_PATH_TEMPLATE.render(
|
112
|
+
:"user" => user
|
113
113
|
)
|
114
114
|
end
|
115
115
|
|
@@ -218,32 +218,50 @@ module Google
|
|
218
218
|
@delete_posix_account = Google::Gax.create_api_call(
|
219
219
|
@os_login_service_stub.method(:delete_posix_account),
|
220
220
|
defaults["delete_posix_account"],
|
221
|
-
exception_transformer: exception_transformer
|
221
|
+
exception_transformer: exception_transformer,
|
222
|
+
params_extractor: proc do |request|
|
223
|
+
{'name' => request.name}
|
224
|
+
end
|
222
225
|
)
|
223
226
|
@delete_ssh_public_key = Google::Gax.create_api_call(
|
224
227
|
@os_login_service_stub.method(:delete_ssh_public_key),
|
225
228
|
defaults["delete_ssh_public_key"],
|
226
|
-
exception_transformer: exception_transformer
|
229
|
+
exception_transformer: exception_transformer,
|
230
|
+
params_extractor: proc do |request|
|
231
|
+
{'name' => request.name}
|
232
|
+
end
|
227
233
|
)
|
228
234
|
@get_login_profile = Google::Gax.create_api_call(
|
229
235
|
@os_login_service_stub.method(:get_login_profile),
|
230
236
|
defaults["get_login_profile"],
|
231
|
-
exception_transformer: exception_transformer
|
237
|
+
exception_transformer: exception_transformer,
|
238
|
+
params_extractor: proc do |request|
|
239
|
+
{'name' => request.name}
|
240
|
+
end
|
232
241
|
)
|
233
242
|
@get_ssh_public_key = Google::Gax.create_api_call(
|
234
243
|
@os_login_service_stub.method(:get_ssh_public_key),
|
235
244
|
defaults["get_ssh_public_key"],
|
236
|
-
exception_transformer: exception_transformer
|
245
|
+
exception_transformer: exception_transformer,
|
246
|
+
params_extractor: proc do |request|
|
247
|
+
{'name' => request.name}
|
248
|
+
end
|
237
249
|
)
|
238
250
|
@import_ssh_public_key = Google::Gax.create_api_call(
|
239
251
|
@os_login_service_stub.method(:import_ssh_public_key),
|
240
252
|
defaults["import_ssh_public_key"],
|
241
|
-
exception_transformer: exception_transformer
|
253
|
+
exception_transformer: exception_transformer,
|
254
|
+
params_extractor: proc do |request|
|
255
|
+
{'parent' => request.parent}
|
256
|
+
end
|
242
257
|
)
|
243
258
|
@update_ssh_public_key = Google::Gax.create_api_call(
|
244
259
|
@os_login_service_stub.method(:update_ssh_public_key),
|
245
260
|
defaults["update_ssh_public_key"],
|
246
|
-
exception_transformer: exception_transformer
|
261
|
+
exception_transformer: exception_transformer,
|
262
|
+
params_extractor: proc do |request|
|
263
|
+
{'name' => request.name}
|
264
|
+
end
|
247
265
|
)
|
248
266
|
end
|
249
267
|
|
@@ -265,9 +283,9 @@ module Google
|
|
265
283
|
# @example
|
266
284
|
# require "google/cloud/os_login"
|
267
285
|
#
|
268
|
-
#
|
286
|
+
# os_login_client = Google::Cloud::OsLogin.new(version: :v1)
|
269
287
|
# formatted_name = Google::Cloud::OsLogin::V1::OsLoginServiceClient.project_path("[USER]", "[PROJECT]")
|
270
|
-
#
|
288
|
+
# os_login_client.delete_posix_account(formatted_name)
|
271
289
|
|
272
290
|
def delete_posix_account \
|
273
291
|
name,
|
@@ -297,9 +315,9 @@ module Google
|
|
297
315
|
# @example
|
298
316
|
# require "google/cloud/os_login"
|
299
317
|
#
|
300
|
-
#
|
318
|
+
# os_login_client = Google::Cloud::OsLogin.new(version: :v1)
|
301
319
|
# formatted_name = Google::Cloud::OsLogin::V1::OsLoginServiceClient.fingerprint_path("[USER]", "[FINGERPRINT]")
|
302
|
-
#
|
320
|
+
# os_login_client.delete_ssh_public_key(formatted_name)
|
303
321
|
|
304
322
|
def delete_ssh_public_key \
|
305
323
|
name,
|
@@ -329,9 +347,9 @@ module Google
|
|
329
347
|
# @example
|
330
348
|
# require "google/cloud/os_login"
|
331
349
|
#
|
332
|
-
#
|
350
|
+
# os_login_client = Google::Cloud::OsLogin.new(version: :v1)
|
333
351
|
# formatted_name = Google::Cloud::OsLogin::V1::OsLoginServiceClient.user_path("[USER]")
|
334
|
-
# response =
|
352
|
+
# response = os_login_client.get_login_profile(formatted_name)
|
335
353
|
|
336
354
|
def get_login_profile \
|
337
355
|
name,
|
@@ -361,9 +379,9 @@ module Google
|
|
361
379
|
# @example
|
362
380
|
# require "google/cloud/os_login"
|
363
381
|
#
|
364
|
-
#
|
382
|
+
# os_login_client = Google::Cloud::OsLogin.new(version: :v1)
|
365
383
|
# formatted_name = Google::Cloud::OsLogin::V1::OsLoginServiceClient.fingerprint_path("[USER]", "[FINGERPRINT]")
|
366
|
-
# response =
|
384
|
+
# response = os_login_client.get_ssh_public_key(formatted_name)
|
367
385
|
|
368
386
|
def get_ssh_public_key \
|
369
387
|
name,
|
@@ -399,12 +417,12 @@ module Google
|
|
399
417
|
# @example
|
400
418
|
# require "google/cloud/os_login"
|
401
419
|
#
|
402
|
-
#
|
420
|
+
# os_login_client = Google::Cloud::OsLogin.new(version: :v1)
|
403
421
|
# formatted_parent = Google::Cloud::OsLogin::V1::OsLoginServiceClient.user_path("[USER]")
|
404
422
|
#
|
405
423
|
# # TODO: Initialize `ssh_public_key`:
|
406
424
|
# ssh_public_key = {}
|
407
|
-
# response =
|
425
|
+
# response = os_login_client.import_ssh_public_key(formatted_parent, ssh_public_key)
|
408
426
|
|
409
427
|
def import_ssh_public_key \
|
410
428
|
parent,
|
@@ -447,12 +465,12 @@ module Google
|
|
447
465
|
# @example
|
448
466
|
# require "google/cloud/os_login"
|
449
467
|
#
|
450
|
-
#
|
468
|
+
# os_login_client = Google::Cloud::OsLogin.new(version: :v1)
|
451
469
|
# formatted_name = Google::Cloud::OsLogin::V1::OsLoginServiceClient.fingerprint_path("[USER]", "[FINGERPRINT]")
|
452
470
|
#
|
453
471
|
# # TODO: Initialize `ssh_public_key`:
|
454
472
|
# ssh_public_key = {}
|
455
|
-
# response =
|
473
|
+
# response = os_login_client.update_ssh_public_key(formatted_name, ssh_public_key)
|
456
474
|
|
457
475
|
def update_ssh_public_key \
|
458
476
|
name,
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2019 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -83,57 +83,49 @@ module Google
|
|
83
83
|
# describe the updated values, the API ignores the values of all
|
84
84
|
# fields not covered by the mask.
|
85
85
|
#
|
86
|
-
# If a repeated field is specified for an update operation,
|
87
|
-
#
|
88
|
-
#
|
89
|
-
# string.
|
86
|
+
# If a repeated field is specified for an update operation, new values will
|
87
|
+
# be appended to the existing repeated field in the target resource. Note that
|
88
|
+
# a repeated field is only allowed in the last position of a `paths` string.
|
90
89
|
#
|
91
90
|
# If a sub-message is specified in the last position of the field mask for an
|
92
|
-
# update operation, then the existing sub-message
|
93
|
-
#
|
91
|
+
# update operation, then new value will be merged into the existing sub-message
|
92
|
+
# in the target resource.
|
93
|
+
#
|
94
|
+
# For example, given the target message:
|
94
95
|
#
|
95
96
|
# f {
|
96
97
|
# b {
|
97
|
-
# d
|
98
|
-
# x
|
98
|
+
# d: 1
|
99
|
+
# x: 2
|
99
100
|
# }
|
100
|
-
# c
|
101
|
+
# c: [1]
|
101
102
|
# }
|
102
103
|
#
|
103
104
|
# And an update message:
|
104
105
|
#
|
105
106
|
# f {
|
106
107
|
# b {
|
107
|
-
# d
|
108
|
+
# d: 10
|
108
109
|
# }
|
110
|
+
# c: [2]
|
109
111
|
# }
|
110
112
|
#
|
111
113
|
# then if the field mask is:
|
112
114
|
#
|
113
|
-
# paths: "f.b"
|
115
|
+
# paths: ["f.b", "f.c"]
|
114
116
|
#
|
115
117
|
# then the result will be:
|
116
118
|
#
|
117
119
|
# f {
|
118
120
|
# b {
|
119
|
-
# d
|
121
|
+
# d: 10
|
122
|
+
# x: 2
|
120
123
|
# }
|
121
|
-
# c
|
124
|
+
# c: [1, 2]
|
122
125
|
# }
|
123
126
|
#
|
124
|
-
#
|
125
|
-
#
|
126
|
-
# paths: "f.b.d"
|
127
|
-
#
|
128
|
-
# then the result would be:
|
129
|
-
#
|
130
|
-
# f {
|
131
|
-
# b {
|
132
|
-
# d : 10
|
133
|
-
# x : 2
|
134
|
-
# }
|
135
|
-
# c : 1
|
136
|
-
# }
|
127
|
+
# An implementation may provide options to override this default behavior for
|
128
|
+
# repeated and message fields.
|
137
129
|
#
|
138
130
|
# In order to reset a field's value to the default, the field must
|
139
131
|
# be in the mask and set to the default value in the provided resource.
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright
|
1
|
+
# Copyright 2019 Google LLC
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -64,11 +64,11 @@ module Google
|
|
64
64
|
].freeze
|
65
65
|
|
66
66
|
|
67
|
-
|
68
|
-
"users/{user}"
|
67
|
+
FINGERPRINT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
68
|
+
"users/{user}/sshPublicKeys/{fingerprint}"
|
69
69
|
)
|
70
70
|
|
71
|
-
private_constant :
|
71
|
+
private_constant :FINGERPRINT_PATH_TEMPLATE
|
72
72
|
|
73
73
|
PROJECT_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
74
74
|
"users/{user}/projects/{project}"
|
@@ -76,18 +76,20 @@ module Google
|
|
76
76
|
|
77
77
|
private_constant :PROJECT_PATH_TEMPLATE
|
78
78
|
|
79
|
-
|
80
|
-
"users/{user}
|
79
|
+
USER_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
80
|
+
"users/{user}"
|
81
81
|
)
|
82
82
|
|
83
|
-
private_constant :
|
83
|
+
private_constant :USER_PATH_TEMPLATE
|
84
84
|
|
85
|
-
# Returns a fully-qualified
|
85
|
+
# Returns a fully-qualified fingerprint resource name string.
|
86
86
|
# @param user [String]
|
87
|
+
# @param fingerprint [String]
|
87
88
|
# @return [String]
|
88
|
-
def self.
|
89
|
-
|
90
|
-
:"user" => user
|
89
|
+
def self.fingerprint_path user, fingerprint
|
90
|
+
FINGERPRINT_PATH_TEMPLATE.render(
|
91
|
+
:"user" => user,
|
92
|
+
:"fingerprint" => fingerprint
|
91
93
|
)
|
92
94
|
end
|
93
95
|
|
@@ -102,14 +104,12 @@ module Google
|
|
102
104
|
)
|
103
105
|
end
|
104
106
|
|
105
|
-
# Returns a fully-qualified
|
107
|
+
# Returns a fully-qualified user resource name string.
|
106
108
|
# @param user [String]
|
107
|
-
# @param fingerprint [String]
|
108
109
|
# @return [String]
|
109
|
-
def self.
|
110
|
-
|
111
|
-
:"user" => user
|
112
|
-
:"fingerprint" => fingerprint
|
110
|
+
def self.user_path user
|
111
|
+
USER_PATH_TEMPLATE.render(
|
112
|
+
:"user" => user
|
113
113
|
)
|
114
114
|
end
|
115
115
|
|
@@ -218,32 +218,50 @@ module Google
|
|
218
218
|
@delete_posix_account = Google::Gax.create_api_call(
|
219
219
|
@os_login_service_stub.method(:delete_posix_account),
|
220
220
|
defaults["delete_posix_account"],
|
221
|
-
exception_transformer: exception_transformer
|
221
|
+
exception_transformer: exception_transformer,
|
222
|
+
params_extractor: proc do |request|
|
223
|
+
{'name' => request.name}
|
224
|
+
end
|
222
225
|
)
|
223
226
|
@delete_ssh_public_key = Google::Gax.create_api_call(
|
224
227
|
@os_login_service_stub.method(:delete_ssh_public_key),
|
225
228
|
defaults["delete_ssh_public_key"],
|
226
|
-
exception_transformer: exception_transformer
|
229
|
+
exception_transformer: exception_transformer,
|
230
|
+
params_extractor: proc do |request|
|
231
|
+
{'name' => request.name}
|
232
|
+
end
|
227
233
|
)
|
228
234
|
@get_login_profile = Google::Gax.create_api_call(
|
229
235
|
@os_login_service_stub.method(:get_login_profile),
|
230
236
|
defaults["get_login_profile"],
|
231
|
-
exception_transformer: exception_transformer
|
237
|
+
exception_transformer: exception_transformer,
|
238
|
+
params_extractor: proc do |request|
|
239
|
+
{'name' => request.name}
|
240
|
+
end
|
232
241
|
)
|
233
242
|
@get_ssh_public_key = Google::Gax.create_api_call(
|
234
243
|
@os_login_service_stub.method(:get_ssh_public_key),
|
235
244
|
defaults["get_ssh_public_key"],
|
236
|
-
exception_transformer: exception_transformer
|
245
|
+
exception_transformer: exception_transformer,
|
246
|
+
params_extractor: proc do |request|
|
247
|
+
{'name' => request.name}
|
248
|
+
end
|
237
249
|
)
|
238
250
|
@import_ssh_public_key = Google::Gax.create_api_call(
|
239
251
|
@os_login_service_stub.method(:import_ssh_public_key),
|
240
252
|
defaults["import_ssh_public_key"],
|
241
|
-
exception_transformer: exception_transformer
|
253
|
+
exception_transformer: exception_transformer,
|
254
|
+
params_extractor: proc do |request|
|
255
|
+
{'parent' => request.parent}
|
256
|
+
end
|
242
257
|
)
|
243
258
|
@update_ssh_public_key = Google::Gax.create_api_call(
|
244
259
|
@os_login_service_stub.method(:update_ssh_public_key),
|
245
260
|
defaults["update_ssh_public_key"],
|
246
|
-
exception_transformer: exception_transformer
|
261
|
+
exception_transformer: exception_transformer,
|
262
|
+
params_extractor: proc do |request|
|
263
|
+
{'name' => request.name}
|
264
|
+
end
|
247
265
|
)
|
248
266
|
end
|
249
267
|
|
@@ -265,9 +283,9 @@ module Google
|
|
265
283
|
# @example
|
266
284
|
# require "google/cloud/os_login"
|
267
285
|
#
|
268
|
-
#
|
286
|
+
# os_login_client = Google::Cloud::OsLogin::V1beta.new(version: :v1beta)
|
269
287
|
# formatted_name = Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.project_path("[USER]", "[PROJECT]")
|
270
|
-
#
|
288
|
+
# os_login_client.delete_posix_account(formatted_name)
|
271
289
|
|
272
290
|
def delete_posix_account \
|
273
291
|
name,
|
@@ -297,9 +315,9 @@ module Google
|
|
297
315
|
# @example
|
298
316
|
# require "google/cloud/os_login"
|
299
317
|
#
|
300
|
-
#
|
318
|
+
# os_login_client = Google::Cloud::OsLogin::V1beta.new(version: :v1beta)
|
301
319
|
# formatted_name = Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.fingerprint_path("[USER]", "[FINGERPRINT]")
|
302
|
-
#
|
320
|
+
# os_login_client.delete_ssh_public_key(formatted_name)
|
303
321
|
|
304
322
|
def delete_ssh_public_key \
|
305
323
|
name,
|
@@ -329,9 +347,9 @@ module Google
|
|
329
347
|
# @example
|
330
348
|
# require "google/cloud/os_login"
|
331
349
|
#
|
332
|
-
#
|
350
|
+
# os_login_client = Google::Cloud::OsLogin::V1beta.new(version: :v1beta)
|
333
351
|
# formatted_name = Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.user_path("[USER]")
|
334
|
-
# response =
|
352
|
+
# response = os_login_client.get_login_profile(formatted_name)
|
335
353
|
|
336
354
|
def get_login_profile \
|
337
355
|
name,
|
@@ -361,9 +379,9 @@ module Google
|
|
361
379
|
# @example
|
362
380
|
# require "google/cloud/os_login"
|
363
381
|
#
|
364
|
-
#
|
382
|
+
# os_login_client = Google::Cloud::OsLogin::V1beta.new(version: :v1beta)
|
365
383
|
# formatted_name = Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.fingerprint_path("[USER]", "[FINGERPRINT]")
|
366
|
-
# response =
|
384
|
+
# response = os_login_client.get_ssh_public_key(formatted_name)
|
367
385
|
|
368
386
|
def get_ssh_public_key \
|
369
387
|
name,
|
@@ -399,12 +417,12 @@ module Google
|
|
399
417
|
# @example
|
400
418
|
# require "google/cloud/os_login"
|
401
419
|
#
|
402
|
-
#
|
420
|
+
# os_login_client = Google::Cloud::OsLogin::V1beta.new(version: :v1beta)
|
403
421
|
# formatted_parent = Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.user_path("[USER]")
|
404
422
|
#
|
405
423
|
# # TODO: Initialize `ssh_public_key`:
|
406
424
|
# ssh_public_key = {}
|
407
|
-
# response =
|
425
|
+
# response = os_login_client.import_ssh_public_key(formatted_parent, ssh_public_key)
|
408
426
|
|
409
427
|
def import_ssh_public_key \
|
410
428
|
parent,
|
@@ -447,12 +465,12 @@ module Google
|
|
447
465
|
# @example
|
448
466
|
# require "google/cloud/os_login"
|
449
467
|
#
|
450
|
-
#
|
468
|
+
# os_login_client = Google::Cloud::OsLogin::V1beta.new(version: :v1beta)
|
451
469
|
# formatted_name = Google::Cloud::OsLogin::V1beta::OsLoginServiceClient.fingerprint_path("[USER]", "[FINGERPRINT]")
|
452
470
|
#
|
453
471
|
# # TODO: Initialize `ssh_public_key`:
|
454
472
|
# ssh_public_key = {}
|
455
|
-
# response =
|
473
|
+
# response = os_login_client.update_ssh_public_key(formatted_name, ssh_public_key)
|
456
474
|
|
457
475
|
def update_ssh_public_key \
|
458
476
|
name,
|
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: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-gax
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 0.
|
61
|
+
version: 0.64.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 0.
|
68
|
+
version: 0.64.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: simplecov
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -102,6 +102,7 @@ extensions: []
|
|
102
102
|
extra_rdoc_files: []
|
103
103
|
files:
|
104
104
|
- ".yardopts"
|
105
|
+
- AUTHENTICATION.md
|
105
106
|
- LICENSE
|
106
107
|
- README.md
|
107
108
|
- lib/google/cloud/os_login.rb
|
@@ -146,8 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
147
|
- !ruby/object:Gem::Version
|
147
148
|
version: '0'
|
148
149
|
requirements: []
|
149
|
-
|
150
|
-
rubygems_version: 2.7.7
|
150
|
+
rubygems_version: 3.0.3
|
151
151
|
signing_key:
|
152
152
|
specification_version: 4
|
153
153
|
summary: API Client library for Google Cloud OS Login API
|