1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/kms/v1/resources.proto
3
4package kms
5
6import (
7	fmt "fmt"
8	math "math"
9
10	proto "github.com/golang/protobuf/proto"
11	duration "github.com/golang/protobuf/ptypes/duration"
12	timestamp "github.com/golang/protobuf/ptypes/timestamp"
13	_ "google.golang.org/genproto/googleapis/api/annotations"
14)
15
16// Reference imports to suppress errors if they are not otherwise used.
17var _ = proto.Marshal
18var _ = fmt.Errorf
19var _ = math.Inf
20
21// This is a compile-time assertion to ensure that this generated file
22// is compatible with the proto package it is being compiled against.
23// A compilation error at this line likely means your copy of the
24// proto package needs to be updated.
25const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
26
27// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how
28// cryptographic operations are performed.
29type ProtectionLevel int32
30
31const (
32	// Not specified.
33	ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED ProtectionLevel = 0
34	// Crypto operations are performed in software.
35	ProtectionLevel_SOFTWARE ProtectionLevel = 1
36	// Crypto operations are performed in a Hardware Security Module.
37	ProtectionLevel_HSM ProtectionLevel = 2
38)
39
40var ProtectionLevel_name = map[int32]string{
41	0: "PROTECTION_LEVEL_UNSPECIFIED",
42	1: "SOFTWARE",
43	2: "HSM",
44}
45
46var ProtectionLevel_value = map[string]int32{
47	"PROTECTION_LEVEL_UNSPECIFIED": 0,
48	"SOFTWARE":                     1,
49	"HSM":                          2,
50}
51
52func (x ProtectionLevel) String() string {
53	return proto.EnumName(ProtectionLevel_name, int32(x))
54}
55
56func (ProtectionLevel) EnumDescriptor() ([]byte, []int) {
57	return fileDescriptor_e40e1384d35a80c5, []int{0}
58}
59
60// [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose]
61// describes the cryptographic capabilities of a
62// [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used
63// for the operations allowed by its purpose.
64type CryptoKey_CryptoKeyPurpose int32
65
66const (
67	// Not specified.
68	CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED CryptoKey_CryptoKeyPurpose = 0
69	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
70	// with [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and
71	// [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt].
72	CryptoKey_ENCRYPT_DECRYPT CryptoKey_CryptoKeyPurpose = 1
73	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
74	// with
75	// [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]
76	// and
77	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
78	CryptoKey_ASYMMETRIC_SIGN CryptoKey_CryptoKeyPurpose = 5
79	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
80	// with
81	// [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]
82	// and
83	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
84	CryptoKey_ASYMMETRIC_DECRYPT CryptoKey_CryptoKeyPurpose = 6
85)
86
87var CryptoKey_CryptoKeyPurpose_name = map[int32]string{
88	0: "CRYPTO_KEY_PURPOSE_UNSPECIFIED",
89	1: "ENCRYPT_DECRYPT",
90	5: "ASYMMETRIC_SIGN",
91	6: "ASYMMETRIC_DECRYPT",
92}
93
94var CryptoKey_CryptoKeyPurpose_value = map[string]int32{
95	"CRYPTO_KEY_PURPOSE_UNSPECIFIED": 0,
96	"ENCRYPT_DECRYPT":                1,
97	"ASYMMETRIC_SIGN":                5,
98	"ASYMMETRIC_DECRYPT":             6,
99}
100
101func (x CryptoKey_CryptoKeyPurpose) String() string {
102	return proto.EnumName(CryptoKey_CryptoKeyPurpose_name, int32(x))
103}
104
105func (CryptoKey_CryptoKeyPurpose) EnumDescriptor() ([]byte, []int) {
106	return fileDescriptor_e40e1384d35a80c5, []int{1, 0}
107}
108
109// Attestion formats provided by the HSM.
110type KeyOperationAttestation_AttestationFormat int32
111
112const (
113	KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED KeyOperationAttestation_AttestationFormat = 0
114	// Cavium HSM attestation compressed with gzip. Note that this format is
115	// defined by Cavium and subject to change at any time.
116	KeyOperationAttestation_CAVIUM_V1_COMPRESSED KeyOperationAttestation_AttestationFormat = 3
117	// Cavium HSM attestation V2 compressed with gzip. This is a new format
118	// Introduced in Cavium's version 3.2-08
119	KeyOperationAttestation_CAVIUM_V2_COMPRESSED KeyOperationAttestation_AttestationFormat = 4
120)
121
122var KeyOperationAttestation_AttestationFormat_name = map[int32]string{
123	0: "ATTESTATION_FORMAT_UNSPECIFIED",
124	3: "CAVIUM_V1_COMPRESSED",
125	4: "CAVIUM_V2_COMPRESSED",
126}
127
128var KeyOperationAttestation_AttestationFormat_value = map[string]int32{
129	"ATTESTATION_FORMAT_UNSPECIFIED": 0,
130	"CAVIUM_V1_COMPRESSED":           3,
131	"CAVIUM_V2_COMPRESSED":           4,
132}
133
134func (x KeyOperationAttestation_AttestationFormat) String() string {
135	return proto.EnumName(KeyOperationAttestation_AttestationFormat_name, int32(x))
136}
137
138func (KeyOperationAttestation_AttestationFormat) EnumDescriptor() ([]byte, []int) {
139	return fileDescriptor_e40e1384d35a80c5, []int{3, 0}
140}
141
142// The algorithm of the
143// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what
144// parameters must be used for each cryptographic operation.
145//
146// The
147// [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION]
148// algorithm is usable with
149// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
150// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
151//
152// Algorithms beginning with "RSA_SIGN_" are usable with
153// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
154// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
155//
156// The fields in the name after "RSA_SIGN_" correspond to the following
157// parameters: padding algorithm, modulus bit length, and digest algorithm.
158//
159// For PSS, the salt length used is equal to the length of digest
160// algorithm. For example,
161// [RSA_SIGN_PSS_2048_SHA256][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256]
162// will use PSS with a salt length of 256 bits or 32 bytes.
163//
164// Algorithms beginning with "RSA_DECRYPT_" are usable with
165// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
166// [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT].
167//
168// The fields in the name after "RSA_DECRYPT_" correspond to the following
169// parameters: padding algorithm, modulus bit length, and digest algorithm.
170//
171// Algorithms beginning with "EC_SIGN_" are usable with
172// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
173// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
174//
175// The fields in the name after "EC_SIGN_" correspond to the following
176// parameters: elliptic curve, digest algorithm.
177type CryptoKeyVersion_CryptoKeyVersionAlgorithm int32
178
179const (
180	// Not specified.
181	CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionAlgorithm = 0
182	// Creates symmetric encryption keys.
183	CryptoKeyVersion_GOOGLE_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 1
184	// RSASSA-PSS 2048 bit key with a SHA256 digest.
185	CryptoKeyVersion_RSA_SIGN_PSS_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 2
186	// RSASSA-PSS 3072 bit key with a SHA256 digest.
187	CryptoKeyVersion_RSA_SIGN_PSS_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 3
188	// RSASSA-PSS 4096 bit key with a SHA256 digest.
189	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 4
190	// RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
191	CryptoKeyVersion_RSA_SIGN_PKCS1_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 5
192	// RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
193	CryptoKeyVersion_RSA_SIGN_PKCS1_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 6
194	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
195	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 7
196	// RSAES-OAEP 2048 bit key with a SHA256 digest.
197	CryptoKeyVersion_RSA_DECRYPT_OAEP_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 8
198	// RSAES-OAEP 3072 bit key with a SHA256 digest.
199	CryptoKeyVersion_RSA_DECRYPT_OAEP_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 9
200	// RSAES-OAEP 4096 bit key with a SHA256 digest.
201	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 10
202	// ECDSA on the NIST P-256 curve with a SHA256 digest.
203	CryptoKeyVersion_EC_SIGN_P256_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 12
204	// ECDSA on the NIST P-384 curve with a SHA384 digest.
205	CryptoKeyVersion_EC_SIGN_P384_SHA384 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 13
206)
207
208var CryptoKeyVersion_CryptoKeyVersionAlgorithm_name = map[int32]string{
209	0:  "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED",
210	1:  "GOOGLE_SYMMETRIC_ENCRYPTION",
211	2:  "RSA_SIGN_PSS_2048_SHA256",
212	3:  "RSA_SIGN_PSS_3072_SHA256",
213	4:  "RSA_SIGN_PSS_4096_SHA256",
214	5:  "RSA_SIGN_PKCS1_2048_SHA256",
215	6:  "RSA_SIGN_PKCS1_3072_SHA256",
216	7:  "RSA_SIGN_PKCS1_4096_SHA256",
217	8:  "RSA_DECRYPT_OAEP_2048_SHA256",
218	9:  "RSA_DECRYPT_OAEP_3072_SHA256",
219	10: "RSA_DECRYPT_OAEP_4096_SHA256",
220	12: "EC_SIGN_P256_SHA256",
221	13: "EC_SIGN_P384_SHA384",
222}
223
224var CryptoKeyVersion_CryptoKeyVersionAlgorithm_value = map[string]int32{
225	"CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED": 0,
226	"GOOGLE_SYMMETRIC_ENCRYPTION":              1,
227	"RSA_SIGN_PSS_2048_SHA256":                 2,
228	"RSA_SIGN_PSS_3072_SHA256":                 3,
229	"RSA_SIGN_PSS_4096_SHA256":                 4,
230	"RSA_SIGN_PKCS1_2048_SHA256":               5,
231	"RSA_SIGN_PKCS1_3072_SHA256":               6,
232	"RSA_SIGN_PKCS1_4096_SHA256":               7,
233	"RSA_DECRYPT_OAEP_2048_SHA256":             8,
234	"RSA_DECRYPT_OAEP_3072_SHA256":             9,
235	"RSA_DECRYPT_OAEP_4096_SHA256":             10,
236	"EC_SIGN_P256_SHA256":                      12,
237	"EC_SIGN_P384_SHA384":                      13,
238}
239
240func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) String() string {
241	return proto.EnumName(CryptoKeyVersion_CryptoKeyVersionAlgorithm_name, int32(x))
242}
243
244func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) EnumDescriptor() ([]byte, []int) {
245	return fileDescriptor_e40e1384d35a80c5, []int{4, 0}
246}
247
248// The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion],
249// indicating if it can be used.
250type CryptoKeyVersion_CryptoKeyVersionState int32
251
252const (
253	// Not specified.
254	CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionState = 0
255	// This version is still being generated. It may not be used, enabled,
256	// disabled, or destroyed yet. Cloud KMS will automatically mark this
257	// version
258	// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
259	// as soon as the version is ready.
260	CryptoKeyVersion_PENDING_GENERATION CryptoKeyVersion_CryptoKeyVersionState = 5
261	// This version may be used for cryptographic operations.
262	CryptoKeyVersion_ENABLED CryptoKeyVersion_CryptoKeyVersionState = 1
263	// This version may not be used, but the key material is still available,
264	// and the version can be placed back into the
265	// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
266	// state.
267	CryptoKeyVersion_DISABLED CryptoKeyVersion_CryptoKeyVersionState = 2
268	// This version is destroyed, and the key material is no longer stored.
269	// A version may not leave this state once entered.
270	CryptoKeyVersion_DESTROYED CryptoKeyVersion_CryptoKeyVersionState = 3
271	// This version is scheduled for destruction, and will be destroyed soon.
272	// Call
273	// [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]
274	// to put it back into the
275	// [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED]
276	// state.
277	CryptoKeyVersion_DESTROY_SCHEDULED CryptoKeyVersion_CryptoKeyVersionState = 4
278)
279
280var CryptoKeyVersion_CryptoKeyVersionState_name = map[int32]string{
281	0: "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED",
282	5: "PENDING_GENERATION",
283	1: "ENABLED",
284	2: "DISABLED",
285	3: "DESTROYED",
286	4: "DESTROY_SCHEDULED",
287}
288
289var CryptoKeyVersion_CryptoKeyVersionState_value = map[string]int32{
290	"CRYPTO_KEY_VERSION_STATE_UNSPECIFIED": 0,
291	"PENDING_GENERATION":                   5,
292	"ENABLED":                              1,
293	"DISABLED":                             2,
294	"DESTROYED":                            3,
295	"DESTROY_SCHEDULED":                    4,
296}
297
298func (x CryptoKeyVersion_CryptoKeyVersionState) String() string {
299	return proto.EnumName(CryptoKeyVersion_CryptoKeyVersionState_name, int32(x))
300}
301
302func (CryptoKeyVersion_CryptoKeyVersionState) EnumDescriptor() ([]byte, []int) {
303	return fileDescriptor_e40e1384d35a80c5, []int{4, 1}
304}
305
306// A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s.
307// Controls the level of detail returned for
308// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in
309// [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]
310// and
311// [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys].
312type CryptoKeyVersion_CryptoKeyVersionView int32
313
314const (
315	// Default view for each
316	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not
317	// include the
318	// [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field.
319	CryptoKeyVersion_CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionView = 0
320	// Provides all fields in each
321	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the
322	// [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation].
323	CryptoKeyVersion_FULL CryptoKeyVersion_CryptoKeyVersionView = 1
324)
325
326var CryptoKeyVersion_CryptoKeyVersionView_name = map[int32]string{
327	0: "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED",
328	1: "FULL",
329}
330
331var CryptoKeyVersion_CryptoKeyVersionView_value = map[string]int32{
332	"CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED": 0,
333	"FULL":                                1,
334}
335
336func (x CryptoKeyVersion_CryptoKeyVersionView) String() string {
337	return proto.EnumName(CryptoKeyVersion_CryptoKeyVersionView_name, int32(x))
338}
339
340func (CryptoKeyVersion_CryptoKeyVersionView) EnumDescriptor() ([]byte, []int) {
341	return fileDescriptor_e40e1384d35a80c5, []int{4, 2}
342}
343
344// A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of
345// [CryptoKeys][google.cloud.kms.v1.CryptoKey].
346type KeyRing struct {
347	// Output only. The resource name for the
348	// [KeyRing][google.cloud.kms.v1.KeyRing] in the format
349	// `projects/*/locations/*/keyRings/*`.
350	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
351	// Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing]
352	// was created.
353	CreateTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
354	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
355	XXX_unrecognized     []byte               `json:"-"`
356	XXX_sizecache        int32                `json:"-"`
357}
358
359func (m *KeyRing) Reset()         { *m = KeyRing{} }
360func (m *KeyRing) String() string { return proto.CompactTextString(m) }
361func (*KeyRing) ProtoMessage()    {}
362func (*KeyRing) Descriptor() ([]byte, []int) {
363	return fileDescriptor_e40e1384d35a80c5, []int{0}
364}
365
366func (m *KeyRing) XXX_Unmarshal(b []byte) error {
367	return xxx_messageInfo_KeyRing.Unmarshal(m, b)
368}
369func (m *KeyRing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
370	return xxx_messageInfo_KeyRing.Marshal(b, m, deterministic)
371}
372func (m *KeyRing) XXX_Merge(src proto.Message) {
373	xxx_messageInfo_KeyRing.Merge(m, src)
374}
375func (m *KeyRing) XXX_Size() int {
376	return xxx_messageInfo_KeyRing.Size(m)
377}
378func (m *KeyRing) XXX_DiscardUnknown() {
379	xxx_messageInfo_KeyRing.DiscardUnknown(m)
380}
381
382var xxx_messageInfo_KeyRing proto.InternalMessageInfo
383
384func (m *KeyRing) GetName() string {
385	if m != nil {
386		return m.Name
387	}
388	return ""
389}
390
391func (m *KeyRing) GetCreateTime() *timestamp.Timestamp {
392	if m != nil {
393		return m.CreateTime
394	}
395	return nil
396}
397
398// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that
399// can be used for cryptographic operations.
400//
401// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of one or more
402// [versions][google.cloud.kms.v1.CryptoKeyVersion], which represent the actual
403// key material used in cryptographic operations.
404type CryptoKey struct {
405	// Output only. The resource name for this
406	// [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format
407	// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
408	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
409	// Output only. A copy of the "primary"
410	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used
411	// by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this
412	// [CryptoKey][google.cloud.kms.v1.CryptoKey] is given in
413	// [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name].
414	//
415	// The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be
416	// updated via
417	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion].
418	//
419	// All keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
420	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]
421	// have a primary. For other keys, this field will be omitted.
422	Primary *CryptoKeyVersion `protobuf:"bytes,2,opt,name=primary,proto3" json:"primary,omitempty"`
423	// The immutable purpose of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
424	Purpose CryptoKey_CryptoKeyPurpose `protobuf:"varint,3,opt,name=purpose,proto3,enum=google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose" json:"purpose,omitempty"`
425	// Output only. The time at which this
426	// [CryptoKey][google.cloud.kms.v1.CryptoKey] was created.
427	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
428	// At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time],
429	// the Key Management Service will automatically:
430	//
431	// 1. Create a new version of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
432	// 2. Mark the new version as primary.
433	//
434	// Key rotations performed manually via
435	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
436	// and
437	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]
438	// do not affect
439	// [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time].
440	//
441	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
442	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]
443	// support automatic rotation. For other keys, this field must be omitted.
444	NextRotationTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=next_rotation_time,json=nextRotationTime,proto3" json:"next_rotation_time,omitempty"`
445	// Controls the rate of automatic rotation.
446	//
447	// Types that are valid to be assigned to RotationSchedule:
448	//	*CryptoKey_RotationPeriod
449	RotationSchedule isCryptoKey_RotationSchedule `protobuf_oneof:"rotation_schedule"`
450	// A template describing settings for new
451	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances. The
452	// properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]
453	// instances created by either
454	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
455	// or auto-rotation are controlled by this template.
456	VersionTemplate *CryptoKeyVersionTemplate `protobuf:"bytes,11,opt,name=version_template,json=versionTemplate,proto3" json:"version_template,omitempty"`
457	// Labels with user-defined metadata. For more information, see
458	// [Labeling Keys](/kms/docs/labeling-keys).
459	Labels               map[string]string `protobuf:"bytes,10,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
460	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
461	XXX_unrecognized     []byte            `json:"-"`
462	XXX_sizecache        int32             `json:"-"`
463}
464
465func (m *CryptoKey) Reset()         { *m = CryptoKey{} }
466func (m *CryptoKey) String() string { return proto.CompactTextString(m) }
467func (*CryptoKey) ProtoMessage()    {}
468func (*CryptoKey) Descriptor() ([]byte, []int) {
469	return fileDescriptor_e40e1384d35a80c5, []int{1}
470}
471
472func (m *CryptoKey) XXX_Unmarshal(b []byte) error {
473	return xxx_messageInfo_CryptoKey.Unmarshal(m, b)
474}
475func (m *CryptoKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
476	return xxx_messageInfo_CryptoKey.Marshal(b, m, deterministic)
477}
478func (m *CryptoKey) XXX_Merge(src proto.Message) {
479	xxx_messageInfo_CryptoKey.Merge(m, src)
480}
481func (m *CryptoKey) XXX_Size() int {
482	return xxx_messageInfo_CryptoKey.Size(m)
483}
484func (m *CryptoKey) XXX_DiscardUnknown() {
485	xxx_messageInfo_CryptoKey.DiscardUnknown(m)
486}
487
488var xxx_messageInfo_CryptoKey proto.InternalMessageInfo
489
490func (m *CryptoKey) GetName() string {
491	if m != nil {
492		return m.Name
493	}
494	return ""
495}
496
497func (m *CryptoKey) GetPrimary() *CryptoKeyVersion {
498	if m != nil {
499		return m.Primary
500	}
501	return nil
502}
503
504func (m *CryptoKey) GetPurpose() CryptoKey_CryptoKeyPurpose {
505	if m != nil {
506		return m.Purpose
507	}
508	return CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED
509}
510
511func (m *CryptoKey) GetCreateTime() *timestamp.Timestamp {
512	if m != nil {
513		return m.CreateTime
514	}
515	return nil
516}
517
518func (m *CryptoKey) GetNextRotationTime() *timestamp.Timestamp {
519	if m != nil {
520		return m.NextRotationTime
521	}
522	return nil
523}
524
525type isCryptoKey_RotationSchedule interface {
526	isCryptoKey_RotationSchedule()
527}
528
529type CryptoKey_RotationPeriod struct {
530	RotationPeriod *duration.Duration `protobuf:"bytes,8,opt,name=rotation_period,json=rotationPeriod,proto3,oneof"`
531}
532
533func (*CryptoKey_RotationPeriod) isCryptoKey_RotationSchedule() {}
534
535func (m *CryptoKey) GetRotationSchedule() isCryptoKey_RotationSchedule {
536	if m != nil {
537		return m.RotationSchedule
538	}
539	return nil
540}
541
542func (m *CryptoKey) GetRotationPeriod() *duration.Duration {
543	if x, ok := m.GetRotationSchedule().(*CryptoKey_RotationPeriod); ok {
544		return x.RotationPeriod
545	}
546	return nil
547}
548
549func (m *CryptoKey) GetVersionTemplate() *CryptoKeyVersionTemplate {
550	if m != nil {
551		return m.VersionTemplate
552	}
553	return nil
554}
555
556func (m *CryptoKey) GetLabels() map[string]string {
557	if m != nil {
558		return m.Labels
559	}
560	return nil
561}
562
563// XXX_OneofWrappers is for the internal use of the proto package.
564func (*CryptoKey) XXX_OneofWrappers() []interface{} {
565	return []interface{}{
566		(*CryptoKey_RotationPeriod)(nil),
567	}
568}
569
570// A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate]
571// specifies the properties to use when creating a new
572// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually
573// with
574// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
575// or automatically as a result of auto-rotation.
576type CryptoKeyVersionTemplate struct {
577	// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating
578	// a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this
579	// template. Immutable. Defaults to
580	// [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE].
581	ProtectionLevel ProtectionLevel `protobuf:"varint,1,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
582	// Required.
583	// [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
584	// to use when creating a
585	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this
586	// template.
587	//
588	// For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
589	// this field is omitted and
590	// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is
591	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
592	Algorithm            CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
593	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
594	XXX_unrecognized     []byte                                     `json:"-"`
595	XXX_sizecache        int32                                      `json:"-"`
596}
597
598func (m *CryptoKeyVersionTemplate) Reset()         { *m = CryptoKeyVersionTemplate{} }
599func (m *CryptoKeyVersionTemplate) String() string { return proto.CompactTextString(m) }
600func (*CryptoKeyVersionTemplate) ProtoMessage()    {}
601func (*CryptoKeyVersionTemplate) Descriptor() ([]byte, []int) {
602	return fileDescriptor_e40e1384d35a80c5, []int{2}
603}
604
605func (m *CryptoKeyVersionTemplate) XXX_Unmarshal(b []byte) error {
606	return xxx_messageInfo_CryptoKeyVersionTemplate.Unmarshal(m, b)
607}
608func (m *CryptoKeyVersionTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
609	return xxx_messageInfo_CryptoKeyVersionTemplate.Marshal(b, m, deterministic)
610}
611func (m *CryptoKeyVersionTemplate) XXX_Merge(src proto.Message) {
612	xxx_messageInfo_CryptoKeyVersionTemplate.Merge(m, src)
613}
614func (m *CryptoKeyVersionTemplate) XXX_Size() int {
615	return xxx_messageInfo_CryptoKeyVersionTemplate.Size(m)
616}
617func (m *CryptoKeyVersionTemplate) XXX_DiscardUnknown() {
618	xxx_messageInfo_CryptoKeyVersionTemplate.DiscardUnknown(m)
619}
620
621var xxx_messageInfo_CryptoKeyVersionTemplate proto.InternalMessageInfo
622
623func (m *CryptoKeyVersionTemplate) GetProtectionLevel() ProtectionLevel {
624	if m != nil {
625		return m.ProtectionLevel
626	}
627	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
628}
629
630func (m *CryptoKeyVersionTemplate) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
631	if m != nil {
632		return m.Algorithm
633	}
634	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
635}
636
637// Contains an HSM-generated attestation about a key operation.
638type KeyOperationAttestation struct {
639	// Output only. The format of the attestation data.
640	Format KeyOperationAttestation_AttestationFormat `protobuf:"varint,4,opt,name=format,proto3,enum=google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat" json:"format,omitempty"`
641	// Output only. The attestation data provided by the HSM when the key
642	// operation was performed.
643	Content              []byte   `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
644	XXX_NoUnkeyedLiteral struct{} `json:"-"`
645	XXX_unrecognized     []byte   `json:"-"`
646	XXX_sizecache        int32    `json:"-"`
647}
648
649func (m *KeyOperationAttestation) Reset()         { *m = KeyOperationAttestation{} }
650func (m *KeyOperationAttestation) String() string { return proto.CompactTextString(m) }
651func (*KeyOperationAttestation) ProtoMessage()    {}
652func (*KeyOperationAttestation) Descriptor() ([]byte, []int) {
653	return fileDescriptor_e40e1384d35a80c5, []int{3}
654}
655
656func (m *KeyOperationAttestation) XXX_Unmarshal(b []byte) error {
657	return xxx_messageInfo_KeyOperationAttestation.Unmarshal(m, b)
658}
659func (m *KeyOperationAttestation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
660	return xxx_messageInfo_KeyOperationAttestation.Marshal(b, m, deterministic)
661}
662func (m *KeyOperationAttestation) XXX_Merge(src proto.Message) {
663	xxx_messageInfo_KeyOperationAttestation.Merge(m, src)
664}
665func (m *KeyOperationAttestation) XXX_Size() int {
666	return xxx_messageInfo_KeyOperationAttestation.Size(m)
667}
668func (m *KeyOperationAttestation) XXX_DiscardUnknown() {
669	xxx_messageInfo_KeyOperationAttestation.DiscardUnknown(m)
670}
671
672var xxx_messageInfo_KeyOperationAttestation proto.InternalMessageInfo
673
674func (m *KeyOperationAttestation) GetFormat() KeyOperationAttestation_AttestationFormat {
675	if m != nil {
676		return m.Format
677	}
678	return KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED
679}
680
681func (m *KeyOperationAttestation) GetContent() []byte {
682	if m != nil {
683		return m.Content
684	}
685	return nil
686}
687
688// A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an
689// individual cryptographic key, and the associated key material.
690//
691// An
692// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
693// version can be used for cryptographic operations.
694//
695// For security reasons, the raw cryptographic key material represented by a
696// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed
697// or exported. It can only be used to encrypt, decrypt, or sign data when an
698// authorized user or application invokes Cloud KMS.
699type CryptoKeyVersion struct {
700	// Output only. The resource name for this
701	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format
702	// `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
703	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
704	// The current state of the
705	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
706	State CryptoKeyVersion_CryptoKeyVersionState `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState" json:"state,omitempty"`
707	// Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel]
708	// describing how crypto operations are performed with this
709	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
710	ProtectionLevel ProtectionLevel `protobuf:"varint,7,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
711	// Output only. The
712	// [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
713	// that this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]
714	// supports.
715	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,10,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
716	// Output only. Statement that was generated and signed by the HSM at key
717	// creation time. Use this statement to verify attributes of the key as stored
718	// on the HSM, independently of Google. Only provided for key versions with
719	// [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level]
720	// [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
721	Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
722	// Output only. The time at which this
723	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created.
724	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
725	// Output only. The time this
726	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was
727	// generated.
728	GenerateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
729	// Output only. The time this
730	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is
731	// scheduled for destruction. Only present if
732	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
733	// [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED].
734	DestroyTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=destroy_time,json=destroyTime,proto3" json:"destroy_time,omitempty"`
735	// Output only. The time this CryptoKeyVersion's key material was
736	// destroyed. Only present if
737	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
738	// [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED].
739	DestroyEventTime     *timestamp.Timestamp `protobuf:"bytes,6,opt,name=destroy_event_time,json=destroyEventTime,proto3" json:"destroy_event_time,omitempty"`
740	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
741	XXX_unrecognized     []byte               `json:"-"`
742	XXX_sizecache        int32                `json:"-"`
743}
744
745func (m *CryptoKeyVersion) Reset()         { *m = CryptoKeyVersion{} }
746func (m *CryptoKeyVersion) String() string { return proto.CompactTextString(m) }
747func (*CryptoKeyVersion) ProtoMessage()    {}
748func (*CryptoKeyVersion) Descriptor() ([]byte, []int) {
749	return fileDescriptor_e40e1384d35a80c5, []int{4}
750}
751
752func (m *CryptoKeyVersion) XXX_Unmarshal(b []byte) error {
753	return xxx_messageInfo_CryptoKeyVersion.Unmarshal(m, b)
754}
755func (m *CryptoKeyVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
756	return xxx_messageInfo_CryptoKeyVersion.Marshal(b, m, deterministic)
757}
758func (m *CryptoKeyVersion) XXX_Merge(src proto.Message) {
759	xxx_messageInfo_CryptoKeyVersion.Merge(m, src)
760}
761func (m *CryptoKeyVersion) XXX_Size() int {
762	return xxx_messageInfo_CryptoKeyVersion.Size(m)
763}
764func (m *CryptoKeyVersion) XXX_DiscardUnknown() {
765	xxx_messageInfo_CryptoKeyVersion.DiscardUnknown(m)
766}
767
768var xxx_messageInfo_CryptoKeyVersion proto.InternalMessageInfo
769
770func (m *CryptoKeyVersion) GetName() string {
771	if m != nil {
772		return m.Name
773	}
774	return ""
775}
776
777func (m *CryptoKeyVersion) GetState() CryptoKeyVersion_CryptoKeyVersionState {
778	if m != nil {
779		return m.State
780	}
781	return CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED
782}
783
784func (m *CryptoKeyVersion) GetProtectionLevel() ProtectionLevel {
785	if m != nil {
786		return m.ProtectionLevel
787	}
788	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
789}
790
791func (m *CryptoKeyVersion) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
792	if m != nil {
793		return m.Algorithm
794	}
795	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
796}
797
798func (m *CryptoKeyVersion) GetAttestation() *KeyOperationAttestation {
799	if m != nil {
800		return m.Attestation
801	}
802	return nil
803}
804
805func (m *CryptoKeyVersion) GetCreateTime() *timestamp.Timestamp {
806	if m != nil {
807		return m.CreateTime
808	}
809	return nil
810}
811
812func (m *CryptoKeyVersion) GetGenerateTime() *timestamp.Timestamp {
813	if m != nil {
814		return m.GenerateTime
815	}
816	return nil
817}
818
819func (m *CryptoKeyVersion) GetDestroyTime() *timestamp.Timestamp {
820	if m != nil {
821		return m.DestroyTime
822	}
823	return nil
824}
825
826func (m *CryptoKeyVersion) GetDestroyEventTime() *timestamp.Timestamp {
827	if m != nil {
828		return m.DestroyEventTime
829	}
830	return nil
831}
832
833// The public key for a given
834// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via
835// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
836type PublicKey struct {
837	// The public key, encoded in PEM format. For more information, see the
838	// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for
839	// [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
840	// [Textual Encoding of Subject Public Key Info]
841	// (https://tools.ietf.org/html/rfc7468#section-13).
842	Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
843	// The
844	// [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
845	// associated with this key.
846	Algorithm            CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
847	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
848	XXX_unrecognized     []byte                                     `json:"-"`
849	XXX_sizecache        int32                                      `json:"-"`
850}
851
852func (m *PublicKey) Reset()         { *m = PublicKey{} }
853func (m *PublicKey) String() string { return proto.CompactTextString(m) }
854func (*PublicKey) ProtoMessage()    {}
855func (*PublicKey) Descriptor() ([]byte, []int) {
856	return fileDescriptor_e40e1384d35a80c5, []int{5}
857}
858
859func (m *PublicKey) XXX_Unmarshal(b []byte) error {
860	return xxx_messageInfo_PublicKey.Unmarshal(m, b)
861}
862func (m *PublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
863	return xxx_messageInfo_PublicKey.Marshal(b, m, deterministic)
864}
865func (m *PublicKey) XXX_Merge(src proto.Message) {
866	xxx_messageInfo_PublicKey.Merge(m, src)
867}
868func (m *PublicKey) XXX_Size() int {
869	return xxx_messageInfo_PublicKey.Size(m)
870}
871func (m *PublicKey) XXX_DiscardUnknown() {
872	xxx_messageInfo_PublicKey.DiscardUnknown(m)
873}
874
875var xxx_messageInfo_PublicKey proto.InternalMessageInfo
876
877func (m *PublicKey) GetPem() string {
878	if m != nil {
879		return m.Pem
880	}
881	return ""
882}
883
884func (m *PublicKey) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
885	if m != nil {
886		return m.Algorithm
887	}
888	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
889}
890
891func init() {
892	proto.RegisterEnum("google.cloud.kms.v1.ProtectionLevel", ProtectionLevel_name, ProtectionLevel_value)
893	proto.RegisterEnum("google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose", CryptoKey_CryptoKeyPurpose_name, CryptoKey_CryptoKeyPurpose_value)
894	proto.RegisterEnum("google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat", KeyOperationAttestation_AttestationFormat_name, KeyOperationAttestation_AttestationFormat_value)
895	proto.RegisterEnum("google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm", CryptoKeyVersion_CryptoKeyVersionAlgorithm_name, CryptoKeyVersion_CryptoKeyVersionAlgorithm_value)
896	proto.RegisterEnum("google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState", CryptoKeyVersion_CryptoKeyVersionState_name, CryptoKeyVersion_CryptoKeyVersionState_value)
897	proto.RegisterEnum("google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionView", CryptoKeyVersion_CryptoKeyVersionView_name, CryptoKeyVersion_CryptoKeyVersionView_value)
898	proto.RegisterType((*KeyRing)(nil), "google.cloud.kms.v1.KeyRing")
899	proto.RegisterType((*CryptoKey)(nil), "google.cloud.kms.v1.CryptoKey")
900	proto.RegisterMapType((map[string]string)(nil), "google.cloud.kms.v1.CryptoKey.LabelsEntry")
901	proto.RegisterType((*CryptoKeyVersionTemplate)(nil), "google.cloud.kms.v1.CryptoKeyVersionTemplate")
902	proto.RegisterType((*KeyOperationAttestation)(nil), "google.cloud.kms.v1.KeyOperationAttestation")
903	proto.RegisterType((*CryptoKeyVersion)(nil), "google.cloud.kms.v1.CryptoKeyVersion")
904	proto.RegisterType((*PublicKey)(nil), "google.cloud.kms.v1.PublicKey")
905}
906
907func init() {
908	proto.RegisterFile("google/cloud/kms/v1/resources.proto", fileDescriptor_e40e1384d35a80c5)
909}
910
911var fileDescriptor_e40e1384d35a80c5 = []byte{
912	// 1203 bytes of a gzipped FileDescriptorProto
913	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x5d, 0x6e, 0xdb, 0x46,
914	0x17, 0x0d, 0x25, 0xcb, 0xb2, 0xae, 0x9c, 0x98, 0x1e, 0xe7, 0x47, 0xf1, 0x17, 0x24, 0x86, 0x92,
915	0x0f, 0x35, 0x82, 0x54, 0x8a, 0x65, 0x27, 0x75, 0x1a, 0xb4, 0x01, 0x2d, 0x8d, 0x65, 0x56, 0x3f,
916	0x64, 0x87, 0xb4, 0x52, 0x07, 0x29, 0x08, 0x5a, 0x9e, 0x28, 0x82, 0xc5, 0x1f, 0x90, 0x94, 0x1a,
917	0x01, 0xdd, 0x46, 0x5f, 0xba, 0x81, 0x02, 0x5d, 0x43, 0x57, 0x90, 0x55, 0x74, 0x19, 0x79, 0x2c,
918	0x38, 0x1c, 0xda, 0x94, 0xcc, 0xd4, 0x49, 0x91, 0x27, 0xcd, 0xdc, 0x73, 0xcf, 0x99, 0xd1, 0xbd,
919	0x97, 0x87, 0x84, 0xfb, 0x03, 0xc7, 0x19, 0x8c, 0x68, 0xb5, 0x3f, 0x72, 0xc6, 0x27, 0xd5, 0x53,
920	0xcb, 0xaf, 0x4e, 0xb6, 0xaa, 0x1e, 0xf5, 0x9d, 0xb1, 0xd7, 0xa7, 0x7e, 0xc5, 0xf5, 0x9c, 0xc0,
921	0x41, 0x6b, 0x51, 0x52, 0x85, 0x25, 0x55, 0x4e, 0x2d, 0xbf, 0x32, 0xd9, 0x5a, 0xbf, 0xc3, 0x99,
922	0xa6, 0x3b, 0xac, 0x9a, 0xb6, 0xed, 0x04, 0x66, 0x30, 0x74, 0x6c, 0x4e, 0x59, 0xbf, 0xcb, 0x51,
923	0xb6, 0x3b, 0x1e, 0xbf, 0xa9, 0x9e, 0x8c, 0x3d, 0x96, 0xc0, 0xf1, 0x7b, 0xf3, 0x78, 0x30, 0xb4,
924	0xa8, 0x1f, 0x98, 0x96, 0x1b, 0x25, 0x94, 0x5f, 0x41, 0xbe, 0x45, 0xa7, 0x64, 0x68, 0x0f, 0x10,
925	0x82, 0x05, 0xdb, 0xb4, 0x68, 0x49, 0xd8, 0x10, 0x36, 0x0b, 0x84, 0xad, 0xd1, 0x73, 0x28, 0xf6,
926	0x3d, 0x6a, 0x06, 0xd4, 0x08, 0x89, 0xa5, 0xcc, 0x86, 0xb0, 0x59, 0xac, 0xad, 0x57, 0xf8, 0x45,
927	0x63, 0xd5, 0x8a, 0x1e, 0xab, 0x12, 0x88, 0xd2, 0xc3, 0x40, 0xf9, 0xef, 0x1c, 0x14, 0xea, 0xde,
928	0xd4, 0x0d, 0x9c, 0x16, 0x9d, 0xa6, 0xca, 0xbf, 0x80, 0xbc, 0xeb, 0x0d, 0x2d, 0xd3, 0x9b, 0x72,
929	0xe9, 0xff, 0x57, 0x52, 0x6a, 0x50, 0x39, 0x13, 0xe9, 0x51, 0xcf, 0x1f, 0x3a, 0x36, 0x89, 0x59,
930	0x48, 0x86, 0xbc, 0x3b, 0xf6, 0x5c, 0xc7, 0xa7, 0xa5, 0xec, 0x86, 0xb0, 0x79, 0xad, 0x56, 0xfd,
931	0x77, 0x81, 0xf3, 0x95, 0x1a, 0xd1, 0x48, 0xcc, 0x9f, 0xff, 0xab, 0xb9, 0xcf, 0xf9, 0xab, 0xe8,
932	0x00, 0x90, 0x4d, 0xdf, 0x05, 0x86, 0xc7, 0xfb, 0x13, 0x69, 0xe4, 0x2f, 0xd5, 0x10, 0x43, 0x16,
933	0xe1, 0x24, 0xa6, 0xd4, 0x80, 0x95, 0x33, 0x11, 0x97, 0x7a, 0x43, 0xe7, 0xa4, 0xb4, 0xc4, 0x64,
934	0x6e, 0x5f, 0x90, 0x69, 0xf0, 0x5e, 0x1f, 0x5c, 0x21, 0xd7, 0x62, 0x8e, 0xca, 0x28, 0xe8, 0x27,
935	0x10, 0x27, 0x51, 0xad, 0x8c, 0x80, 0x5a, 0xee, 0xc8, 0x0c, 0x68, 0xa9, 0xc8, 0x64, 0xbe, 0xfe,
936	0xa4, 0x0a, 0xeb, 0x9c, 0x44, 0x56, 0x26, 0xb3, 0x01, 0xb4, 0x07, 0x8b, 0x23, 0xf3, 0x98, 0x8e,
937	0xfc, 0x12, 0x6c, 0x64, 0x37, 0x8b, 0xb5, 0x87, 0x97, 0x14, 0xbc, 0xcd, 0x92, 0xb1, 0x1d, 0x78,
938	0x53, 0xc2, 0x99, 0xeb, 0xcf, 0xa0, 0x98, 0x08, 0x23, 0x11, 0xb2, 0xa7, 0x74, 0xca, 0x07, 0x23,
939	0x5c, 0xa2, 0xeb, 0x90, 0x9b, 0x98, 0xa3, 0x71, 0x34, 0x70, 0x05, 0x12, 0x6d, 0xbe, 0xcd, 0xec,
940	0x0a, 0xe5, 0x77, 0x20, 0xce, 0xb7, 0x10, 0x95, 0xe1, 0x6e, 0x9d, 0x1c, 0xa9, 0xba, 0x62, 0xb4,
941	0xf0, 0x91, 0xa1, 0x1e, 0x12, 0x55, 0xd1, 0xb0, 0x71, 0xd8, 0xd5, 0x54, 0x5c, 0x97, 0xf7, 0x65,
942	0xdc, 0x10, 0xaf, 0xa0, 0x35, 0x58, 0xc1, 0x5d, 0x96, 0x65, 0x34, 0x30, 0xfb, 0x15, 0x85, 0x30,
943	0x28, 0x69, 0x47, 0x9d, 0x0e, 0xd6, 0x89, 0x5c, 0x37, 0x34, 0xb9, 0xd9, 0x15, 0x73, 0xe8, 0x26,
944	0xa0, 0x44, 0x30, 0x4e, 0x5e, 0xdc, 0x5b, 0x83, 0xd5, 0xb3, 0xc6, 0xf8, 0xfd, 0xb7, 0xf4, 0x64,
945	0x3c, 0xa2, 0xe5, 0xf7, 0x02, 0x94, 0x3e, 0x56, 0x3b, 0xa4, 0x80, 0x18, 0xf6, 0x8a, 0xf6, 0x19,
946	0x67, 0x44, 0x27, 0x74, 0xc4, 0xfe, 0xe4, 0xb5, 0xda, 0x83, 0xd4, 0xa2, 0xa9, 0x67, 0xc9, 0xed,
947	0x30, 0x97, 0xac, 0xb8, 0xb3, 0x01, 0xf4, 0x33, 0x14, 0xcc, 0xd1, 0xc0, 0xf1, 0x86, 0xc1, 0x5b,
948	0x8b, 0xcf, 0xfb, 0x8b, 0x4f, 0x6a, 0xe7, 0x85, 0x80, 0x14, 0xcb, 0x90, 0x73, 0xc5, 0xf2, 0x07,
949	0x01, 0x6e, 0xb5, 0xe8, 0x54, 0x71, 0x69, 0x34, 0x57, 0x52, 0x10, 0x84, 0x63, 0x1a, 0x2e, 0x51,
950	0x0f, 0x16, 0xdf, 0x38, 0x9e, 0x65, 0x06, 0xa5, 0x05, 0x76, 0xee, 0xf7, 0xa9, 0xe7, 0x7e, 0x84,
951	0x5d, 0x49, 0xac, 0xf7, 0x99, 0x0a, 0xe1, 0x6a, 0xa8, 0x04, 0xf9, 0xbe, 0x63, 0x07, 0xd4, 0x0e,
952	0xd8, 0x13, 0xb7, 0x4c, 0xe2, 0x6d, 0xf9, 0x14, 0x56, 0x2f, 0xd0, 0xc2, 0x56, 0x4b, 0xba, 0x8e,
953	0x35, 0x5d, 0xd2, 0x65, 0xa5, 0x6b, 0xec, 0x2b, 0xa4, 0x23, 0xe9, 0x73, 0xad, 0x2e, 0xc1, 0xf5,
954	0xba, 0xd4, 0x93, 0x0f, 0x3b, 0x46, 0x6f, 0xcb, 0xa8, 0x2b, 0x1d, 0x95, 0x60, 0x4d, 0xc3, 0x0d,
955	0x31, 0x9b, 0x44, 0x6a, 0x49, 0x64, 0xa1, 0xfc, 0x07, 0x24, 0xe6, 0x8a, 0xd7, 0x28, 0xd5, 0xb1,
956	0x7e, 0x84, 0x5c, 0x78, 0xa3, 0xd8, 0x6e, 0x9e, 0xff, 0xb7, 0xf2, 0x6b, 0xa1, 0x04, 0x89, 0x94,
957	0x52, 0xc7, 0x24, 0xff, 0xc5, 0xc6, 0x04, 0xbe, 0xf4, 0x98, 0xa0, 0x2e, 0x14, 0xcd, 0xf3, 0xc6,
958	0x70, 0x77, 0x7a, 0xf4, 0x39, 0xf3, 0x40, 0x92, 0x02, 0xf3, 0xc6, 0xbb, 0xf0, 0x59, 0xc6, 0xfb,
959	0x02, 0xae, 0x0e, 0xa8, 0x1d, 0x1e, 0xc1, 0xe9, 0xc5, 0x4b, 0xe9, 0xcb, 0x31, 0x81, 0x09, 0x7c,
960	0x07, 0xcb, 0x27, 0xd4, 0x0f, 0x3c, 0x67, 0xfa, 0xa9, 0xbe, 0x5f, 0xe4, 0xf9, 0xb1, 0xf1, 0xc7,
961	0x74, 0x3a, 0xa1, 0x76, 0x10, 0x89, 0x2c, 0x5e, 0x6e, 0xfc, 0x9c, 0x85, 0x43, 0x12, 0x7b, 0x5b,
962	0xfe, 0x95, 0x85, 0xdb, 0x1f, 0xad, 0x3f, 0x7a, 0x04, 0x9b, 0x09, 0x8f, 0xeb, 0x61, 0xa2, 0x85,
963	0xf3, 0x2f, 0xb5, 0x9b, 0x0a, 0x91, 0xf5, 0x83, 0xce, 0xdc, 0x23, 0x70, 0x0f, 0xfe, 0xd7, 0x54,
964	0x94, 0x66, 0x1b, 0x1b, 0xe7, 0x4e, 0xc6, 0xed, 0x4f, 0x56, 0xba, 0xa2, 0x80, 0xee, 0x40, 0x89,
965	0x68, 0x12, 0xb3, 0x3c, 0x43, 0xd5, 0x34, 0xa3, 0xf6, 0x78, 0x67, 0xd7, 0xd0, 0x0e, 0xa4, 0xda,
966	0x93, 0xa7, 0x62, 0xe6, 0x02, 0xba, 0xfd, 0xf8, 0x9b, 0x5a, 0x8c, 0x66, 0x2f, 0xa0, 0x3b, 0x8f,
967	0x9f, 0x3d, 0x8d, 0xd1, 0x05, 0x74, 0x17, 0xd6, 0xcf, 0xd1, 0x56, 0x5d, 0xdb, 0x9a, 0xd1, 0xce,
968	0xa5, 0xe0, 0x49, 0xf5, 0xc5, 0x14, 0x3c, 0xa9, 0x9f, 0x47, 0x1b, 0x70, 0x27, 0xc4, 0xb9, 0x2f,
969	0x1b, 0x8a, 0x84, 0xd5, 0x99, 0x13, 0x96, 0x52, 0x33, 0x92, 0x67, 0x14, 0x52, 0x33, 0x92, 0xa7,
970	0x00, 0xba, 0x05, 0x6b, 0xb8, 0xce, 0x2f, 0x51, 0x7b, 0x72, 0x06, 0x2c, 0xcf, 0x00, 0xdb, 0xbb,
971	0x3b, 0x21, 0xb0, 0xbd, 0xbb, 0x23, 0x5e, 0x2d, 0xff, 0x2e, 0xc0, 0x8d, 0xd4, 0xc7, 0x1c, 0x6d,
972	0xc2, 0x83, 0x94, 0xd6, 0x85, 0x16, 0x36, 0xff, 0x92, 0xba, 0x09, 0x48, 0xc5, 0xdd, 0x86, 0xdc,
973	0x6d, 0x1a, 0x4d, 0xdc, 0xc5, 0x84, 0x99, 0x9c, 0x98, 0x43, 0x45, 0xc8, 0xe3, 0xae, 0xb4, 0xd7,
974	0xc6, 0x0d, 0x51, 0x40, 0xcb, 0xb0, 0xd4, 0x90, 0xb5, 0x68, 0x97, 0x41, 0x57, 0xa1, 0xd0, 0xc0,
975	0x9a, 0x4e, 0x94, 0x23, 0xe6, 0x70, 0x37, 0x60, 0x95, 0x6f, 0x0d, 0xad, 0x7e, 0x80, 0x1b, 0x87,
976	0x6d, 0x66, 0x6f, 0x32, 0x5c, 0x9f, 0xbf, 0x5b, 0x6f, 0x48, 0x7f, 0x41, 0x5f, 0xc1, 0xfd, 0x94,
977	0xab, 0xf5, 0x64, 0xfc, 0x72, 0xee, 0x66, 0x4b, 0xb0, 0xb0, 0x7f, 0xd8, 0x6e, 0x8b, 0x42, 0xf9,
978	0x57, 0x28, 0xa8, 0xe3, 0xe3, 0xd1, 0xb0, 0x1f, 0x7e, 0xd3, 0x89, 0x90, 0x75, 0xa9, 0x15, 0xbf,
979	0xb9, 0x5d, 0x6a, 0xcd, 0x7a, 0x4f, 0xe6, 0x4b, 0x7b, 0xcf, 0xc3, 0x1f, 0x60, 0x65, 0xce, 0xfe,
980	0xc2, 0x66, 0xaa, 0x44, 0xd1, 0x71, 0x9d, 0xbd, 0x11, 0xda, 0xb8, 0x87, 0xdb, 0x73, 0x97, 0x5f,
981	0x86, 0x25, 0x4d, 0xd9, 0xd7, 0x5f, 0x4a, 0x04, 0x8b, 0x02, 0xca, 0x43, 0xf6, 0x40, 0xeb, 0x88,
982	0x99, 0xbd, 0xdf, 0x04, 0xb8, 0xd5, 0x77, 0xac, 0xb4, 0xdb, 0xed, 0xad, 0xb6, 0x2c, 0x9f, 0xc4,
983	0x9f, 0xe7, 0xe1, 0x89, 0x8e, 0x2a, 0xbc, 0x7a, 0xca, 0x33, 0x07, 0xce, 0xc8, 0xb4, 0x07, 0x15,
984	0xc7, 0x1b, 0x54, 0x07, 0xd4, 0x66, 0x0f, 0x77, 0x35, 0x82, 0x4c, 0x77, 0xe8, 0xcf, 0x7c, 0xe3,
985	0x3f, 0x3f, 0xb5, 0xfc, 0x0f, 0x82, 0xf0, 0x67, 0x66, 0xad, 0x19, 0x71, 0xeb, 0xec, 0x94, 0x96,
986	0xe5, 0x57, 0x7a, 0x5b, 0xef, 0xe3, 0xe8, 0x6b, 0x16, 0x7d, 0xdd, 0xb2, 0xfc, 0xd7, 0xbd, 0xad,
987	0xe3, 0x45, 0xa6, 0xb8, 0xfd, 0x4f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xbe, 0x5a, 0x5e, 0x75, 0x34,
988	0x0c, 0x00, 0x00,
989}
990