google-cloud-kms 1.0.2 → 1.1.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: 3435174d6d95af25a352f8a5c7f3eaca84d5dbb3a4ce314dda344fcaa8278006
4
- data.tar.gz: aa981529b7c9903b2e845e9b5033ff65b2edcfe877ef6e85b8b4e39caa87e54c
3
+ metadata.gz: 5db965ca05a2730295562c67ca7aabba12f0514f65334cf8af4365393c4f74b3
4
+ data.tar.gz: 00e160157392f2daa985ff3f04ede025c587804b0cb8e850f8e391e9dc01097a
5
5
  SHA512:
6
- metadata.gz: b95dcd8e9706515732428353da166177e7a872b3c307b2908dd68bf4f1e01f65d739316c5f0a0c814b908ce695a31c045f77a9413ffc114be4ee27e73d120b3a
7
- data.tar.gz: 6344f662a0c796df9c643ff7826c135a72d4b9927cc300a852931a876206021d3c6453b700cc64ffe3e890ee8291e6b82bce75ceb127b3819f62cf9980317af0
6
+ metadata.gz: 68862a97c1900e8f9d36248332539527ac69c3308bca22d2329b7105acdb5044569f22d4a9098ac9490e2270341b34223154856cf256b81051247c8b5233068c
7
+ data.tar.gz: 0c27f690f539ecbd3df14dc7c83d5ecc7be332dbef9ce99e47dd0e121e2265236d5219549e901cb7f83314cb0d770f6ffba3c0d565b0048ec41b3b5b70534e5a
@@ -21,7 +21,8 @@ module Google
21
21
  module V1
22
22
  class Credentials < Google::Auth::Credentials
23
23
  SCOPE = [
24
- "https://www.googleapis.com/auth/cloud-platform"
24
+ "https://www.googleapis.com/auth/cloud-platform",
25
+ "https://www.googleapis.com/auth/cloudkms"
25
26
  ].freeze
26
27
  PATH_ENV_VARS = %w(KMS_CREDENTIALS
27
28
  KMS_KEYFILE
@@ -17,153 +17,125 @@ module Google
17
17
  module Cloud
18
18
  module Kms
19
19
  module V1
20
- # A {Google::Cloud::Kms::V1::KeyRing KeyRing} is a toplevel logical grouping of
21
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys}.
20
+ # A {Google::Cloud::Kms::V1::KeyRing KeyRing} is a toplevel logical grouping of {Google::Cloud::Kms::V1::CryptoKey CryptoKeys}.
22
21
  # @!attribute [rw] name
23
22
  # @return [String]
24
- # Output only. The resource name for the
25
- # {Google::Cloud::Kms::V1::KeyRing KeyRing} in the format
23
+ # Output only. The resource name for the {Google::Cloud::Kms::V1::KeyRing KeyRing} in the format
26
24
  # `projects/*/locations/*/keyRings/*`.
27
25
  # @!attribute [rw] create_time
28
26
  # @return [Google::Protobuf::Timestamp]
29
- # Output only. The time at which this {Google::Cloud::Kms::V1::KeyRing KeyRing}
30
- # was created.
27
+ # Output only. The time at which this {Google::Cloud::Kms::V1::KeyRing KeyRing} was created.
31
28
  class KeyRing; end
32
29
 
33
- # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} represents a logical key that
34
- # can be used for cryptographic operations.
30
+ # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} represents a logical key that can be used for cryptographic
31
+ # operations.
35
32
  #
36
- # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is made up of one or more
37
- # {Google::Cloud::Kms::V1::CryptoKeyVersion versions}, which represent the actual
38
- # key material used in cryptographic operations.
33
+ # A {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is made up of one or more {Google::Cloud::Kms::V1::CryptoKeyVersion versions}, which
34
+ # represent the actual key material used in cryptographic operations.
39
35
  # @!attribute [rw] name
40
36
  # @return [String]
41
- # Output only. The resource name for this
42
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKey} in the format
37
+ # Output only. The resource name for this {Google::Cloud::Kms::V1::CryptoKey CryptoKey} in the format
43
38
  # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
44
39
  # @!attribute [rw] primary
45
40
  # @return [Google::Cloud::Kms::V1::CryptoKeyVersion]
46
- # Output only. A copy of the "primary"
47
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} that will be used
48
- # by {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} when this
49
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is given in
50
- # {Google::Cloud::Kms::V1::EncryptRequest#name EncryptRequest#name}.
41
+ # Output only. A copy of the "primary" {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} that will be used
42
+ # by {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} when this {Google::Cloud::Kms::V1::CryptoKey CryptoKey} is given
43
+ # in {Google::Cloud::Kms::V1::EncryptRequest#name EncryptRequest#name}.
51
44
  #
52
- # The {Google::Cloud::Kms::V1::CryptoKey CryptoKey}'s primary version can be
53
- # updated via
45
+ # The {Google::Cloud::Kms::V1::CryptoKey CryptoKey}'s primary version can be updated via
54
46
  # {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKeyPrimaryVersion UpdateCryptoKeyPrimaryVersion}.
55
47
  #
56
48
  # All keys with {Google::Cloud::Kms::V1::CryptoKey#purpose purpose}
57
- # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}
58
- # have a primary. For other keys, this field will be omitted.
49
+ # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT} have a
50
+ # primary. For other keys, this field will be omitted.
59
51
  # @!attribute [rw] purpose
60
52
  # @return [Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose]
61
53
  # The immutable purpose of this {Google::Cloud::Kms::V1::CryptoKey CryptoKey}.
62
54
  # @!attribute [rw] create_time
63
55
  # @return [Google::Protobuf::Timestamp]
64
- # Output only. The time at which this
65
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKey} was created.
56
+ # Output only. The time at which this {Google::Cloud::Kms::V1::CryptoKey CryptoKey} was created.
66
57
  # @!attribute [rw] next_rotation_time
67
58
  # @return [Google::Protobuf::Timestamp]
68
- # At {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time},
69
- # the Key Management Service will automatically:
59
+ # At {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}, the Key Management Service will automatically:
70
60
  #
71
61
  # 1. Create a new version of this {Google::Cloud::Kms::V1::CryptoKey CryptoKey}.
72
62
  # 2. Mark the new version as primary.
73
63
  #
74
64
  # Key rotations performed manually via
75
- # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion}
76
- # and
65
+ # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion} and
77
66
  # {Google::Cloud::Kms::V1::KeyManagementService::UpdateCryptoKeyPrimaryVersion UpdateCryptoKeyPrimaryVersion}
78
- # do not affect
79
- # {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}.
67
+ # do not affect {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}.
80
68
  #
81
69
  # Keys with {Google::Cloud::Kms::V1::CryptoKey#purpose purpose}
82
- # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}
83
- # support automatic rotation. For other keys, this field must be omitted.
70
+ # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT} support
71
+ # automatic rotation. For other keys, this field must be omitted.
84
72
  # @!attribute [rw] rotation_period
85
73
  # @return [Google::Protobuf::Duration]
86
- # {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}
87
- # will be advanced by this period when the service automatically rotates a
88
- # key. Must be at least one day.
74
+ # {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time} will be advanced by this period when the service
75
+ # automatically rotates a key. Must be at least one day.
89
76
  #
90
- # If {Google::Cloud::Kms::V1::CryptoKey#rotation_period rotation_period} is
91
- # set,
92
- # {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}
93
- # must also be set.
77
+ # If {Google::Cloud::Kms::V1::CryptoKey#rotation_period rotation_period} is set, {Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time} must also be set.
94
78
  #
95
79
  # Keys with {Google::Cloud::Kms::V1::CryptoKey#purpose purpose}
96
- # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}
97
- # support automatic rotation. For other keys, this field must be omitted.
80
+ # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT} support
81
+ # automatic rotation. For other keys, this field must be omitted.
98
82
  # @!attribute [rw] version_template
99
83
  # @return [Google::Cloud::Kms::V1::CryptoKeyVersionTemplate]
100
- # A template describing settings for new
101
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} instances. The
102
- # properties of new {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}
103
- # instances created by either
104
- # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion}
105
- # or auto-rotation are controlled by this template.
84
+ # A template describing settings for new {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} instances.
85
+ # The properties of new {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} instances created by either
86
+ # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion} or
87
+ # auto-rotation are controlled by this template.
106
88
  # @!attribute [rw] labels
107
89
  # @return [Hash{String => String}]
108
90
  # Labels with user-defined metadata. For more information, see
109
91
  # [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys).
110
92
  class CryptoKey
111
- # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose CryptoKeyPurpose}
112
- # describes the cryptographic capabilities of a
113
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKey}. A given key can only be used
114
- # for the operations allowed by its purpose.
93
+ # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose CryptoKeyPurpose} describes the cryptographic capabilities of a
94
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKey}. A given key can only be used for the operations allowed by
95
+ # its purpose. For more information, see
96
+ # [Key purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes).
115
97
  module CryptoKeyPurpose
116
98
  # Not specified.
117
99
  CRYPTO_KEY_PURPOSE_UNSPECIFIED = 0
118
100
 
119
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
120
- # with {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} and
101
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used with
102
+ # {Google::Cloud::Kms::V1::KeyManagementService::Encrypt Encrypt} and
121
103
  # {Google::Cloud::Kms::V1::KeyManagementService::Decrypt Decrypt}.
122
104
  ENCRYPT_DECRYPT = 1
123
105
 
124
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
125
- # with
126
- # {Google::Cloud::Kms::V1::KeyManagementService::AsymmetricSign AsymmetricSign}
127
- # and
106
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used with
107
+ # {Google::Cloud::Kms::V1::KeyManagementService::AsymmetricSign AsymmetricSign} and
128
108
  # {Google::Cloud::Kms::V1::KeyManagementService::GetPublicKey GetPublicKey}.
129
109
  ASYMMETRIC_SIGN = 5
130
110
 
131
- # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
132
- # with
133
- # {Google::Cloud::Kms::V1::KeyManagementService::AsymmetricDecrypt AsymmetricDecrypt}
134
- # and
111
+ # {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used with
112
+ # {Google::Cloud::Kms::V1::KeyManagementService::AsymmetricDecrypt AsymmetricDecrypt} and
135
113
  # {Google::Cloud::Kms::V1::KeyManagementService::GetPublicKey GetPublicKey}.
136
114
  ASYMMETRIC_DECRYPT = 6
137
115
  end
138
116
  end
139
117
 
140
- # A {Google::Cloud::Kms::V1::CryptoKeyVersionTemplate CryptoKeyVersionTemplate}
141
- # specifies the properties to use when creating a new
142
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, either manually
143
- # with
144
- # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion}
145
- # or automatically as a result of auto-rotation.
118
+ # A {Google::Cloud::Kms::V1::CryptoKeyVersionTemplate CryptoKeyVersionTemplate} specifies the properties to use when creating
119
+ # a new {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, either manually with
120
+ # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion} or
121
+ # automatically as a result of auto-rotation.
146
122
  # @!attribute [rw] protection_level
147
123
  # @return [Google::Cloud::Kms::V1::ProtectionLevel]
148
- # {Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} to use when creating
149
- # a {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} based on this
150
- # template. Immutable. Defaults to
151
- # {Google::Cloud::Kms::V1::ProtectionLevel::SOFTWARE SOFTWARE}.
124
+ # {Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} to use when creating a {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} based on
125
+ # this template. Immutable. Defaults to {Google::Cloud::Kms::V1::ProtectionLevel::SOFTWARE SOFTWARE}.
152
126
  # @!attribute [rw] algorithm
153
127
  # @return [Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm]
154
- # Required.
155
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm Algorithm}
156
- # to use when creating a
157
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} based on this
158
- # template.
128
+ # Required. {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm Algorithm} to use
129
+ # when creating a {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} based on this template.
159
130
  #
160
131
  # For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
161
- # this field is omitted and
162
- # {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose} is
132
+ # this field is omitted and {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose} is
163
133
  # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}.
164
134
  class CryptoKeyVersionTemplate; end
165
135
 
166
- # Contains an HSM-generated attestation about a key operation.
136
+ # Contains an HSM-generated attestation about a key operation. For more
137
+ # information, see [Verifying attestations]
138
+ # (https://cloud.google.com/kms/docs/attest-key).
167
139
  # @!attribute [rw] format
168
140
  # @return [Google::Cloud::Kms::V1::KeyOperationAttestation::AttestationFormat]
169
141
  # Output only. The format of the attestation data.
@@ -172,8 +144,9 @@ module Google
172
144
  # Output only. The attestation data provided by the HSM when the key
173
145
  # operation was performed.
174
146
  class KeyOperationAttestation
175
- # Attestion formats provided by the HSM.
147
+ # Attestation formats provided by the HSM.
176
148
  module AttestationFormat
149
+ # Not specified.
177
150
  ATTESTATION_FORMAT_UNSPECIFIED = 0
178
151
 
179
152
  # Cavium HSM attestation compressed with gzip. Note that this format is
@@ -181,84 +154,83 @@ module Google
181
154
  CAVIUM_V1_COMPRESSED = 3
182
155
 
183
156
  # Cavium HSM attestation V2 compressed with gzip. This is a new format
184
- # Introduced in Cavium's version 3.2-08
157
+ # introduced in Cavium's version 3.2-08.
185
158
  CAVIUM_V2_COMPRESSED = 4
186
159
  end
187
160
  end
188
161
 
189
- # A {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} represents an
190
- # individual cryptographic key, and the associated key material.
162
+ # A {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} represents an individual cryptographic key, and the
163
+ # associated key material.
191
164
  #
192
- # An
193
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
194
- # version can be used for cryptographic operations.
165
+ # An {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED} version can be
166
+ # used for cryptographic operations.
195
167
  #
196
168
  # For security reasons, the raw cryptographic key material represented by a
197
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} can never be viewed
198
- # or exported. It can only be used to encrypt, decrypt, or sign data when an
199
- # authorized user or application invokes Cloud KMS.
169
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} can never be viewed or exported. It can only be used to
170
+ # encrypt, decrypt, or sign data when an authorized user or application invokes
171
+ # Cloud KMS.
200
172
  # @!attribute [rw] name
201
173
  # @return [String]
202
- # Output only. The resource name for this
203
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} in the format
174
+ # Output only. The resource name for this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} in the format
204
175
  # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
205
176
  # @!attribute [rw] state
206
177
  # @return [Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState]
207
- # The current state of the
208
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
178
+ # The current state of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
209
179
  # @!attribute [rw] protection_level
210
180
  # @return [Google::Cloud::Kms::V1::ProtectionLevel]
211
- # Output only. The {Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel}
212
- # describing how crypto operations are performed with this
213
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
181
+ # Output only. The {Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} describing how crypto operations are
182
+ # performed with this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
214
183
  # @!attribute [rw] algorithm
215
184
  # @return [Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm]
216
- # Output only. The
217
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm CryptoKeyVersionAlgorithm}
218
- # that this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}
219
- # supports.
185
+ # Output only. The {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm CryptoKeyVersionAlgorithm} that this
186
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} supports.
220
187
  # @!attribute [rw] attestation
221
188
  # @return [Google::Cloud::Kms::V1::KeyOperationAttestation]
222
189
  # Output only. Statement that was generated and signed by the HSM at key
223
190
  # creation time. Use this statement to verify attributes of the key as stored
224
191
  # on the HSM, independently of Google. Only provided for key versions with
225
- # {Google::Cloud::Kms::V1::CryptoKeyVersion#protection_level protection_level}
226
- # {Google::Cloud::Kms::V1::ProtectionLevel::HSM HSM}.
192
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion#protection_level protection_level} {Google::Cloud::Kms::V1::ProtectionLevel::HSM HSM}.
227
193
  # @!attribute [rw] create_time
228
194
  # @return [Google::Protobuf::Timestamp]
229
- # Output only. The time at which this
230
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} was created.
195
+ # Output only. The time at which this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} was created.
231
196
  # @!attribute [rw] generate_time
232
197
  # @return [Google::Protobuf::Timestamp]
233
- # Output only. The time this
234
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material was
198
+ # Output only. The time this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material was
235
199
  # generated.
236
200
  # @!attribute [rw] destroy_time
237
201
  # @return [Google::Protobuf::Timestamp]
238
- # Output only. The time this
239
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material is
240
- # scheduled for destruction. Only present if
241
- # {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
202
+ # Output only. The time this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material is scheduled
203
+ # for destruction. Only present if {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
242
204
  # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROY_SCHEDULED DESTROY_SCHEDULED}.
243
205
  # @!attribute [rw] destroy_event_time
244
206
  # @return [Google::Protobuf::Timestamp]
245
207
  # Output only. The time this CryptoKeyVersion's key material was
246
- # destroyed. Only present if
247
- # {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
208
+ # destroyed. Only present if {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
248
209
  # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROYED DESTROYED}.
210
+ # @!attribute [rw] import_job
211
+ # @return [String]
212
+ # Output only. The name of the {Google::Cloud::Kms::V1::ImportJob ImportJob} used to import this
213
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Only present if the underlying key material was
214
+ # imported.
215
+ # @!attribute [rw] import_time
216
+ # @return [Google::Protobuf::Timestamp]
217
+ # Output only. The time at which this {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material
218
+ # was imported.
219
+ # @!attribute [rw] import_failure_reason
220
+ # @return [String]
221
+ # Output only. The root cause of an import failure. Only present if
222
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
223
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::IMPORT_FAILED IMPORT_FAILED}.
249
224
  class CryptoKeyVersion
250
- # The algorithm of the
251
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, indicating what
225
+ # The algorithm of the {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, indicating what
252
226
  # parameters must be used for each cryptographic operation.
253
227
  #
254
228
  # The
255
229
  # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm::GOOGLE_SYMMETRIC_ENCRYPTION GOOGLE_SYMMETRIC_ENCRYPTION}
256
- # algorithm is usable with
257
- # {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose}
230
+ # algorithm is usable with {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose}
258
231
  # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}.
259
232
  #
260
- # Algorithms beginning with "RSA_SIGN_" are usable with
261
- # {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose}
233
+ # Algorithms beginning with "RSA_SIGN_" are usable with {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose}
262
234
  # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ASYMMETRIC_SIGN ASYMMETRIC_SIGN}.
263
235
  #
264
236
  # The fields in the name after "RSA_SIGN_" correspond to the following
@@ -276,12 +248,14 @@ module Google
276
248
  # The fields in the name after "RSA_DECRYPT_" correspond to the following
277
249
  # parameters: padding algorithm, modulus bit length, and digest algorithm.
278
250
  #
279
- # Algorithms beginning with "EC_SIGN_" are usable with
280
- # {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose}
251
+ # Algorithms beginning with "EC_SIGN_" are usable with {Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey#purpose}
281
252
  # {Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ASYMMETRIC_SIGN ASYMMETRIC_SIGN}.
282
253
  #
283
254
  # The fields in the name after "EC_SIGN_" correspond to the following
284
255
  # parameters: elliptic curve, digest algorithm.
256
+ #
257
+ # For more information, see [Key purposes and algorithms]
258
+ # (https://cloud.google.com/kms/docs/algorithms).
285
259
  module CryptoKeyVersionAlgorithm
286
260
  # Not specified.
287
261
  CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED = 0
@@ -298,6 +272,9 @@ module Google
298
272
  # RSASSA-PSS 4096 bit key with a SHA256 digest.
299
273
  RSA_SIGN_PSS_4096_SHA256 = 4
300
274
 
275
+ # RSASSA-PSS 4096 bit key with a SHA512 digest.
276
+ RSA_SIGN_PSS_4096_SHA512 = 15
277
+
301
278
  # RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
302
279
  RSA_SIGN_PKCS1_2048_SHA256 = 5
303
280
 
@@ -307,6 +284,9 @@ module Google
307
284
  # RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
308
285
  RSA_SIGN_PKCS1_4096_SHA256 = 7
309
286
 
287
+ # RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
288
+ RSA_SIGN_PKCS1_4096_SHA512 = 16
289
+
310
290
  # RSAES-OAEP 2048 bit key with a SHA256 digest.
311
291
  RSA_DECRYPT_OAEP_2048_SHA256 = 8
312
292
 
@@ -316,6 +296,9 @@ module Google
316
296
  # RSAES-OAEP 4096 bit key with a SHA256 digest.
317
297
  RSA_DECRYPT_OAEP_4096_SHA256 = 10
318
298
 
299
+ # RSAES-OAEP 4096 bit key with a SHA512 digest.
300
+ RSA_DECRYPT_OAEP_4096_SHA512 = 17
301
+
319
302
  # ECDSA on the NIST P-256 curve with a SHA256 digest.
320
303
  EC_SIGN_P256_SHA256 = 12
321
304
 
@@ -323,26 +306,21 @@ module Google
323
306
  EC_SIGN_P384_SHA384 = 13
324
307
  end
325
308
 
326
- # The state of a {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion},
327
- # indicating if it can be used.
309
+ # The state of a {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, indicating if it can be used.
328
310
  module CryptoKeyVersionState
329
311
  # Not specified.
330
312
  CRYPTO_KEY_VERSION_STATE_UNSPECIFIED = 0
331
313
 
332
314
  # This version is still being generated. It may not be used, enabled,
333
315
  # disabled, or destroyed yet. Cloud KMS will automatically mark this
334
- # version
335
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
336
- # as soon as the version is ready.
316
+ # version {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED} as soon as the version is ready.
337
317
  PENDING_GENERATION = 5
338
318
 
339
319
  # This version may be used for cryptographic operations.
340
320
  ENABLED = 1
341
321
 
342
322
  # This version may not be used, but the key material is still available,
343
- # and the version can be placed back into the
344
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
345
- # state.
323
+ # and the version can be placed back into the {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED} state.
346
324
  DISABLED = 2
347
325
 
348
326
  # This version is destroyed, and the key material is no longer stored.
@@ -352,34 +330,37 @@ module Google
352
330
  # This version is scheduled for destruction, and will be destroyed soon.
353
331
  # Call
354
332
  # {Google::Cloud::Kms::V1::KeyManagementService::RestoreCryptoKeyVersion RestoreCryptoKeyVersion}
355
- # to put it back into the
356
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DISABLED DISABLED}
357
- # state.
333
+ # to put it back into the {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DISABLED DISABLED} state.
358
334
  DESTROY_SCHEDULED = 4
335
+
336
+ # This version is still being imported. It may not be used, enabled,
337
+ # disabled, or destroyed yet. Cloud KMS will automatically mark this
338
+ # version {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED} as soon as the version is ready.
339
+ PENDING_IMPORT = 6
340
+
341
+ # This version was not imported successfully. It may not be used, enabled,
342
+ # disabled, or destroyed. The submitted key material has been discarded.
343
+ # Additional details can be found in
344
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion#import_failure_reason CryptoKeyVersion#import_failure_reason}.
345
+ IMPORT_FAILED = 7
359
346
  end
360
347
 
361
- # A view for {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}s.
362
- # Controls the level of detail returned for
363
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} in
364
- # {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeyVersions KeyManagementService::ListCryptoKeyVersions}
365
- # and
348
+ # A view for {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}s. Controls the level of detail returned
349
+ # for {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} in
350
+ # {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeyVersions KeyManagementService::ListCryptoKeyVersions} and
366
351
  # {Google::Cloud::Kms::V1::KeyManagementService::ListCryptoKeys KeyManagementService::ListCryptoKeys}.
367
352
  module CryptoKeyVersionView
368
- # Default view for each
369
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Does not
370
- # include the
371
- # {Google::Cloud::Kms::V1::CryptoKeyVersion#attestation attestation} field.
353
+ # Default view for each {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Does not include
354
+ # the {Google::Cloud::Kms::V1::CryptoKeyVersion#attestation attestation} field.
372
355
  CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED = 0
373
356
 
374
- # Provides all fields in each
375
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, including the
357
+ # Provides all fields in each {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, including the
376
358
  # {Google::Cloud::Kms::V1::CryptoKeyVersion#attestation attestation}.
377
359
  FULL = 1
378
360
  end
379
361
  end
380
362
 
381
- # The public key for a given
382
- # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Obtained via
363
+ # The public key for a given {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Obtained via
383
364
  # {Google::Cloud::Kms::V1::KeyManagementService::GetPublicKey GetPublicKey}.
384
365
  # @!attribute [rw] pem
385
366
  # @return [String]
@@ -390,13 +371,141 @@ module Google
390
371
  # (https://tools.ietf.org/html/rfc7468#section-13).
391
372
  # @!attribute [rw] algorithm
392
373
  # @return [Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm]
393
- # The
394
- # {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm Algorithm}
395
- # associated with this key.
374
+ # The {Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm Algorithm} associated
375
+ # with this key.
396
376
  class PublicKey; end
397
377
 
398
- # {Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} specifies how
399
- # cryptographic operations are performed.
378
+ # An {Google::Cloud::Kms::V1::ImportJob ImportJob} can be used to create {Google::Cloud::Kms::V1::CryptoKey CryptoKeys} and
379
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} using pre-existing key material,
380
+ # generated outside of Cloud KMS.
381
+ #
382
+ # When an {Google::Cloud::Kms::V1::ImportJob ImportJob} is created, Cloud KMS will generate a "wrapping key",
383
+ # which is a public/private key pair. You use the wrapping key to encrypt (also
384
+ # known as wrap) the pre-existing key material to protect it during the import
385
+ # process. The nature of the wrapping key depends on the choice of
386
+ # {Google::Cloud::Kms::V1::ImportJob#import_method import_method}. When the wrapping key generation
387
+ # is complete, the {Google::Cloud::Kms::V1::ImportJob#state state} will be set to
388
+ # {Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} and the {Google::Cloud::Kms::V1::ImportJob#public_key public_key}
389
+ # can be fetched. The fetched public key can then be used to wrap your
390
+ # pre-existing key material.
391
+ #
392
+ # Once the key material is wrapped, it can be imported into a new
393
+ # {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} in an existing {Google::Cloud::Kms::V1::CryptoKey CryptoKey} by calling
394
+ # {Google::Cloud::Kms::V1::KeyManagementService::ImportCryptoKeyVersion ImportCryptoKeyVersion}.
395
+ # Multiple {Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} can be imported with a single
396
+ # {Google::Cloud::Kms::V1::ImportJob ImportJob}. Cloud KMS uses the private key portion of the wrapping key to
397
+ # unwrap the key material. Only Cloud KMS has access to the private key.
398
+ #
399
+ # An {Google::Cloud::Kms::V1::ImportJob ImportJob} expires 3 days after it is created. Once expired, Cloud KMS
400
+ # will no longer be able to import or unwrap any key material that was wrapped
401
+ # with the {Google::Cloud::Kms::V1::ImportJob ImportJob}'s public key.
402
+ #
403
+ # For more information, see
404
+ # [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).
405
+ # @!attribute [rw] name
406
+ # @return [String]
407
+ # Output only. The resource name for this {Google::Cloud::Kms::V1::ImportJob ImportJob} in the format
408
+ # `projects/*/locations/*/keyRings/*/importJobs/*`.
409
+ # @!attribute [rw] import_method
410
+ # @return [Google::Cloud::Kms::V1::ImportJob::ImportMethod]
411
+ # Required and immutable. The wrapping method to be used for incoming
412
+ # key material.
413
+ # @!attribute [rw] protection_level
414
+ # @return [Google::Cloud::Kms::V1::ProtectionLevel]
415
+ # Required and immutable. The protection level of the {Google::Cloud::Kms::V1::ImportJob ImportJob}. This
416
+ # must match the
417
+ # {Google::Cloud::Kms::V1::CryptoKeyVersionTemplate#protection_level protection_level} of the
418
+ # {Google::Cloud::Kms::V1::CryptoKey#version_template version_template} on the {Google::Cloud::Kms::V1::CryptoKey CryptoKey} you
419
+ # attempt to import into.
420
+ # @!attribute [rw] create_time
421
+ # @return [Google::Protobuf::Timestamp]
422
+ # Output only. The time at which this {Google::Cloud::Kms::V1::ImportJob ImportJob} was created.
423
+ # @!attribute [rw] generate_time
424
+ # @return [Google::Protobuf::Timestamp]
425
+ # Output only. The time this {Google::Cloud::Kms::V1::ImportJob ImportJob}'s key material was generated.
426
+ # @!attribute [rw] expire_time
427
+ # @return [Google::Protobuf::Timestamp]
428
+ # Output only. The time at which this {Google::Cloud::Kms::V1::ImportJob ImportJob} is scheduled for
429
+ # expiration and can no longer be used to import key material.
430
+ # @!attribute [rw] expire_event_time
431
+ # @return [Google::Protobuf::Timestamp]
432
+ # Output only. The time this {Google::Cloud::Kms::V1::ImportJob ImportJob} expired. Only present if
433
+ # {Google::Cloud::Kms::V1::ImportJob#state state} is {Google::Cloud::Kms::V1::ImportJob::ImportJobState::EXPIRED EXPIRED}.
434
+ # @!attribute [rw] state
435
+ # @return [Google::Cloud::Kms::V1::ImportJob::ImportJobState]
436
+ # Output only. The current state of the {Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if it can
437
+ # be used.
438
+ # @!attribute [rw] public_key
439
+ # @return [Google::Cloud::Kms::V1::ImportJob::WrappingPublicKey]
440
+ # Output only. The public key with which to wrap key material prior to
441
+ # import. Only returned if {Google::Cloud::Kms::V1::ImportJob#state state} is
442
+ # {Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE}.
443
+ # @!attribute [rw] attestation
444
+ # @return [Google::Cloud::Kms::V1::KeyOperationAttestation]
445
+ # Output only. Statement that was generated and signed by the key creator
446
+ # (for example, an HSM) at key creation time. Use this statement to verify
447
+ # attributes of the key as stored on the HSM, independently of Google.
448
+ # Only present if the chosen {Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} is one with a protection
449
+ # level of {Google::Cloud::Kms::V1::ProtectionLevel::HSM HSM}.
450
+ class ImportJob
451
+ # The public key component of the wrapping key. For details of the type of
452
+ # key this public key corresponds to, see the {Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
453
+ # @!attribute [rw] pem
454
+ # @return [String]
455
+ # The public key, encoded in PEM format. For more information, see the [RFC
456
+ # 7468](https://tools.ietf.org/html/rfc7468) sections for [General
457
+ # Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
458
+ # [Textual Encoding of Subject Public Key Info]
459
+ # (https://tools.ietf.org/html/rfc7468#section-13).
460
+ class WrappingPublicKey; end
461
+
462
+ # The state of the {Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if it can be used.
463
+ module ImportJobState
464
+ # Not specified.
465
+ IMPORT_JOB_STATE_UNSPECIFIED = 0
466
+
467
+ # The wrapping key for this job is still being generated. It may not be
468
+ # used. Cloud KMS will automatically mark this job as
469
+ # {Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as the wrapping key is generated.
470
+ PENDING_GENERATION = 1
471
+
472
+ # This job may be used in
473
+ # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKey CreateCryptoKey} and
474
+ # {Google::Cloud::Kms::V1::KeyManagementService::CreateCryptoKeyVersion CreateCryptoKeyVersion}
475
+ # requests.
476
+ ACTIVE = 2
477
+
478
+ # This job can no longer be used and may not leave this state once entered.
479
+ EXPIRED = 3
480
+ end
481
+
482
+ # {Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the key wrapping method chosen for this
483
+ # {Google::Cloud::Kms::V1::ImportJob ImportJob}.
484
+ module ImportMethod
485
+ # Not specified.
486
+ IMPORT_METHOD_UNSPECIFIED = 0
487
+
488
+ # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
489
+ # scheme defined in the PKCS #11 standard. In summary, this involves
490
+ # wrapping the raw key with an ephemeral AES key, and wrapping the
491
+ # ephemeral AES key with a 3072 bit RSA key. For more details, see
492
+ # [RSA AES key wrap
493
+ # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
494
+ RSA_OAEP_3072_SHA1_AES_256 = 1
495
+
496
+ # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
497
+ # scheme defined in the PKCS #11 standard. In summary, this involves
498
+ # wrapping the raw key with an ephemeral AES key, and wrapping the
499
+ # ephemeral AES key with a 4096 bit RSA key. For more details, see
500
+ # [RSA AES key wrap
501
+ # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
502
+ RSA_OAEP_4096_SHA1_AES_256 = 2
503
+ end
504
+ end
505
+
506
+ # {Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} specifies how cryptographic operations are performed.
507
+ # For more information, see [Protection levels]
508
+ # (https://cloud.google.com/kms/docs/algorithms#protection_levels).
400
509
  module ProtectionLevel
401
510
  # Not specified.
402
511
  PROTECTION_LEVEL_UNSPECIFIED = 0