google-cloud-kms-inventory-v1 0.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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.yardopts +12 -0
  3. data/AUTHENTICATION.md +149 -0
  4. data/LICENSE.md +201 -0
  5. data/README.md +144 -0
  6. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service/client.rb +406 -0
  7. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service/credentials.rb +49 -0
  8. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service/paths.rb +49 -0
  9. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service/rest/client.rb +359 -0
  10. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service/rest/service_stub.rb +109 -0
  11. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service/rest.rb +54 -0
  12. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service.rb +57 -0
  13. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service_pb.rb +37 -0
  14. data/lib/google/cloud/kms/inventory/v1/key_dashboard_service_services_pb.rb +49 -0
  15. data/lib/google/cloud/kms/inventory/v1/key_tracking_service/client.rb +514 -0
  16. data/lib/google/cloud/kms/inventory/v1/key_tracking_service/credentials.rb +49 -0
  17. data/lib/google/cloud/kms/inventory/v1/key_tracking_service/paths.rb +98 -0
  18. data/lib/google/cloud/kms/inventory/v1/key_tracking_service/rest/client.rb +444 -0
  19. data/lib/google/cloud/kms/inventory/v1/key_tracking_service/rest/service_stub.rb +168 -0
  20. data/lib/google/cloud/kms/inventory/v1/key_tracking_service/rest.rb +55 -0
  21. data/lib/google/cloud/kms/inventory/v1/key_tracking_service.rb +58 -0
  22. data/lib/google/cloud/kms/inventory/v1/key_tracking_service_pb.rb +64 -0
  23. data/lib/google/cloud/kms/inventory/v1/key_tracking_service_services_pb.rb +55 -0
  24. data/lib/google/cloud/kms/inventory/v1/rest.rb +40 -0
  25. data/lib/google/cloud/kms/inventory/v1/version.rb +30 -0
  26. data/lib/google/cloud/kms/inventory/v1.rb +48 -0
  27. data/lib/google-cloud-kms-inventory-v1.rb +21 -0
  28. data/proto_docs/README.md +4 -0
  29. data/proto_docs/google/api/client.rb +318 -0
  30. data/proto_docs/google/api/field_behavior.rb +71 -0
  31. data/proto_docs/google/api/launch_stage.rb +71 -0
  32. data/proto_docs/google/api/resource.rb +222 -0
  33. data/proto_docs/google/cloud/kms/inventory/v1/key_dashboard_service.rb +62 -0
  34. data/proto_docs/google/cloud/kms/inventory/v1/key_tracking_service.rb +200 -0
  35. data/proto_docs/google/cloud/kms/v1/resources.rb +839 -0
  36. data/proto_docs/google/protobuf/duration.rb +98 -0
  37. data/proto_docs/google/protobuf/timestamp.rb +129 -0
  38. data/proto_docs/google/protobuf/wrappers.rb +121 -0
  39. metadata +248 -0
@@ -0,0 +1,839 @@
1
+ # frozen_string_literal: true
2
+
3
+ # Copyright 2023 Google LLC
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # https://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ # Auto-generated by gapic-generator-ruby. DO NOT EDIT!
18
+
19
+
20
+ module Google
21
+ module Cloud
22
+ module Kms
23
+ module V1
24
+ # A {::Google::Cloud::Kms::V1::KeyRing KeyRing} is a toplevel logical grouping of
25
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys}.
26
+ # @!attribute [r] name
27
+ # @return [::String]
28
+ # Output only. The resource name for the
29
+ # {::Google::Cloud::Kms::V1::KeyRing KeyRing} in the format
30
+ # `projects/*/locations/*/keyRings/*`.
31
+ # @!attribute [r] create_time
32
+ # @return [::Google::Protobuf::Timestamp]
33
+ # Output only. The time at which this {::Google::Cloud::Kms::V1::KeyRing KeyRing}
34
+ # was created.
35
+ class KeyRing
36
+ include ::Google::Protobuf::MessageExts
37
+ extend ::Google::Protobuf::MessageExts::ClassMethods
38
+ end
39
+
40
+ # A {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} represents a logical key that
41
+ # can be used for cryptographic operations.
42
+ #
43
+ # A {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} is made up of zero or more
44
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion versions}, which represent the actual
45
+ # key material used in cryptographic operations.
46
+ # @!attribute [r] name
47
+ # @return [::String]
48
+ # Output only. The resource name for this
49
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} in the format
50
+ # `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
51
+ # @!attribute [r] primary
52
+ # @return [::Google::Cloud::Kms::V1::CryptoKeyVersion]
53
+ # Output only. A copy of the "primary"
54
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} that will be used
55
+ # by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this
56
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} is given in
57
+ # [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name].
58
+ #
59
+ # The {::Google::Cloud::Kms::V1::CryptoKey CryptoKey}'s primary version can be
60
+ # updated via
61
+ # [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion].
62
+ #
63
+ # Keys with {::Google::Cloud::Kms::V1::CryptoKey#purpose purpose}
64
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}
65
+ # may have a primary. For other keys, this field will be omitted.
66
+ # @!attribute [rw] purpose
67
+ # @return [::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose]
68
+ # Immutable. The immutable purpose of this
69
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKey}.
70
+ # @!attribute [r] create_time
71
+ # @return [::Google::Protobuf::Timestamp]
72
+ # Output only. The time at which this
73
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} was created.
74
+ # @!attribute [rw] next_rotation_time
75
+ # @return [::Google::Protobuf::Timestamp]
76
+ # At {::Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time},
77
+ # the Key Management Service will automatically:
78
+ #
79
+ # 1. Create a new version of this {::Google::Cloud::Kms::V1::CryptoKey CryptoKey}.
80
+ # 2. Mark the new version as primary.
81
+ #
82
+ # Key rotations performed manually via
83
+ # [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
84
+ # and
85
+ # [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]
86
+ # do not affect
87
+ # {::Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}.
88
+ #
89
+ # Keys with {::Google::Cloud::Kms::V1::CryptoKey#purpose purpose}
90
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}
91
+ # support automatic rotation. For other keys, this field must be omitted.
92
+ # @!attribute [rw] rotation_period
93
+ # @return [::Google::Protobuf::Duration]
94
+ # {::Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}
95
+ # will be advanced by this period when the service automatically rotates a
96
+ # key. Must be at least 24 hours and at most 876,000 hours.
97
+ #
98
+ # If {::Google::Cloud::Kms::V1::CryptoKey#rotation_period rotation_period} is
99
+ # set,
100
+ # {::Google::Cloud::Kms::V1::CryptoKey#next_rotation_time next_rotation_time}
101
+ # must also be set.
102
+ #
103
+ # Keys with {::Google::Cloud::Kms::V1::CryptoKey#purpose purpose}
104
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}
105
+ # support automatic rotation. For other keys, this field must be omitted.
106
+ # @!attribute [rw] version_template
107
+ # @return [::Google::Cloud::Kms::V1::CryptoKeyVersionTemplate]
108
+ # A template describing settings for new
109
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} instances. The
110
+ # properties of new {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}
111
+ # instances created by either
112
+ # [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
113
+ # or auto-rotation are controlled by this template.
114
+ # @!attribute [rw] labels
115
+ # @return [::Google::Protobuf::Map{::String => ::String}]
116
+ # Labels with user-defined metadata. For more information, see
117
+ # [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys).
118
+ # @!attribute [rw] import_only
119
+ # @return [::Boolean]
120
+ # Immutable. Whether this key may contain imported versions only.
121
+ # @!attribute [rw] destroy_scheduled_duration
122
+ # @return [::Google::Protobuf::Duration]
123
+ # Immutable. The period of time that versions of this key spend in the
124
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROY_SCHEDULED DESTROY_SCHEDULED}
125
+ # state before transitioning to
126
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROYED DESTROYED}.
127
+ # If not specified at creation time, the default duration is 24 hours.
128
+ # @!attribute [rw] crypto_key_backend
129
+ # @return [::String]
130
+ # Immutable. The resource name of the backend environment where the key
131
+ # material for all {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions}
132
+ # associated with this {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} reside and
133
+ # where all related cryptographic operations are performed. Only applicable
134
+ # if {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} have a
135
+ # {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} of
136
+ # [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC], with the
137
+ # resource name in the format `projects/*/locations/*/ekmConnections/*`.
138
+ # Note, this list is non-exhaustive and may apply to additional
139
+ # {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevels} in the future.
140
+ class CryptoKey
141
+ include ::Google::Protobuf::MessageExts
142
+ extend ::Google::Protobuf::MessageExts::ClassMethods
143
+
144
+ # @!attribute [rw] key
145
+ # @return [::String]
146
+ # @!attribute [rw] value
147
+ # @return [::String]
148
+ class LabelsEntry
149
+ include ::Google::Protobuf::MessageExts
150
+ extend ::Google::Protobuf::MessageExts::ClassMethods
151
+ end
152
+
153
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose CryptoKeyPurpose}
154
+ # describes the cryptographic capabilities of a
155
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKey}. A given key can only be used
156
+ # for the operations allowed by its purpose. For more information, see [Key
157
+ # purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes).
158
+ module CryptoKeyPurpose
159
+ # Not specified.
160
+ CRYPTO_KEY_PURPOSE_UNSPECIFIED = 0
161
+
162
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
163
+ # with [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and
164
+ # [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt].
165
+ ENCRYPT_DECRYPT = 1
166
+
167
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
168
+ # with
169
+ # [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]
170
+ # and
171
+ # [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
172
+ ASYMMETRIC_SIGN = 5
173
+
174
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
175
+ # with
176
+ # [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]
177
+ # and
178
+ # [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
179
+ ASYMMETRIC_DECRYPT = 6
180
+
181
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} with this purpose may be used
182
+ # with [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign].
183
+ MAC = 9
184
+ end
185
+ end
186
+
187
+ # A {::Google::Cloud::Kms::V1::CryptoKeyVersionTemplate CryptoKeyVersionTemplate}
188
+ # specifies the properties to use when creating a new
189
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, either manually
190
+ # with
191
+ # [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
192
+ # or automatically as a result of auto-rotation.
193
+ # @!attribute [rw] protection_level
194
+ # @return [::Google::Cloud::Kms::V1::ProtectionLevel]
195
+ # {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} to use when creating
196
+ # a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} based on this
197
+ # template. Immutable. Defaults to
198
+ # {::Google::Cloud::Kms::V1::ProtectionLevel::SOFTWARE SOFTWARE}.
199
+ # @!attribute [rw] algorithm
200
+ # @return [::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm]
201
+ # Required.
202
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm Algorithm}
203
+ # to use when creating a
204
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} based on this
205
+ # template.
206
+ #
207
+ # For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
208
+ # this field is omitted and
209
+ # {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose} is
210
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}.
211
+ class CryptoKeyVersionTemplate
212
+ include ::Google::Protobuf::MessageExts
213
+ extend ::Google::Protobuf::MessageExts::ClassMethods
214
+ end
215
+
216
+ # Contains an HSM-generated attestation about a key operation. For more
217
+ # information, see [Verifying attestations]
218
+ # (https://cloud.google.com/kms/docs/attest-key).
219
+ # @!attribute [r] format
220
+ # @return [::Google::Cloud::Kms::V1::KeyOperationAttestation::AttestationFormat]
221
+ # Output only. The format of the attestation data.
222
+ # @!attribute [r] content
223
+ # @return [::String]
224
+ # Output only. The attestation data provided by the HSM when the key
225
+ # operation was performed.
226
+ # @!attribute [r] cert_chains
227
+ # @return [::Google::Cloud::Kms::V1::KeyOperationAttestation::CertificateChains]
228
+ # Output only. The certificate chains needed to validate the attestation
229
+ class KeyOperationAttestation
230
+ include ::Google::Protobuf::MessageExts
231
+ extend ::Google::Protobuf::MessageExts::ClassMethods
232
+
233
+ # Certificate chains needed to verify the attestation.
234
+ # Certificates in chains are PEM-encoded and are ordered based on
235
+ # https://tools.ietf.org/html/rfc5246#section-7.4.2.
236
+ # @!attribute [rw] cavium_certs
237
+ # @return [::Array<::String>]
238
+ # Cavium certificate chain corresponding to the attestation.
239
+ # @!attribute [rw] google_card_certs
240
+ # @return [::Array<::String>]
241
+ # Google card certificate chain corresponding to the attestation.
242
+ # @!attribute [rw] google_partition_certs
243
+ # @return [::Array<::String>]
244
+ # Google partition certificate chain corresponding to the attestation.
245
+ class CertificateChains
246
+ include ::Google::Protobuf::MessageExts
247
+ extend ::Google::Protobuf::MessageExts::ClassMethods
248
+ end
249
+
250
+ # Attestation formats provided by the HSM.
251
+ module AttestationFormat
252
+ # Not specified.
253
+ ATTESTATION_FORMAT_UNSPECIFIED = 0
254
+
255
+ # Cavium HSM attestation compressed with gzip. Note that this format is
256
+ # defined by Cavium and subject to change at any time.
257
+ #
258
+ # See
259
+ # https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html.
260
+ CAVIUM_V1_COMPRESSED = 3
261
+
262
+ # Cavium HSM attestation V2 compressed with gzip. This is a new format
263
+ # introduced in Cavium's version 3.2-08.
264
+ CAVIUM_V2_COMPRESSED = 4
265
+ end
266
+ end
267
+
268
+ # A {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} represents an
269
+ # individual cryptographic key, and the associated key material.
270
+ #
271
+ # An
272
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
273
+ # version can be used for cryptographic operations.
274
+ #
275
+ # For security reasons, the raw cryptographic key material represented by a
276
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} can never be viewed
277
+ # or exported. It can only be used to encrypt, decrypt, or sign data when an
278
+ # authorized user or application invokes Cloud KMS.
279
+ # @!attribute [r] name
280
+ # @return [::String]
281
+ # Output only. The resource name for this
282
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} in the format
283
+ # `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
284
+ # @!attribute [rw] state
285
+ # @return [::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState]
286
+ # The current state of the
287
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
288
+ # @!attribute [r] protection_level
289
+ # @return [::Google::Cloud::Kms::V1::ProtectionLevel]
290
+ # Output only. The {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel}
291
+ # describing how crypto operations are performed with this
292
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}.
293
+ # @!attribute [r] algorithm
294
+ # @return [::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm]
295
+ # Output only. The
296
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm CryptoKeyVersionAlgorithm}
297
+ # that this {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}
298
+ # supports.
299
+ # @!attribute [r] attestation
300
+ # @return [::Google::Cloud::Kms::V1::KeyOperationAttestation]
301
+ # Output only. Statement that was generated and signed by the HSM at key
302
+ # creation time. Use this statement to verify attributes of the key as stored
303
+ # on the HSM, independently of Google. Only provided for key versions with
304
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#protection_level protection_level}
305
+ # {::Google::Cloud::Kms::V1::ProtectionLevel::HSM HSM}.
306
+ # @!attribute [r] create_time
307
+ # @return [::Google::Protobuf::Timestamp]
308
+ # Output only. The time at which this
309
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} was created.
310
+ # @!attribute [r] generate_time
311
+ # @return [::Google::Protobuf::Timestamp]
312
+ # Output only. The time this
313
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material was
314
+ # generated.
315
+ # @!attribute [r] destroy_time
316
+ # @return [::Google::Protobuf::Timestamp]
317
+ # Output only. The time this
318
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material is
319
+ # scheduled for destruction. Only present if
320
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
321
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROY_SCHEDULED DESTROY_SCHEDULED}.
322
+ # @!attribute [r] destroy_event_time
323
+ # @return [::Google::Protobuf::Timestamp]
324
+ # Output only. The time this CryptoKeyVersion's key material was
325
+ # destroyed. Only present if
326
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
327
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DESTROYED DESTROYED}.
328
+ # @!attribute [r] import_job
329
+ # @return [::String]
330
+ # Output only. The name of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}
331
+ # used in the most recent import of this
332
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Only present if
333
+ # the underlying key material was imported.
334
+ # @!attribute [r] import_time
335
+ # @return [::Google::Protobuf::Timestamp]
336
+ # Output only. The time at which this
337
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}'s key material was
338
+ # most recently imported.
339
+ # @!attribute [r] import_failure_reason
340
+ # @return [::String]
341
+ # Output only. The root cause of the most recent import failure. Only present
342
+ # if {::Google::Cloud::Kms::V1::CryptoKeyVersion#state state} is
343
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::IMPORT_FAILED IMPORT_FAILED}.
344
+ # @!attribute [rw] external_protection_level_options
345
+ # @return [::Google::Cloud::Kms::V1::ExternalProtectionLevelOptions]
346
+ # ExternalProtectionLevelOptions stores a group of additional fields for
347
+ # configuring a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} that
348
+ # are specific to the
349
+ # {::Google::Cloud::Kms::V1::ProtectionLevel::EXTERNAL EXTERNAL} protection level
350
+ # and {::Google::Cloud::Kms::V1::ProtectionLevel::EXTERNAL_VPC EXTERNAL_VPC}
351
+ # protection levels.
352
+ # @!attribute [r] reimport_eligible
353
+ # @return [::Boolean]
354
+ # Output only. Whether or not this key version is eligible for reimport, by
355
+ # being specified as a target in
356
+ # [ImportCryptoKeyVersionRequest.crypto_key_version][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.crypto_key_version].
357
+ class CryptoKeyVersion
358
+ include ::Google::Protobuf::MessageExts
359
+ extend ::Google::Protobuf::MessageExts::ClassMethods
360
+
361
+ # The algorithm of the
362
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, indicating what
363
+ # parameters must be used for each cryptographic operation.
364
+ #
365
+ # The
366
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm::GOOGLE_SYMMETRIC_ENCRYPTION GOOGLE_SYMMETRIC_ENCRYPTION}
367
+ # algorithm is usable with
368
+ # {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose}
369
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ENCRYPT_DECRYPT ENCRYPT_DECRYPT}.
370
+ #
371
+ # Algorithms beginning with "RSA_SIGN_" are usable with
372
+ # {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose}
373
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ASYMMETRIC_SIGN ASYMMETRIC_SIGN}.
374
+ #
375
+ # The fields in the name after "RSA_SIGN_" correspond to the following
376
+ # parameters: padding algorithm, modulus bit length, and digest algorithm.
377
+ #
378
+ # For PSS, the salt length used is equal to the length of digest
379
+ # algorithm. For example,
380
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm::RSA_SIGN_PSS_2048_SHA256 RSA_SIGN_PSS_2048_SHA256}
381
+ # will use PSS with a salt length of 256 bits or 32 bytes.
382
+ #
383
+ # Algorithms beginning with "RSA_DECRYPT_" are usable with
384
+ # {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose}
385
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ASYMMETRIC_DECRYPT ASYMMETRIC_DECRYPT}.
386
+ #
387
+ # The fields in the name after "RSA_DECRYPT_" correspond to the following
388
+ # parameters: padding algorithm, modulus bit length, and digest algorithm.
389
+ #
390
+ # Algorithms beginning with "EC_SIGN_" are usable with
391
+ # {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose}
392
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::ASYMMETRIC_SIGN ASYMMETRIC_SIGN}.
393
+ #
394
+ # The fields in the name after "EC_SIGN_" correspond to the following
395
+ # parameters: elliptic curve, digest algorithm.
396
+ #
397
+ # Algorithms beginning with "HMAC_" are usable with
398
+ # {::Google::Cloud::Kms::V1::CryptoKey#purpose CryptoKey.purpose}
399
+ # {::Google::Cloud::Kms::V1::CryptoKey::CryptoKeyPurpose::MAC MAC}.
400
+ #
401
+ # The suffix following "HMAC_" corresponds to the hash algorithm being used
402
+ # (eg. SHA256).
403
+ #
404
+ # For more information, see [Key purposes and algorithms]
405
+ # (https://cloud.google.com/kms/docs/algorithms).
406
+ module CryptoKeyVersionAlgorithm
407
+ # Not specified.
408
+ CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED = 0
409
+
410
+ # Creates symmetric encryption keys.
411
+ GOOGLE_SYMMETRIC_ENCRYPTION = 1
412
+
413
+ # RSASSA-PSS 2048 bit key with a SHA256 digest.
414
+ RSA_SIGN_PSS_2048_SHA256 = 2
415
+
416
+ # RSASSA-PSS 3072 bit key with a SHA256 digest.
417
+ RSA_SIGN_PSS_3072_SHA256 = 3
418
+
419
+ # RSASSA-PSS 4096 bit key with a SHA256 digest.
420
+ RSA_SIGN_PSS_4096_SHA256 = 4
421
+
422
+ # RSASSA-PSS 4096 bit key with a SHA512 digest.
423
+ RSA_SIGN_PSS_4096_SHA512 = 15
424
+
425
+ # RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
426
+ RSA_SIGN_PKCS1_2048_SHA256 = 5
427
+
428
+ # RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
429
+ RSA_SIGN_PKCS1_3072_SHA256 = 6
430
+
431
+ # RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
432
+ RSA_SIGN_PKCS1_4096_SHA256 = 7
433
+
434
+ # RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
435
+ RSA_SIGN_PKCS1_4096_SHA512 = 16
436
+
437
+ # RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.
438
+ RSA_SIGN_RAW_PKCS1_2048 = 28
439
+
440
+ # RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.
441
+ RSA_SIGN_RAW_PKCS1_3072 = 29
442
+
443
+ # RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.
444
+ RSA_SIGN_RAW_PKCS1_4096 = 30
445
+
446
+ # RSAES-OAEP 2048 bit key with a SHA256 digest.
447
+ RSA_DECRYPT_OAEP_2048_SHA256 = 8
448
+
449
+ # RSAES-OAEP 3072 bit key with a SHA256 digest.
450
+ RSA_DECRYPT_OAEP_3072_SHA256 = 9
451
+
452
+ # RSAES-OAEP 4096 bit key with a SHA256 digest.
453
+ RSA_DECRYPT_OAEP_4096_SHA256 = 10
454
+
455
+ # RSAES-OAEP 4096 bit key with a SHA512 digest.
456
+ RSA_DECRYPT_OAEP_4096_SHA512 = 17
457
+
458
+ # RSAES-OAEP 2048 bit key with a SHA1 digest.
459
+ RSA_DECRYPT_OAEP_2048_SHA1 = 37
460
+
461
+ # RSAES-OAEP 3072 bit key with a SHA1 digest.
462
+ RSA_DECRYPT_OAEP_3072_SHA1 = 38
463
+
464
+ # RSAES-OAEP 4096 bit key with a SHA1 digest.
465
+ RSA_DECRYPT_OAEP_4096_SHA1 = 39
466
+
467
+ # ECDSA on the NIST P-256 curve with a SHA256 digest.
468
+ EC_SIGN_P256_SHA256 = 12
469
+
470
+ # ECDSA on the NIST P-384 curve with a SHA384 digest.
471
+ EC_SIGN_P384_SHA384 = 13
472
+
473
+ # ECDSA on the non-NIST secp256k1 curve. This curve is only supported for
474
+ # HSM protection level.
475
+ EC_SIGN_SECP256K1_SHA256 = 31
476
+
477
+ # HMAC-SHA256 signing with a 256 bit key.
478
+ HMAC_SHA256 = 32
479
+
480
+ # HMAC-SHA1 signing with a 160 bit key.
481
+ HMAC_SHA1 = 33
482
+
483
+ # HMAC-SHA384 signing with a 384 bit key.
484
+ HMAC_SHA384 = 34
485
+
486
+ # HMAC-SHA512 signing with a 512 bit key.
487
+ HMAC_SHA512 = 35
488
+
489
+ # HMAC-SHA224 signing with a 224 bit key.
490
+ HMAC_SHA224 = 36
491
+
492
+ # Algorithm representing symmetric encryption by an external key manager.
493
+ EXTERNAL_SYMMETRIC_ENCRYPTION = 18
494
+ end
495
+
496
+ # The state of a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion},
497
+ # indicating if it can be used.
498
+ module CryptoKeyVersionState
499
+ # Not specified.
500
+ CRYPTO_KEY_VERSION_STATE_UNSPECIFIED = 0
501
+
502
+ # This version is still being generated. It may not be used, enabled,
503
+ # disabled, or destroyed yet. Cloud KMS will automatically mark this
504
+ # version
505
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
506
+ # as soon as the version is ready.
507
+ PENDING_GENERATION = 5
508
+
509
+ # This version may be used for cryptographic operations.
510
+ ENABLED = 1
511
+
512
+ # This version may not be used, but the key material is still available,
513
+ # and the version can be placed back into the
514
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
515
+ # state.
516
+ DISABLED = 2
517
+
518
+ # This version is destroyed, and the key material is no longer stored.
519
+ # This version may only become
520
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
521
+ # again if this version is
522
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#reimport_eligible reimport_eligible}
523
+ # and the original key material is reimported with a call to
524
+ # [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
525
+ DESTROYED = 3
526
+
527
+ # This version is scheduled for destruction, and will be destroyed soon.
528
+ # Call
529
+ # [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]
530
+ # to put it back into the
531
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::DISABLED DISABLED}
532
+ # state.
533
+ DESTROY_SCHEDULED = 4
534
+
535
+ # This version is still being imported. It may not be used, enabled,
536
+ # disabled, or destroyed yet. Cloud KMS will automatically mark this
537
+ # version
538
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionState::ENABLED ENABLED}
539
+ # as soon as the version is ready.
540
+ PENDING_IMPORT = 6
541
+
542
+ # This version was not imported successfully. It may not be used, enabled,
543
+ # disabled, or destroyed. The submitted key material has been discarded.
544
+ # Additional details can be found in
545
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#import_failure_reason CryptoKeyVersion.import_failure_reason}.
546
+ IMPORT_FAILED = 7
547
+ end
548
+
549
+ # A view for {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}s.
550
+ # Controls the level of detail returned for
551
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} in
552
+ # [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]
553
+ # and
554
+ # [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys].
555
+ module CryptoKeyVersionView
556
+ # Default view for each
557
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Does not
558
+ # include the
559
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#attestation attestation} field.
560
+ CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED = 0
561
+
562
+ # Provides all fields in each
563
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}, including the
564
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion#attestation attestation}.
565
+ FULL = 1
566
+ end
567
+ end
568
+
569
+ # The public key for a given
570
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion}. Obtained via
571
+ # [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
572
+ # @!attribute [rw] pem
573
+ # @return [::String]
574
+ # The public key, encoded in PEM format. For more information, see the
575
+ # [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for
576
+ # [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
577
+ # [Textual Encoding of Subject Public Key Info]
578
+ # (https://tools.ietf.org/html/rfc7468#section-13).
579
+ # @!attribute [rw] algorithm
580
+ # @return [::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm]
581
+ # The
582
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion::CryptoKeyVersionAlgorithm Algorithm}
583
+ # associated with this key.
584
+ # @!attribute [rw] pem_crc32c
585
+ # @return [::Google::Protobuf::Int64Value]
586
+ # Integrity verification field. A CRC32C checksum of the returned
587
+ # {::Google::Cloud::Kms::V1::PublicKey#pem PublicKey.pem}. An integrity check of
588
+ # {::Google::Cloud::Kms::V1::PublicKey#pem PublicKey.pem} can be performed by
589
+ # computing the CRC32C checksum of
590
+ # {::Google::Cloud::Kms::V1::PublicKey#pem PublicKey.pem} and comparing your
591
+ # results to this field. Discard the response in case of non-matching
592
+ # checksum values, and perform a limited number of retries. A persistent
593
+ # mismatch may indicate an issue in your computation of the CRC32C checksum.
594
+ # Note: This field is defined as int64 for reasons of compatibility across
595
+ # different languages. However, it is a non-negative integer, which will
596
+ # never exceed 2^32-1, and can be safely downconverted to uint32 in languages
597
+ # that support this type.
598
+ #
599
+ # NOTE: This field is in Beta.
600
+ # @!attribute [rw] name
601
+ # @return [::String]
602
+ # The {::Google::Cloud::Kms::V1::CryptoKeyVersion#name name} of the
603
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} public key.
604
+ # Provided here for verification.
605
+ #
606
+ # NOTE: This field is in Beta.
607
+ # @!attribute [rw] protection_level
608
+ # @return [::Google::Cloud::Kms::V1::ProtectionLevel]
609
+ # The {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} of the
610
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} public key.
611
+ class PublicKey
612
+ include ::Google::Protobuf::MessageExts
613
+ extend ::Google::Protobuf::MessageExts::ClassMethods
614
+ end
615
+
616
+ # An {::Google::Cloud::Kms::V1::ImportJob ImportJob} can be used to create
617
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKeys} and
618
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} using pre-existing
619
+ # key material, generated outside of Cloud KMS.
620
+ #
621
+ # When an {::Google::Cloud::Kms::V1::ImportJob ImportJob} is created, Cloud KMS will
622
+ # generate a "wrapping key", which is a public/private key pair. You use the
623
+ # wrapping key to encrypt (also known as wrap) the pre-existing key material to
624
+ # protect it during the import process. The nature of the wrapping key depends
625
+ # on the choice of
626
+ # {::Google::Cloud::Kms::V1::ImportJob#import_method import_method}. When the
627
+ # wrapping key generation is complete, the
628
+ # {::Google::Cloud::Kms::V1::ImportJob#state state} will be set to
629
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} and the
630
+ # {::Google::Cloud::Kms::V1::ImportJob#public_key public_key} can be fetched. The
631
+ # fetched public key can then be used to wrap your pre-existing key material.
632
+ #
633
+ # Once the key material is wrapped, it can be imported into a new
634
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} in an existing
635
+ # {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} by calling
636
+ # [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
637
+ # Multiple {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersions} can be
638
+ # imported with a single {::Google::Cloud::Kms::V1::ImportJob ImportJob}. Cloud KMS
639
+ # uses the private key portion of the wrapping key to unwrap the key material.
640
+ # Only Cloud KMS has access to the private key.
641
+ #
642
+ # An {::Google::Cloud::Kms::V1::ImportJob ImportJob} expires 3 days after it is
643
+ # created. Once expired, Cloud KMS will no longer be able to import or unwrap
644
+ # any key material that was wrapped with the
645
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob}'s public key.
646
+ #
647
+ # For more information, see
648
+ # [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).
649
+ # @!attribute [r] name
650
+ # @return [::String]
651
+ # Output only. The resource name for this
652
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob} in the format
653
+ # `projects/*/locations/*/keyRings/*/importJobs/*`.
654
+ # @!attribute [rw] import_method
655
+ # @return [::Google::Cloud::Kms::V1::ImportJob::ImportMethod]
656
+ # Required. Immutable. The wrapping method to be used for incoming key
657
+ # material.
658
+ # @!attribute [rw] protection_level
659
+ # @return [::Google::Cloud::Kms::V1::ProtectionLevel]
660
+ # Required. Immutable. The protection level of the
661
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob}. This must match the
662
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersionTemplate#protection_level protection_level}
663
+ # of the {::Google::Cloud::Kms::V1::CryptoKey#version_template version_template}
664
+ # on the {::Google::Cloud::Kms::V1::CryptoKey CryptoKey} you attempt to import
665
+ # into.
666
+ # @!attribute [r] create_time
667
+ # @return [::Google::Protobuf::Timestamp]
668
+ # Output only. The time at which this
669
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob} was created.
670
+ # @!attribute [r] generate_time
671
+ # @return [::Google::Protobuf::Timestamp]
672
+ # Output only. The time this {::Google::Cloud::Kms::V1::ImportJob ImportJob}'s key
673
+ # material was generated.
674
+ # @!attribute [r] expire_time
675
+ # @return [::Google::Protobuf::Timestamp]
676
+ # Output only. The time at which this
677
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob} is scheduled for expiration and
678
+ # can no longer be used to import key material.
679
+ # @!attribute [r] expire_event_time
680
+ # @return [::Google::Protobuf::Timestamp]
681
+ # Output only. The time this {::Google::Cloud::Kms::V1::ImportJob ImportJob}
682
+ # expired. Only present if {::Google::Cloud::Kms::V1::ImportJob#state state} is
683
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::EXPIRED EXPIRED}.
684
+ # @!attribute [r] state
685
+ # @return [::Google::Cloud::Kms::V1::ImportJob::ImportJobState]
686
+ # Output only. The current state of the
687
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if it can be used.
688
+ # @!attribute [r] public_key
689
+ # @return [::Google::Cloud::Kms::V1::ImportJob::WrappingPublicKey]
690
+ # Output only. The public key with which to wrap key material prior to
691
+ # import. Only returned if {::Google::Cloud::Kms::V1::ImportJob#state state} is
692
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE}.
693
+ # @!attribute [r] attestation
694
+ # @return [::Google::Cloud::Kms::V1::KeyOperationAttestation]
695
+ # Output only. Statement that was generated and signed by the key creator
696
+ # (for example, an HSM) at key creation time. Use this statement to verify
697
+ # attributes of the key as stored on the HSM, independently of Google.
698
+ # Only present if the chosen
699
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} is one with a
700
+ # protection level of {::Google::Cloud::Kms::V1::ProtectionLevel::HSM HSM}.
701
+ class ImportJob
702
+ include ::Google::Protobuf::MessageExts
703
+ extend ::Google::Protobuf::MessageExts::ClassMethods
704
+
705
+ # The public key component of the wrapping key. For details of the type of
706
+ # key this public key corresponds to, see the
707
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
708
+ # @!attribute [rw] pem
709
+ # @return [::String]
710
+ # The public key, encoded in PEM format. For more information, see the [RFC
711
+ # 7468](https://tools.ietf.org/html/rfc7468) sections for [General
712
+ # Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
713
+ # [Textual Encoding of Subject Public Key Info]
714
+ # (https://tools.ietf.org/html/rfc7468#section-13).
715
+ class WrappingPublicKey
716
+ include ::Google::Protobuf::MessageExts
717
+ extend ::Google::Protobuf::MessageExts::ClassMethods
718
+ end
719
+
720
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
721
+ # key wrapping method chosen for this
722
+ # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
723
+ module ImportMethod
724
+ # Not specified.
725
+ IMPORT_METHOD_UNSPECIFIED = 0
726
+
727
+ # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
728
+ # scheme defined in the PKCS #11 standard. In summary, this involves
729
+ # wrapping the raw key with an ephemeral AES key, and wrapping the
730
+ # ephemeral AES key with a 3072 bit RSA key. For more details, see
731
+ # [RSA AES key wrap
732
+ # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
733
+ RSA_OAEP_3072_SHA1_AES_256 = 1
734
+
735
+ # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
736
+ # scheme defined in the PKCS #11 standard. In summary, this involves
737
+ # wrapping the raw key with an ephemeral AES key, and wrapping the
738
+ # ephemeral AES key with a 4096 bit RSA key. For more details, see
739
+ # [RSA AES key wrap
740
+ # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
741
+ RSA_OAEP_4096_SHA1_AES_256 = 2
742
+
743
+ # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
744
+ # scheme defined in the PKCS #11 standard. In summary, this involves
745
+ # wrapping the raw key with an ephemeral AES key, and wrapping the
746
+ # ephemeral AES key with a 3072 bit RSA key. For more details, see
747
+ # [RSA AES key wrap
748
+ # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
749
+ RSA_OAEP_3072_SHA256_AES_256 = 3
750
+
751
+ # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
752
+ # scheme defined in the PKCS #11 standard. In summary, this involves
753
+ # wrapping the raw key with an ephemeral AES key, and wrapping the
754
+ # ephemeral AES key with a 4096 bit RSA key. For more details, see
755
+ # [RSA AES key wrap
756
+ # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
757
+ RSA_OAEP_4096_SHA256_AES_256 = 4
758
+
759
+ # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
760
+ # key material to be imported is wrapped directly with the RSA key. Due
761
+ # to technical limitations of RSA wrapping, this method cannot be used to
762
+ # wrap RSA keys for import.
763
+ RSA_OAEP_3072_SHA256 = 5
764
+
765
+ # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
766
+ # key material to be imported is wrapped directly with the RSA key. Due
767
+ # to technical limitations of RSA wrapping, this method cannot be used to
768
+ # wrap RSA keys for import.
769
+ RSA_OAEP_4096_SHA256 = 6
770
+ end
771
+
772
+ # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
773
+ # it can be used.
774
+ module ImportJobState
775
+ # Not specified.
776
+ IMPORT_JOB_STATE_UNSPECIFIED = 0
777
+
778
+ # The wrapping key for this job is still being generated. It may not be
779
+ # used. Cloud KMS will automatically mark this job as
780
+ # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
781
+ # the wrapping key is generated.
782
+ PENDING_GENERATION = 1
783
+
784
+ # This job may be used in
785
+ # [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey]
786
+ # and
787
+ # [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
788
+ # requests.
789
+ ACTIVE = 2
790
+
791
+ # This job can no longer be used and may not leave this state once entered.
792
+ EXPIRED = 3
793
+ end
794
+ end
795
+
796
+ # ExternalProtectionLevelOptions stores a group of additional fields for
797
+ # configuring a {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} that
798
+ # are specific to the {::Google::Cloud::Kms::V1::ProtectionLevel::EXTERNAL EXTERNAL}
799
+ # protection level and
800
+ # {::Google::Cloud::Kms::V1::ProtectionLevel::EXTERNAL_VPC EXTERNAL_VPC} protection
801
+ # levels.
802
+ # @!attribute [rw] external_key_uri
803
+ # @return [::String]
804
+ # The URI for an external resource that this
805
+ # {::Google::Cloud::Kms::V1::CryptoKeyVersion CryptoKeyVersion} represents.
806
+ # @!attribute [rw] ekm_connection_key_path
807
+ # @return [::String]
808
+ # The path to the external key material on the EKM when using
809
+ # [EkmConnection][google.cloud.kms.v1.EkmConnection] e.g., "v0/my/key". Set
810
+ # this field instead of external_key_uri when using an
811
+ # [EkmConnection][google.cloud.kms.v1.EkmConnection].
812
+ class ExternalProtectionLevelOptions
813
+ include ::Google::Protobuf::MessageExts
814
+ extend ::Google::Protobuf::MessageExts::ClassMethods
815
+ end
816
+
817
+ # {::Google::Cloud::Kms::V1::ProtectionLevel ProtectionLevel} specifies how
818
+ # cryptographic operations are performed. For more information, see [Protection
819
+ # levels] (https://cloud.google.com/kms/docs/algorithms#protection_levels).
820
+ module ProtectionLevel
821
+ # Not specified.
822
+ PROTECTION_LEVEL_UNSPECIFIED = 0
823
+
824
+ # Crypto operations are performed in software.
825
+ SOFTWARE = 1
826
+
827
+ # Crypto operations are performed in a Hardware Security Module.
828
+ HSM = 2
829
+
830
+ # Crypto operations are performed by an external key manager.
831
+ EXTERNAL = 3
832
+
833
+ # Crypto operations are performed in an EKM-over-VPC backend.
834
+ EXTERNAL_VPC = 4
835
+ end
836
+ end
837
+ end
838
+ end
839
+ end