google-cloud-kms 1.0.0 → 1.0.1
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/kms/v1/doc/google/protobuf/field_mask.rb +18 -26
- data/lib/google/cloud/kms/v1/doc/google/protobuf/timestamp.rb +15 -13
- data/lib/google/cloud/kms/v1/key_management_service_client.rb +83 -83
- data/lib/google/cloud/kms/v1/key_management_service_client_config.json +4 -4
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 544cd2b12b79c301f7f29fbcf3404acad0406a6a481d8b03e43ba9934ae0d4da
|
4
|
+
data.tar.gz: 9e3de94a11b8cd9efab13da5ac9e17e9a3d81cd321889d46a853a231eb3f2316
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d1645492e51e5c04fedfd16425a8486c4594100cf85647d9627b3ad0714cffb895239f5c7bf17a512b66e90b2956d86f73fcacb0e7d72282e78f3839ff28f151
|
7
|
+
data.tar.gz: 1183b3a561d17e475fa9ca3e2786791e19f7c625754e51c6a1a6ed14238e3abeca7a208cd2a1100052acb8c5a8dc0840a650cde8e76bf06f8975c530de2dcf49
|
data/.yardopts
CHANGED
data/AUTHENTICATION.md
ADDED
@@ -0,0 +1,199 @@
|
|
1
|
+
# Authentication
|
2
|
+
|
3
|
+
In general, the google-cloud-kms 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 KMS_CREDENTIALS=/path/to/json`
|
22
|
+
```
|
23
|
+
|
24
|
+
3. Initialize the client.
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
require "google/cloud/kms"
|
28
|
+
|
29
|
+
client = Google::Cloud::Kms.new
|
30
|
+
```
|
31
|
+
|
32
|
+
## Project and Credential Lookup
|
33
|
+
|
34
|
+
The google-cloud-kms 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-kms checks for project ID are:
|
97
|
+
|
98
|
+
1. `KMS_PROJECT`
|
99
|
+
2. `GOOGLE_CLOUD_PROJECT`
|
100
|
+
|
101
|
+
The environment variables that google-cloud-kms checks for credentials are configured on {Google::Cloud::Kms::V1::Credentials}:
|
102
|
+
|
103
|
+
1. `KMS_CREDENTIALS` - Path to JSON file, or JSON contents
|
104
|
+
2. `KMS_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/kms"
|
111
|
+
|
112
|
+
ENV["KMS_PROJECT"] = "my-project-id"
|
113
|
+
ENV["KMS_CREDENTIALS"] = "path/to/keyfile.json"
|
114
|
+
|
115
|
+
client = Google::Cloud::Kms.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/kms"
|
124
|
+
|
125
|
+
Google::Cloud::Kms.configure do |config|
|
126
|
+
config.project_id = "my-project-id"
|
127
|
+
config.credentials = "path/to/keyfile.json"
|
128
|
+
end
|
129
|
+
|
130
|
+
client = Google::Cloud::Kms.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-kms.
|
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}.
|
@@ -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.
|
@@ -15,17 +15,19 @@
|
|
15
15
|
|
16
16
|
module Google
|
17
17
|
module Protobuf
|
18
|
-
# A Timestamp represents a point in time independent of any time zone
|
19
|
-
#
|
20
|
-
# nanosecond resolution
|
21
|
-
#
|
22
|
-
# backwards to year one.
|
23
|
-
#
|
24
|
-
#
|
25
|
-
#
|
26
|
-
#
|
27
|
-
#
|
28
|
-
#
|
18
|
+
# A Timestamp represents a point in time independent of any time zone or local
|
19
|
+
# calendar, encoded as a count of seconds and fractions of seconds at
|
20
|
+
# nanosecond resolution. The count is relative to an epoch at UTC midnight on
|
21
|
+
# January 1, 1970, in the proleptic Gregorian calendar which extends the
|
22
|
+
# Gregorian calendar backwards to year one.
|
23
|
+
#
|
24
|
+
# All minutes are 60 seconds long. Leap seconds are "smeared" so that no leap
|
25
|
+
# second table is needed for interpretation, using a [24-hour linear
|
26
|
+
# smear](https://developers.google.com/time/smear).
|
27
|
+
#
|
28
|
+
# The range is from 0001-01-01T00:00:00Z to 9999-12-31T23:59:59.999999999Z. By
|
29
|
+
# restricting to that range, we ensure that we can convert to and from [RFC
|
30
|
+
# 3339](https://www.ietf.org/rfc/rfc3339.txt) date strings.
|
29
31
|
#
|
30
32
|
# = Examples
|
31
33
|
#
|
@@ -86,12 +88,12 @@ module Google
|
|
86
88
|
# 01:30 UTC on January 15, 2017.
|
87
89
|
#
|
88
90
|
# In JavaScript, one can convert a Date object to this format using the
|
89
|
-
# standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString
|
91
|
+
# standard [toISOString()](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString)
|
90
92
|
# method. In Python, a standard `datetime.datetime` object can be converted
|
91
93
|
# to this format using [`strftime`](https://docs.python.org/2/library/time.html#time.strftime)
|
92
94
|
# with the time format spec '%Y-%m-%dT%H:%M:%S.%fZ'. Likewise, in Java, one
|
93
95
|
# can use the Joda Time's [`ISODateTimeFormat.dateTime()`](
|
94
|
-
# http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime
|
96
|
+
# http://www.joda.org/joda-time/apidocs/org/joda/time/format/ISODateTimeFormat.html#dateTime%2D%2D
|
95
97
|
# ) to obtain a formatter capable of generating timestamps in this format.
|
96
98
|
# @!attribute [rw] seconds
|
97
99
|
# @return [Integer]
|
@@ -88,11 +88,11 @@ module Google
|
|
88
88
|
].freeze
|
89
89
|
|
90
90
|
|
91
|
-
|
92
|
-
"projects/{project}/locations/{location}/keyRings/{key_ring}"
|
91
|
+
CRYPTO_KEY_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
92
|
+
"projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}"
|
93
93
|
)
|
94
94
|
|
95
|
-
private_constant :
|
95
|
+
private_constant :CRYPTO_KEY_PATH_TEMPLATE
|
96
96
|
|
97
97
|
CRYPTO_KEY_PATH_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
98
98
|
"projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key_path=**}"
|
@@ -100,34 +100,36 @@ module Google
|
|
100
100
|
|
101
101
|
private_constant :CRYPTO_KEY_PATH_PATH_TEMPLATE
|
102
102
|
|
103
|
-
|
104
|
-
"projects/{project}/locations/{location}"
|
103
|
+
CRYPTO_KEY_VERSION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
104
|
+
"projects/{project}/locations/{location}/keyRings/{key_ring}/cryptoKeys/{crypto_key}/cryptoKeyVersions/{crypto_key_version}"
|
105
105
|
)
|
106
106
|
|
107
|
-
private_constant :
|
107
|
+
private_constant :CRYPTO_KEY_VERSION_PATH_TEMPLATE
|
108
108
|
|
109
|
-
|
110
|
-
"projects/{project}/locations/{location}/keyRings/{key_ring}
|
109
|
+
KEY_RING_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
110
|
+
"projects/{project}/locations/{location}/keyRings/{key_ring}"
|
111
111
|
)
|
112
112
|
|
113
|
-
private_constant :
|
113
|
+
private_constant :KEY_RING_PATH_TEMPLATE
|
114
114
|
|
115
|
-
|
116
|
-
"projects/{project}/locations/{location}
|
115
|
+
LOCATION_PATH_TEMPLATE = Google::Gax::PathTemplate.new(
|
116
|
+
"projects/{project}/locations/{location}"
|
117
117
|
)
|
118
118
|
|
119
|
-
private_constant :
|
119
|
+
private_constant :LOCATION_PATH_TEMPLATE
|
120
120
|
|
121
|
-
# Returns a fully-qualified
|
121
|
+
# Returns a fully-qualified crypto_key resource name string.
|
122
122
|
# @param project [String]
|
123
123
|
# @param location [String]
|
124
124
|
# @param key_ring [String]
|
125
|
+
# @param crypto_key [String]
|
125
126
|
# @return [String]
|
126
|
-
def self.
|
127
|
-
|
127
|
+
def self.crypto_key_path project, location, key_ring, crypto_key
|
128
|
+
CRYPTO_KEY_PATH_TEMPLATE.render(
|
128
129
|
:"project" => project,
|
129
130
|
:"location" => location,
|
130
|
-
:"key_ring" => key_ring
|
131
|
+
:"key_ring" => key_ring,
|
132
|
+
:"crypto_key" => crypto_key
|
131
133
|
)
|
132
134
|
end
|
133
135
|
|
@@ -146,46 +148,44 @@ module Google
|
|
146
148
|
)
|
147
149
|
end
|
148
150
|
|
149
|
-
# Returns a fully-qualified
|
151
|
+
# Returns a fully-qualified crypto_key_version resource name string.
|
150
152
|
# @param project [String]
|
151
153
|
# @param location [String]
|
154
|
+
# @param key_ring [String]
|
155
|
+
# @param crypto_key [String]
|
156
|
+
# @param crypto_key_version [String]
|
152
157
|
# @return [String]
|
153
|
-
def self.
|
154
|
-
|
158
|
+
def self.crypto_key_version_path project, location, key_ring, crypto_key, crypto_key_version
|
159
|
+
CRYPTO_KEY_VERSION_PATH_TEMPLATE.render(
|
155
160
|
:"project" => project,
|
156
|
-
:"location" => location
|
161
|
+
:"location" => location,
|
162
|
+
:"key_ring" => key_ring,
|
163
|
+
:"crypto_key" => crypto_key,
|
164
|
+
:"crypto_key_version" => crypto_key_version
|
157
165
|
)
|
158
166
|
end
|
159
167
|
|
160
|
-
# Returns a fully-qualified
|
168
|
+
# Returns a fully-qualified key_ring resource name string.
|
161
169
|
# @param project [String]
|
162
170
|
# @param location [String]
|
163
171
|
# @param key_ring [String]
|
164
|
-
# @param crypto_key [String]
|
165
172
|
# @return [String]
|
166
|
-
def self.
|
167
|
-
|
173
|
+
def self.key_ring_path project, location, key_ring
|
174
|
+
KEY_RING_PATH_TEMPLATE.render(
|
168
175
|
:"project" => project,
|
169
176
|
:"location" => location,
|
170
|
-
:"key_ring" => key_ring
|
171
|
-
:"crypto_key" => crypto_key
|
177
|
+
:"key_ring" => key_ring
|
172
178
|
)
|
173
179
|
end
|
174
180
|
|
175
|
-
# Returns a fully-qualified
|
181
|
+
# Returns a fully-qualified location resource name string.
|
176
182
|
# @param project [String]
|
177
183
|
# @param location [String]
|
178
|
-
# @param key_ring [String]
|
179
|
-
# @param crypto_key [String]
|
180
|
-
# @param crypto_key_version [String]
|
181
184
|
# @return [String]
|
182
|
-
def self.
|
183
|
-
|
185
|
+
def self.location_path project, location
|
186
|
+
LOCATION_PATH_TEMPLATE.render(
|
184
187
|
:"project" => project,
|
185
|
-
:"location" => location
|
186
|
-
:"key_ring" => key_ring,
|
187
|
-
:"crypto_key" => crypto_key,
|
188
|
-
:"crypto_key_version" => crypto_key_version
|
188
|
+
:"location" => location
|
189
189
|
)
|
190
190
|
end
|
191
191
|
|
@@ -510,16 +510,16 @@ module Google
|
|
510
510
|
# @example
|
511
511
|
# require "google/cloud/kms"
|
512
512
|
#
|
513
|
-
#
|
513
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
514
514
|
# formatted_parent = Google::Cloud::Kms::V1::KeyManagementServiceClient.location_path("[PROJECT]", "[LOCATION]")
|
515
515
|
#
|
516
516
|
# # Iterate over all results.
|
517
|
-
#
|
517
|
+
# key_management_client.list_key_rings(formatted_parent).each do |element|
|
518
518
|
# # Process element.
|
519
519
|
# end
|
520
520
|
#
|
521
521
|
# # Or iterate over results one page at a time.
|
522
|
-
#
|
522
|
+
# key_management_client.list_key_rings(formatted_parent).each_page do |page|
|
523
523
|
# # Process each page at a time.
|
524
524
|
# page.each do |element|
|
525
525
|
# # Process element.
|
@@ -567,16 +567,16 @@ module Google
|
|
567
567
|
# @example
|
568
568
|
# require "google/cloud/kms"
|
569
569
|
#
|
570
|
-
#
|
570
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
571
571
|
# formatted_parent = Google::Cloud::Kms::V1::KeyManagementServiceClient.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]")
|
572
572
|
#
|
573
573
|
# # Iterate over all results.
|
574
|
-
#
|
574
|
+
# key_management_client.list_crypto_keys(formatted_parent).each do |element|
|
575
575
|
# # Process element.
|
576
576
|
# end
|
577
577
|
#
|
578
578
|
# # Or iterate over results one page at a time.
|
579
|
-
#
|
579
|
+
# key_management_client.list_crypto_keys(formatted_parent).each_page do |page|
|
580
580
|
# # Process each page at a time.
|
581
581
|
# page.each do |element|
|
582
582
|
# # Process element.
|
@@ -627,16 +627,16 @@ module Google
|
|
627
627
|
# @example
|
628
628
|
# require "google/cloud/kms"
|
629
629
|
#
|
630
|
-
#
|
630
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
631
631
|
# formatted_parent = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
|
632
632
|
#
|
633
633
|
# # Iterate over all results.
|
634
|
-
#
|
634
|
+
# key_management_client.list_crypto_key_versions(formatted_parent).each do |element|
|
635
635
|
# # Process element.
|
636
636
|
# end
|
637
637
|
#
|
638
638
|
# # Or iterate over results one page at a time.
|
639
|
-
#
|
639
|
+
# key_management_client.list_crypto_key_versions(formatted_parent).each_page do |page|
|
640
640
|
# # Process each page at a time.
|
641
641
|
# page.each do |element|
|
642
642
|
# # Process element.
|
@@ -674,9 +674,9 @@ module Google
|
|
674
674
|
# @example
|
675
675
|
# require "google/cloud/kms"
|
676
676
|
#
|
677
|
-
#
|
677
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
678
678
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]")
|
679
|
-
# response =
|
679
|
+
# response = key_management_client.get_key_ring(formatted_name)
|
680
680
|
|
681
681
|
def get_key_ring \
|
682
682
|
name,
|
@@ -707,9 +707,9 @@ module Google
|
|
707
707
|
# @example
|
708
708
|
# require "google/cloud/kms"
|
709
709
|
#
|
710
|
-
#
|
710
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
711
711
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
|
712
|
-
# response =
|
712
|
+
# response = key_management_client.get_crypto_key(formatted_name)
|
713
713
|
|
714
714
|
def get_crypto_key \
|
715
715
|
name,
|
@@ -739,9 +739,9 @@ module Google
|
|
739
739
|
# @example
|
740
740
|
# require "google/cloud/kms"
|
741
741
|
#
|
742
|
-
#
|
742
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
743
743
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_version_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]")
|
744
|
-
# response =
|
744
|
+
# response = key_management_client.get_crypto_key_version(formatted_name)
|
745
745
|
|
746
746
|
def get_crypto_key_version \
|
747
747
|
name,
|
@@ -779,7 +779,7 @@ module Google
|
|
779
779
|
# @example
|
780
780
|
# require "google/cloud/kms"
|
781
781
|
#
|
782
|
-
#
|
782
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
783
783
|
# formatted_parent = Google::Cloud::Kms::V1::KeyManagementServiceClient.location_path("[PROJECT]", "[LOCATION]")
|
784
784
|
#
|
785
785
|
# # TODO: Initialize `key_ring_id`:
|
@@ -787,7 +787,7 @@ module Google
|
|
787
787
|
#
|
788
788
|
# # TODO: Initialize `key_ring`:
|
789
789
|
# key_ring = {}
|
790
|
-
# response =
|
790
|
+
# response = key_management_client.create_key_ring(formatted_parent, key_ring_id, key_ring)
|
791
791
|
|
792
792
|
def create_key_ring \
|
793
793
|
parent,
|
@@ -832,7 +832,7 @@ module Google
|
|
832
832
|
# @example
|
833
833
|
# require "google/cloud/kms"
|
834
834
|
#
|
835
|
-
#
|
835
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
836
836
|
# formatted_parent = Google::Cloud::Kms::V1::KeyManagementServiceClient.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]")
|
837
837
|
# crypto_key_id = "my-app-key"
|
838
838
|
# purpose = :ENCRYPT_DECRYPT
|
@@ -845,7 +845,7 @@ module Google
|
|
845
845
|
# next_rotation_time: next_rotation_time,
|
846
846
|
# rotation_period: rotation_period
|
847
847
|
# }
|
848
|
-
# response =
|
848
|
+
# response = key_management_client.create_crypto_key(formatted_parent, crypto_key_id, crypto_key)
|
849
849
|
|
850
850
|
def create_crypto_key \
|
851
851
|
parent,
|
@@ -889,12 +889,12 @@ module Google
|
|
889
889
|
# @example
|
890
890
|
# require "google/cloud/kms"
|
891
891
|
#
|
892
|
-
#
|
892
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
893
893
|
# formatted_parent = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
|
894
894
|
#
|
895
895
|
# # TODO: Initialize `crypto_key_version`:
|
896
896
|
# crypto_key_version = {}
|
897
|
-
# response =
|
897
|
+
# response = key_management_client.create_crypto_key_version(formatted_parent, crypto_key_version)
|
898
898
|
|
899
899
|
def create_crypto_key_version \
|
900
900
|
parent,
|
@@ -930,14 +930,14 @@ module Google
|
|
930
930
|
# @example
|
931
931
|
# require "google/cloud/kms"
|
932
932
|
#
|
933
|
-
#
|
933
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
934
934
|
#
|
935
935
|
# # TODO: Initialize `crypto_key`:
|
936
936
|
# crypto_key = {}
|
937
937
|
#
|
938
938
|
# # TODO: Initialize `update_mask`:
|
939
939
|
# update_mask = {}
|
940
|
-
# response =
|
940
|
+
# response = key_management_client.update_crypto_key(crypto_key, update_mask)
|
941
941
|
|
942
942
|
def update_crypto_key \
|
943
943
|
crypto_key,
|
@@ -985,14 +985,14 @@ module Google
|
|
985
985
|
# @example
|
986
986
|
# require "google/cloud/kms"
|
987
987
|
#
|
988
|
-
#
|
988
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
989
989
|
#
|
990
990
|
# # TODO: Initialize `crypto_key_version`:
|
991
991
|
# crypto_key_version = {}
|
992
992
|
#
|
993
993
|
# # TODO: Initialize `update_mask`:
|
994
994
|
# update_mask = {}
|
995
|
-
# response =
|
995
|
+
# response = key_management_client.update_crypto_key_version(crypto_key_version, update_mask)
|
996
996
|
|
997
997
|
def update_crypto_key_version \
|
998
998
|
crypto_key_version,
|
@@ -1053,12 +1053,12 @@ module Google
|
|
1053
1053
|
# @example
|
1054
1054
|
# require "google/cloud/kms"
|
1055
1055
|
#
|
1056
|
-
#
|
1056
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1057
1057
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_path_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY_PATH]")
|
1058
1058
|
#
|
1059
1059
|
# # TODO: Initialize `plaintext`:
|
1060
1060
|
# plaintext = ''
|
1061
|
-
# response =
|
1061
|
+
# response = key_management_client.encrypt(formatted_name, plaintext)
|
1062
1062
|
|
1063
1063
|
def encrypt \
|
1064
1064
|
name,
|
@@ -1101,12 +1101,12 @@ module Google
|
|
1101
1101
|
# @example
|
1102
1102
|
# require "google/cloud/kms"
|
1103
1103
|
#
|
1104
|
-
#
|
1104
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1105
1105
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
|
1106
1106
|
#
|
1107
1107
|
# # TODO: Initialize `ciphertext`:
|
1108
1108
|
# ciphertext = ''
|
1109
|
-
# response =
|
1109
|
+
# response = key_management_client.decrypt(formatted_name, ciphertext)
|
1110
1110
|
|
1111
1111
|
def decrypt \
|
1112
1112
|
name,
|
@@ -1146,12 +1146,12 @@ module Google
|
|
1146
1146
|
# @example
|
1147
1147
|
# require "google/cloud/kms"
|
1148
1148
|
#
|
1149
|
-
#
|
1149
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1150
1150
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]")
|
1151
1151
|
#
|
1152
1152
|
# # TODO: Initialize `crypto_key_version_id`:
|
1153
1153
|
# crypto_key_version_id = ''
|
1154
|
-
# response =
|
1154
|
+
# response = key_management_client.update_crypto_key_primary_version(formatted_name, crypto_key_version_id)
|
1155
1155
|
|
1156
1156
|
def update_crypto_key_primary_version \
|
1157
1157
|
name,
|
@@ -1199,9 +1199,9 @@ module Google
|
|
1199
1199
|
# @example
|
1200
1200
|
# require "google/cloud/kms"
|
1201
1201
|
#
|
1202
|
-
#
|
1202
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1203
1203
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_version_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]")
|
1204
|
-
# response =
|
1204
|
+
# response = key_management_client.destroy_crypto_key_version(formatted_name)
|
1205
1205
|
|
1206
1206
|
def destroy_crypto_key_version \
|
1207
1207
|
name,
|
@@ -1238,9 +1238,9 @@ module Google
|
|
1238
1238
|
# @example
|
1239
1239
|
# require "google/cloud/kms"
|
1240
1240
|
#
|
1241
|
-
#
|
1241
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1242
1242
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_version_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]")
|
1243
|
-
# response =
|
1243
|
+
# response = key_management_client.restore_crypto_key_version(formatted_name)
|
1244
1244
|
|
1245
1245
|
def restore_crypto_key_version \
|
1246
1246
|
name,
|
@@ -1274,9 +1274,9 @@ module Google
|
|
1274
1274
|
# @example
|
1275
1275
|
# require "google/cloud/kms"
|
1276
1276
|
#
|
1277
|
-
#
|
1277
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1278
1278
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_version_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]")
|
1279
|
-
# response =
|
1279
|
+
# response = key_management_client.get_public_key(formatted_name)
|
1280
1280
|
|
1281
1281
|
def get_public_key \
|
1282
1282
|
name,
|
@@ -1314,12 +1314,12 @@ module Google
|
|
1314
1314
|
# @example
|
1315
1315
|
# require "google/cloud/kms"
|
1316
1316
|
#
|
1317
|
-
#
|
1317
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1318
1318
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_version_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]")
|
1319
1319
|
#
|
1320
1320
|
# # TODO: Initialize `ciphertext`:
|
1321
1321
|
# ciphertext = ''
|
1322
|
-
# response =
|
1322
|
+
# response = key_management_client.asymmetric_decrypt(formatted_name, ciphertext)
|
1323
1323
|
|
1324
1324
|
def asymmetric_decrypt \
|
1325
1325
|
name,
|
@@ -1361,12 +1361,12 @@ module Google
|
|
1361
1361
|
# @example
|
1362
1362
|
# require "google/cloud/kms"
|
1363
1363
|
#
|
1364
|
-
#
|
1364
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1365
1365
|
# formatted_name = Google::Cloud::Kms::V1::KeyManagementServiceClient.crypto_key_version_path("[PROJECT]", "[LOCATION]", "[KEY_RING]", "[CRYPTO_KEY]", "[CRYPTO_KEY_VERSION]")
|
1366
1366
|
#
|
1367
1367
|
# # TODO: Initialize `digest`:
|
1368
1368
|
# digest = {}
|
1369
|
-
# response =
|
1369
|
+
# response = key_management_client.asymmetric_sign(formatted_name, digest)
|
1370
1370
|
|
1371
1371
|
def asymmetric_sign \
|
1372
1372
|
name,
|
@@ -1406,12 +1406,12 @@ module Google
|
|
1406
1406
|
# @example
|
1407
1407
|
# require "google/cloud/kms"
|
1408
1408
|
#
|
1409
|
-
#
|
1409
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1410
1410
|
# formatted_resource = Google::Cloud::Kms::V1::KeyManagementServiceClient.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]")
|
1411
1411
|
#
|
1412
1412
|
# # TODO: Initialize `policy`:
|
1413
1413
|
# policy = {}
|
1414
|
-
# response =
|
1414
|
+
# response = key_management_client.set_iam_policy(formatted_resource, policy)
|
1415
1415
|
|
1416
1416
|
def set_iam_policy \
|
1417
1417
|
resource,
|
@@ -1445,9 +1445,9 @@ module Google
|
|
1445
1445
|
# @example
|
1446
1446
|
# require "google/cloud/kms"
|
1447
1447
|
#
|
1448
|
-
#
|
1448
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1449
1449
|
# formatted_resource = Google::Cloud::Kms::V1::KeyManagementServiceClient.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]")
|
1450
|
-
# response =
|
1450
|
+
# response = key_management_client.get_iam_policy(formatted_resource)
|
1451
1451
|
|
1452
1452
|
def get_iam_policy \
|
1453
1453
|
resource,
|
@@ -1484,12 +1484,12 @@ module Google
|
|
1484
1484
|
# @example
|
1485
1485
|
# require "google/cloud/kms"
|
1486
1486
|
#
|
1487
|
-
#
|
1487
|
+
# key_management_client = Google::Cloud::Kms.new(version: :v1)
|
1488
1488
|
# formatted_resource = Google::Cloud::Kms::V1::KeyManagementServiceClient.key_ring_path("[PROJECT]", "[LOCATION]", "[KEY_RING]")
|
1489
1489
|
#
|
1490
1490
|
# # TODO: Initialize `permissions`:
|
1491
1491
|
# permissions = []
|
1492
|
-
# response =
|
1492
|
+
# response = key_management_client.test_iam_permissions(formatted_resource, permissions)
|
1493
1493
|
|
1494
1494
|
def test_iam_permissions \
|
1495
1495
|
resource,
|
@@ -77,12 +77,12 @@
|
|
77
77
|
},
|
78
78
|
"Encrypt": {
|
79
79
|
"timeout_millis": 60000,
|
80
|
-
"retry_codes_name": "
|
80
|
+
"retry_codes_name": "idempotent",
|
81
81
|
"retry_params_name": "default"
|
82
82
|
},
|
83
83
|
"Decrypt": {
|
84
84
|
"timeout_millis": 60000,
|
85
|
-
"retry_codes_name": "
|
85
|
+
"retry_codes_name": "idempotent",
|
86
86
|
"retry_params_name": "default"
|
87
87
|
},
|
88
88
|
"UpdateCryptoKeyPrimaryVersion": {
|
@@ -107,12 +107,12 @@
|
|
107
107
|
},
|
108
108
|
"AsymmetricDecrypt": {
|
109
109
|
"timeout_millis": 60000,
|
110
|
-
"retry_codes_name": "
|
110
|
+
"retry_codes_name": "idempotent",
|
111
111
|
"retry_params_name": "default"
|
112
112
|
},
|
113
113
|
"AsymmetricSign": {
|
114
114
|
"timeout_millis": 60000,
|
115
|
-
"retry_codes_name": "
|
115
|
+
"retry_codes_name": "idempotent",
|
116
116
|
"retry_params_name": "default"
|
117
117
|
},
|
118
118
|
"SetIamPolicy": {
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: google-cloud-kms
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Google LLC
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: google-gax
|
@@ -116,6 +116,7 @@ extensions: []
|
|
116
116
|
extra_rdoc_files: []
|
117
117
|
files:
|
118
118
|
- ".yardopts"
|
119
|
+
- AUTHENTICATION.md
|
119
120
|
- LICENSE
|
120
121
|
- README.md
|
121
122
|
- lib/google/cloud/kms.rb
|
@@ -153,8 +154,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
153
154
|
- !ruby/object:Gem::Version
|
154
155
|
version: '0'
|
155
156
|
requirements: []
|
156
|
-
|
157
|
-
rubygems_version: 2.7.6
|
157
|
+
rubygems_version: 3.0.3
|
158
158
|
signing_key:
|
159
159
|
specification_version: 4
|
160
160
|
summary: API Client library for Cloud Key Management Service (KMS) API
|