1// Copyright 2021 Google LLC
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7//     http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
15// Code generated by protoc-gen-go. DO NOT EDIT.
16// versions:
17// 	protoc-gen-go v1.26.0
18// 	protoc        v3.12.2
19// source: google/cloud/kms/v1/resources.proto
20
21package kms
22
23import (
24	reflect "reflect"
25	sync "sync"
26
27	_ "google.golang.org/genproto/googleapis/api/annotations"
28	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
29	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
30	durationpb "google.golang.org/protobuf/types/known/durationpb"
31	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
32	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
33)
34
35const (
36	// Verify that this generated code is sufficiently up-to-date.
37	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
38	// Verify that runtime/protoimpl is sufficiently up-to-date.
39	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
40)
41
42// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how cryptographic operations are performed.
43// For more information, see [Protection levels]
44// (https://cloud.google.com/kms/docs/algorithms#protection_levels).
45type ProtectionLevel int32
46
47const (
48	// Not specified.
49	ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED ProtectionLevel = 0
50	// Crypto operations are performed in software.
51	ProtectionLevel_SOFTWARE ProtectionLevel = 1
52	// Crypto operations are performed in a Hardware Security Module.
53	ProtectionLevel_HSM ProtectionLevel = 2
54	// Crypto operations are performed by an external key manager.
55	ProtectionLevel_EXTERNAL ProtectionLevel = 3
56)
57
58// Enum value maps for ProtectionLevel.
59var (
60	ProtectionLevel_name = map[int32]string{
61		0: "PROTECTION_LEVEL_UNSPECIFIED",
62		1: "SOFTWARE",
63		2: "HSM",
64		3: "EXTERNAL",
65	}
66	ProtectionLevel_value = map[string]int32{
67		"PROTECTION_LEVEL_UNSPECIFIED": 0,
68		"SOFTWARE":                     1,
69		"HSM":                          2,
70		"EXTERNAL":                     3,
71	}
72)
73
74func (x ProtectionLevel) Enum() *ProtectionLevel {
75	p := new(ProtectionLevel)
76	*p = x
77	return p
78}
79
80func (x ProtectionLevel) String() string {
81	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
82}
83
84func (ProtectionLevel) Descriptor() protoreflect.EnumDescriptor {
85	return file_google_cloud_kms_v1_resources_proto_enumTypes[0].Descriptor()
86}
87
88func (ProtectionLevel) Type() protoreflect.EnumType {
89	return &file_google_cloud_kms_v1_resources_proto_enumTypes[0]
90}
91
92func (x ProtectionLevel) Number() protoreflect.EnumNumber {
93	return protoreflect.EnumNumber(x)
94}
95
96// Deprecated: Use ProtectionLevel.Descriptor instead.
97func (ProtectionLevel) EnumDescriptor() ([]byte, []int) {
98	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{0}
99}
100
101// [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] describes the cryptographic capabilities of a
102// [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used for the operations allowed by
103// its purpose. For more information, see
104// [Key purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes).
105type CryptoKey_CryptoKeyPurpose int32
106
107const (
108	// Not specified.
109	CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED CryptoKey_CryptoKeyPurpose = 0
110	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
111	// [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and
112	// [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt].
113	CryptoKey_ENCRYPT_DECRYPT CryptoKey_CryptoKeyPurpose = 1
114	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
115	// [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign] and
116	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
117	CryptoKey_ASYMMETRIC_SIGN CryptoKey_CryptoKeyPurpose = 5
118	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
119	// [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt] and
120	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
121	CryptoKey_ASYMMETRIC_DECRYPT CryptoKey_CryptoKeyPurpose = 6
122	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
123	// [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign].
124	CryptoKey_MAC CryptoKey_CryptoKeyPurpose = 9
125)
126
127// Enum value maps for CryptoKey_CryptoKeyPurpose.
128var (
129	CryptoKey_CryptoKeyPurpose_name = map[int32]string{
130		0: "CRYPTO_KEY_PURPOSE_UNSPECIFIED",
131		1: "ENCRYPT_DECRYPT",
132		5: "ASYMMETRIC_SIGN",
133		6: "ASYMMETRIC_DECRYPT",
134		9: "MAC",
135	}
136	CryptoKey_CryptoKeyPurpose_value = map[string]int32{
137		"CRYPTO_KEY_PURPOSE_UNSPECIFIED": 0,
138		"ENCRYPT_DECRYPT":                1,
139		"ASYMMETRIC_SIGN":                5,
140		"ASYMMETRIC_DECRYPT":             6,
141		"MAC":                            9,
142	}
143)
144
145func (x CryptoKey_CryptoKeyPurpose) Enum() *CryptoKey_CryptoKeyPurpose {
146	p := new(CryptoKey_CryptoKeyPurpose)
147	*p = x
148	return p
149}
150
151func (x CryptoKey_CryptoKeyPurpose) String() string {
152	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
153}
154
155func (CryptoKey_CryptoKeyPurpose) Descriptor() protoreflect.EnumDescriptor {
156	return file_google_cloud_kms_v1_resources_proto_enumTypes[1].Descriptor()
157}
158
159func (CryptoKey_CryptoKeyPurpose) Type() protoreflect.EnumType {
160	return &file_google_cloud_kms_v1_resources_proto_enumTypes[1]
161}
162
163func (x CryptoKey_CryptoKeyPurpose) Number() protoreflect.EnumNumber {
164	return protoreflect.EnumNumber(x)
165}
166
167// Deprecated: Use CryptoKey_CryptoKeyPurpose.Descriptor instead.
168func (CryptoKey_CryptoKeyPurpose) EnumDescriptor() ([]byte, []int) {
169	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{1, 0}
170}
171
172// Attestation formats provided by the HSM.
173type KeyOperationAttestation_AttestationFormat int32
174
175const (
176	// Not specified.
177	KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED KeyOperationAttestation_AttestationFormat = 0
178	// Cavium HSM attestation compressed with gzip. Note that this format is
179	// defined by Cavium and subject to change at any time.
180	KeyOperationAttestation_CAVIUM_V1_COMPRESSED KeyOperationAttestation_AttestationFormat = 3
181	// Cavium HSM attestation V2 compressed with gzip. This is a new format
182	// introduced in Cavium's version 3.2-08.
183	KeyOperationAttestation_CAVIUM_V2_COMPRESSED KeyOperationAttestation_AttestationFormat = 4
184)
185
186// Enum value maps for KeyOperationAttestation_AttestationFormat.
187var (
188	KeyOperationAttestation_AttestationFormat_name = map[int32]string{
189		0: "ATTESTATION_FORMAT_UNSPECIFIED",
190		3: "CAVIUM_V1_COMPRESSED",
191		4: "CAVIUM_V2_COMPRESSED",
192	}
193	KeyOperationAttestation_AttestationFormat_value = map[string]int32{
194		"ATTESTATION_FORMAT_UNSPECIFIED": 0,
195		"CAVIUM_V1_COMPRESSED":           3,
196		"CAVIUM_V2_COMPRESSED":           4,
197	}
198)
199
200func (x KeyOperationAttestation_AttestationFormat) Enum() *KeyOperationAttestation_AttestationFormat {
201	p := new(KeyOperationAttestation_AttestationFormat)
202	*p = x
203	return p
204}
205
206func (x KeyOperationAttestation_AttestationFormat) String() string {
207	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
208}
209
210func (KeyOperationAttestation_AttestationFormat) Descriptor() protoreflect.EnumDescriptor {
211	return file_google_cloud_kms_v1_resources_proto_enumTypes[2].Descriptor()
212}
213
214func (KeyOperationAttestation_AttestationFormat) Type() protoreflect.EnumType {
215	return &file_google_cloud_kms_v1_resources_proto_enumTypes[2]
216}
217
218func (x KeyOperationAttestation_AttestationFormat) Number() protoreflect.EnumNumber {
219	return protoreflect.EnumNumber(x)
220}
221
222// Deprecated: Use KeyOperationAttestation_AttestationFormat.Descriptor instead.
223func (KeyOperationAttestation_AttestationFormat) EnumDescriptor() ([]byte, []int) {
224	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3, 0}
225}
226
227// The algorithm of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what
228// parameters must be used for each cryptographic operation.
229//
230// The
231// [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION]
232// algorithm is usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
233// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
234//
235// Algorithms beginning with "RSA_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
236// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
237//
238// The fields in the name after "RSA_SIGN_" correspond to the following
239// parameters: padding algorithm, modulus bit length, and digest algorithm.
240//
241// For PSS, the salt length used is equal to the length of digest
242// algorithm. For example,
243// [RSA_SIGN_PSS_2048_SHA256][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256]
244// will use PSS with a salt length of 256 bits or 32 bytes.
245//
246// Algorithms beginning with "RSA_DECRYPT_" are usable with
247// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
248// [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT].
249//
250// The fields in the name after "RSA_DECRYPT_" correspond to the following
251// parameters: padding algorithm, modulus bit length, and digest algorithm.
252//
253// Algorithms beginning with "EC_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
254// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
255//
256// The fields in the name after "EC_SIGN_" correspond to the following
257// parameters: elliptic curve, digest algorithm.
258//
259// Algorithms beginning with "HMAC_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
260// [MAC][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.MAC].
261//
262// The suffix following "HMAC_" corresponds to the hash algorithm being used
263// (eg. SHA256).
264//
265// For more information, see [Key purposes and algorithms]
266// (https://cloud.google.com/kms/docs/algorithms).
267type CryptoKeyVersion_CryptoKeyVersionAlgorithm int32
268
269const (
270	// Not specified.
271	CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionAlgorithm = 0
272	// Creates symmetric encryption keys.
273	CryptoKeyVersion_GOOGLE_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 1
274	// RSASSA-PSS 2048 bit key with a SHA256 digest.
275	CryptoKeyVersion_RSA_SIGN_PSS_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 2
276	// RSASSA-PSS 3072 bit key with a SHA256 digest.
277	CryptoKeyVersion_RSA_SIGN_PSS_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 3
278	// RSASSA-PSS 4096 bit key with a SHA256 digest.
279	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 4
280	// RSASSA-PSS 4096 bit key with a SHA512 digest.
281	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 15
282	// RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
283	CryptoKeyVersion_RSA_SIGN_PKCS1_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 5
284	// RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
285	CryptoKeyVersion_RSA_SIGN_PKCS1_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 6
286	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
287	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 7
288	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
289	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 16
290	// RSAES-OAEP 2048 bit key with a SHA256 digest.
291	CryptoKeyVersion_RSA_DECRYPT_OAEP_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 8
292	// RSAES-OAEP 3072 bit key with a SHA256 digest.
293	CryptoKeyVersion_RSA_DECRYPT_OAEP_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 9
294	// RSAES-OAEP 4096 bit key with a SHA256 digest.
295	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 10
296	// RSAES-OAEP 4096 bit key with a SHA512 digest.
297	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 17
298	// ECDSA on the NIST P-256 curve with a SHA256 digest.
299	CryptoKeyVersion_EC_SIGN_P256_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 12
300	// ECDSA on the NIST P-384 curve with a SHA384 digest.
301	CryptoKeyVersion_EC_SIGN_P384_SHA384 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 13
302	// ECDSA on the non-NIST secp256k1 curve. This curve is only supported for
303	// HSM protection level.
304	CryptoKeyVersion_EC_SIGN_SECP256K1_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 31
305	// HMAC-SHA256 signing with a 256 bit key.
306	CryptoKeyVersion_HMAC_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 32
307	// Algorithm representing symmetric encryption by an external key manager.
308	CryptoKeyVersion_EXTERNAL_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 18
309)
310
311// Enum value maps for CryptoKeyVersion_CryptoKeyVersionAlgorithm.
312var (
313	CryptoKeyVersion_CryptoKeyVersionAlgorithm_name = map[int32]string{
314		0:  "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED",
315		1:  "GOOGLE_SYMMETRIC_ENCRYPTION",
316		2:  "RSA_SIGN_PSS_2048_SHA256",
317		3:  "RSA_SIGN_PSS_3072_SHA256",
318		4:  "RSA_SIGN_PSS_4096_SHA256",
319		15: "RSA_SIGN_PSS_4096_SHA512",
320		5:  "RSA_SIGN_PKCS1_2048_SHA256",
321		6:  "RSA_SIGN_PKCS1_3072_SHA256",
322		7:  "RSA_SIGN_PKCS1_4096_SHA256",
323		16: "RSA_SIGN_PKCS1_4096_SHA512",
324		8:  "RSA_DECRYPT_OAEP_2048_SHA256",
325		9:  "RSA_DECRYPT_OAEP_3072_SHA256",
326		10: "RSA_DECRYPT_OAEP_4096_SHA256",
327		17: "RSA_DECRYPT_OAEP_4096_SHA512",
328		12: "EC_SIGN_P256_SHA256",
329		13: "EC_SIGN_P384_SHA384",
330		31: "EC_SIGN_SECP256K1_SHA256",
331		32: "HMAC_SHA256",
332		18: "EXTERNAL_SYMMETRIC_ENCRYPTION",
333	}
334	CryptoKeyVersion_CryptoKeyVersionAlgorithm_value = map[string]int32{
335		"CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED": 0,
336		"GOOGLE_SYMMETRIC_ENCRYPTION":              1,
337		"RSA_SIGN_PSS_2048_SHA256":                 2,
338		"RSA_SIGN_PSS_3072_SHA256":                 3,
339		"RSA_SIGN_PSS_4096_SHA256":                 4,
340		"RSA_SIGN_PSS_4096_SHA512":                 15,
341		"RSA_SIGN_PKCS1_2048_SHA256":               5,
342		"RSA_SIGN_PKCS1_3072_SHA256":               6,
343		"RSA_SIGN_PKCS1_4096_SHA256":               7,
344		"RSA_SIGN_PKCS1_4096_SHA512":               16,
345		"RSA_DECRYPT_OAEP_2048_SHA256":             8,
346		"RSA_DECRYPT_OAEP_3072_SHA256":             9,
347		"RSA_DECRYPT_OAEP_4096_SHA256":             10,
348		"RSA_DECRYPT_OAEP_4096_SHA512":             17,
349		"EC_SIGN_P256_SHA256":                      12,
350		"EC_SIGN_P384_SHA384":                      13,
351		"EC_SIGN_SECP256K1_SHA256":                 31,
352		"HMAC_SHA256":                              32,
353		"EXTERNAL_SYMMETRIC_ENCRYPTION":            18,
354	}
355)
356
357func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) Enum() *CryptoKeyVersion_CryptoKeyVersionAlgorithm {
358	p := new(CryptoKeyVersion_CryptoKeyVersionAlgorithm)
359	*p = x
360	return p
361}
362
363func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) String() string {
364	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
365}
366
367func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) Descriptor() protoreflect.EnumDescriptor {
368	return file_google_cloud_kms_v1_resources_proto_enumTypes[3].Descriptor()
369}
370
371func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) Type() protoreflect.EnumType {
372	return &file_google_cloud_kms_v1_resources_proto_enumTypes[3]
373}
374
375func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) Number() protoreflect.EnumNumber {
376	return protoreflect.EnumNumber(x)
377}
378
379// Deprecated: Use CryptoKeyVersion_CryptoKeyVersionAlgorithm.Descriptor instead.
380func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) EnumDescriptor() ([]byte, []int) {
381	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 0}
382}
383
384// The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating if it can be used.
385type CryptoKeyVersion_CryptoKeyVersionState int32
386
387const (
388	// Not specified.
389	CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionState = 0
390	// This version is still being generated. It may not be used, enabled,
391	// disabled, or destroyed yet. Cloud KMS will automatically mark this
392	// version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready.
393	CryptoKeyVersion_PENDING_GENERATION CryptoKeyVersion_CryptoKeyVersionState = 5
394	// This version may be used for cryptographic operations.
395	CryptoKeyVersion_ENABLED CryptoKeyVersion_CryptoKeyVersionState = 1
396	// This version may not be used, but the key material is still available,
397	// and the version can be placed back into the [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] state.
398	CryptoKeyVersion_DISABLED CryptoKeyVersion_CryptoKeyVersionState = 2
399	// This version is destroyed, and the key material is no longer stored.
400	// This version may only become [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] again if this version is
401	// [reimport_eligible][google.cloud.kms.v1.CryptoKeyVersion.reimport_eligible] and the original
402	// key material is reimported with a call to
403	// [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
404	CryptoKeyVersion_DESTROYED CryptoKeyVersion_CryptoKeyVersionState = 3
405	// This version is scheduled for destruction, and will be destroyed soon.
406	// Call
407	// [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]
408	// to put it back into the [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] state.
409	CryptoKeyVersion_DESTROY_SCHEDULED CryptoKeyVersion_CryptoKeyVersionState = 4
410	// This version is still being imported. It may not be used, enabled,
411	// disabled, or destroyed yet. Cloud KMS will automatically mark this
412	// version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready.
413	CryptoKeyVersion_PENDING_IMPORT CryptoKeyVersion_CryptoKeyVersionState = 6
414	// This version was not imported successfully. It may not be used, enabled,
415	// disabled, or destroyed. The submitted key material has been discarded.
416	// Additional details can be found in
417	// [CryptoKeyVersion.import_failure_reason][google.cloud.kms.v1.CryptoKeyVersion.import_failure_reason].
418	CryptoKeyVersion_IMPORT_FAILED CryptoKeyVersion_CryptoKeyVersionState = 7
419)
420
421// Enum value maps for CryptoKeyVersion_CryptoKeyVersionState.
422var (
423	CryptoKeyVersion_CryptoKeyVersionState_name = map[int32]string{
424		0: "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED",
425		5: "PENDING_GENERATION",
426		1: "ENABLED",
427		2: "DISABLED",
428		3: "DESTROYED",
429		4: "DESTROY_SCHEDULED",
430		6: "PENDING_IMPORT",
431		7: "IMPORT_FAILED",
432	}
433	CryptoKeyVersion_CryptoKeyVersionState_value = map[string]int32{
434		"CRYPTO_KEY_VERSION_STATE_UNSPECIFIED": 0,
435		"PENDING_GENERATION":                   5,
436		"ENABLED":                              1,
437		"DISABLED":                             2,
438		"DESTROYED":                            3,
439		"DESTROY_SCHEDULED":                    4,
440		"PENDING_IMPORT":                       6,
441		"IMPORT_FAILED":                        7,
442	}
443)
444
445func (x CryptoKeyVersion_CryptoKeyVersionState) Enum() *CryptoKeyVersion_CryptoKeyVersionState {
446	p := new(CryptoKeyVersion_CryptoKeyVersionState)
447	*p = x
448	return p
449}
450
451func (x CryptoKeyVersion_CryptoKeyVersionState) String() string {
452	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
453}
454
455func (CryptoKeyVersion_CryptoKeyVersionState) Descriptor() protoreflect.EnumDescriptor {
456	return file_google_cloud_kms_v1_resources_proto_enumTypes[4].Descriptor()
457}
458
459func (CryptoKeyVersion_CryptoKeyVersionState) Type() protoreflect.EnumType {
460	return &file_google_cloud_kms_v1_resources_proto_enumTypes[4]
461}
462
463func (x CryptoKeyVersion_CryptoKeyVersionState) Number() protoreflect.EnumNumber {
464	return protoreflect.EnumNumber(x)
465}
466
467// Deprecated: Use CryptoKeyVersion_CryptoKeyVersionState.Descriptor instead.
468func (CryptoKeyVersion_CryptoKeyVersionState) EnumDescriptor() ([]byte, []int) {
469	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 1}
470}
471
472// A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s. Controls the level of detail returned
473// for [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in
474// [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions] and
475// [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys].
476type CryptoKeyVersion_CryptoKeyVersionView int32
477
478const (
479	// Default view for each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not include
480	// the [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field.
481	CryptoKeyVersion_CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionView = 0
482	// Provides all fields in each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the
483	// [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation].
484	CryptoKeyVersion_FULL CryptoKeyVersion_CryptoKeyVersionView = 1
485)
486
487// Enum value maps for CryptoKeyVersion_CryptoKeyVersionView.
488var (
489	CryptoKeyVersion_CryptoKeyVersionView_name = map[int32]string{
490		0: "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED",
491		1: "FULL",
492	}
493	CryptoKeyVersion_CryptoKeyVersionView_value = map[string]int32{
494		"CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED": 0,
495		"FULL":                                1,
496	}
497)
498
499func (x CryptoKeyVersion_CryptoKeyVersionView) Enum() *CryptoKeyVersion_CryptoKeyVersionView {
500	p := new(CryptoKeyVersion_CryptoKeyVersionView)
501	*p = x
502	return p
503}
504
505func (x CryptoKeyVersion_CryptoKeyVersionView) String() string {
506	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
507}
508
509func (CryptoKeyVersion_CryptoKeyVersionView) Descriptor() protoreflect.EnumDescriptor {
510	return file_google_cloud_kms_v1_resources_proto_enumTypes[5].Descriptor()
511}
512
513func (CryptoKeyVersion_CryptoKeyVersionView) Type() protoreflect.EnumType {
514	return &file_google_cloud_kms_v1_resources_proto_enumTypes[5]
515}
516
517func (x CryptoKeyVersion_CryptoKeyVersionView) Number() protoreflect.EnumNumber {
518	return protoreflect.EnumNumber(x)
519}
520
521// Deprecated: Use CryptoKeyVersion_CryptoKeyVersionView.Descriptor instead.
522func (CryptoKeyVersion_CryptoKeyVersionView) EnumDescriptor() ([]byte, []int) {
523	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 2}
524}
525
526// [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the key wrapping method chosen for this
527// [ImportJob][google.cloud.kms.v1.ImportJob].
528type ImportJob_ImportMethod int32
529
530const (
531	// Not specified.
532	ImportJob_IMPORT_METHOD_UNSPECIFIED ImportJob_ImportMethod = 0
533	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
534	// scheme defined in the PKCS #11 standard. In summary, this involves
535	// wrapping the raw key with an ephemeral AES key, and wrapping the
536	// ephemeral AES key with a 3072 bit RSA key. For more details, see
537	// [RSA AES key wrap
538	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
539	ImportJob_RSA_OAEP_3072_SHA1_AES_256 ImportJob_ImportMethod = 1
540	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
541	// scheme defined in the PKCS #11 standard. In summary, this involves
542	// wrapping the raw key with an ephemeral AES key, and wrapping the
543	// ephemeral AES key with a 4096 bit RSA key. For more details, see
544	// [RSA AES key wrap
545	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
546	ImportJob_RSA_OAEP_4096_SHA1_AES_256 ImportJob_ImportMethod = 2
547)
548
549// Enum value maps for ImportJob_ImportMethod.
550var (
551	ImportJob_ImportMethod_name = map[int32]string{
552		0: "IMPORT_METHOD_UNSPECIFIED",
553		1: "RSA_OAEP_3072_SHA1_AES_256",
554		2: "RSA_OAEP_4096_SHA1_AES_256",
555	}
556	ImportJob_ImportMethod_value = map[string]int32{
557		"IMPORT_METHOD_UNSPECIFIED":  0,
558		"RSA_OAEP_3072_SHA1_AES_256": 1,
559		"RSA_OAEP_4096_SHA1_AES_256": 2,
560	}
561)
562
563func (x ImportJob_ImportMethod) Enum() *ImportJob_ImportMethod {
564	p := new(ImportJob_ImportMethod)
565	*p = x
566	return p
567}
568
569func (x ImportJob_ImportMethod) String() string {
570	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
571}
572
573func (ImportJob_ImportMethod) Descriptor() protoreflect.EnumDescriptor {
574	return file_google_cloud_kms_v1_resources_proto_enumTypes[6].Descriptor()
575}
576
577func (ImportJob_ImportMethod) Type() protoreflect.EnumType {
578	return &file_google_cloud_kms_v1_resources_proto_enumTypes[6]
579}
580
581func (x ImportJob_ImportMethod) Number() protoreflect.EnumNumber {
582	return protoreflect.EnumNumber(x)
583}
584
585// Deprecated: Use ImportJob_ImportMethod.Descriptor instead.
586func (ImportJob_ImportMethod) EnumDescriptor() ([]byte, []int) {
587	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 0}
588}
589
590// The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used.
591type ImportJob_ImportJobState int32
592
593const (
594	// Not specified.
595	ImportJob_IMPORT_JOB_STATE_UNSPECIFIED ImportJob_ImportJobState = 0
596	// The wrapping key for this job is still being generated. It may not be
597	// used. Cloud KMS will automatically mark this job as
598	// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] as soon as the wrapping key is generated.
599	ImportJob_PENDING_GENERATION ImportJob_ImportJobState = 1
600	// This job may be used in
601	// [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey] and
602	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
603	// requests.
604	ImportJob_ACTIVE ImportJob_ImportJobState = 2
605	// This job can no longer be used and may not leave this state once entered.
606	ImportJob_EXPIRED ImportJob_ImportJobState = 3
607)
608
609// Enum value maps for ImportJob_ImportJobState.
610var (
611	ImportJob_ImportJobState_name = map[int32]string{
612		0: "IMPORT_JOB_STATE_UNSPECIFIED",
613		1: "PENDING_GENERATION",
614		2: "ACTIVE",
615		3: "EXPIRED",
616	}
617	ImportJob_ImportJobState_value = map[string]int32{
618		"IMPORT_JOB_STATE_UNSPECIFIED": 0,
619		"PENDING_GENERATION":           1,
620		"ACTIVE":                       2,
621		"EXPIRED":                      3,
622	}
623)
624
625func (x ImportJob_ImportJobState) Enum() *ImportJob_ImportJobState {
626	p := new(ImportJob_ImportJobState)
627	*p = x
628	return p
629}
630
631func (x ImportJob_ImportJobState) String() string {
632	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
633}
634
635func (ImportJob_ImportJobState) Descriptor() protoreflect.EnumDescriptor {
636	return file_google_cloud_kms_v1_resources_proto_enumTypes[7].Descriptor()
637}
638
639func (ImportJob_ImportJobState) Type() protoreflect.EnumType {
640	return &file_google_cloud_kms_v1_resources_proto_enumTypes[7]
641}
642
643func (x ImportJob_ImportJobState) Number() protoreflect.EnumNumber {
644	return protoreflect.EnumNumber(x)
645}
646
647// Deprecated: Use ImportJob_ImportJobState.Descriptor instead.
648func (ImportJob_ImportJobState) EnumDescriptor() ([]byte, []int) {
649	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 1}
650}
651
652// A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of [CryptoKeys][google.cloud.kms.v1.CryptoKey].
653type KeyRing struct {
654	state         protoimpl.MessageState
655	sizeCache     protoimpl.SizeCache
656	unknownFields protoimpl.UnknownFields
657
658	// Output only. The resource name for the [KeyRing][google.cloud.kms.v1.KeyRing] in the format
659	// `projects/*/locations/*/keyRings/*`.
660	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
661	// Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing] was created.
662	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
663}
664
665func (x *KeyRing) Reset() {
666	*x = KeyRing{}
667	if protoimpl.UnsafeEnabled {
668		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[0]
669		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
670		ms.StoreMessageInfo(mi)
671	}
672}
673
674func (x *KeyRing) String() string {
675	return protoimpl.X.MessageStringOf(x)
676}
677
678func (*KeyRing) ProtoMessage() {}
679
680func (x *KeyRing) ProtoReflect() protoreflect.Message {
681	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[0]
682	if protoimpl.UnsafeEnabled && x != nil {
683		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
684		if ms.LoadMessageInfo() == nil {
685			ms.StoreMessageInfo(mi)
686		}
687		return ms
688	}
689	return mi.MessageOf(x)
690}
691
692// Deprecated: Use KeyRing.ProtoReflect.Descriptor instead.
693func (*KeyRing) Descriptor() ([]byte, []int) {
694	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{0}
695}
696
697func (x *KeyRing) GetName() string {
698	if x != nil {
699		return x.Name
700	}
701	return ""
702}
703
704func (x *KeyRing) GetCreateTime() *timestamppb.Timestamp {
705	if x != nil {
706		return x.CreateTime
707	}
708	return nil
709}
710
711// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that can be used for cryptographic
712// operations.
713//
714// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of zero or more [versions][google.cloud.kms.v1.CryptoKeyVersion],
715// which represent the actual key material used in cryptographic operations.
716type CryptoKey struct {
717	state         protoimpl.MessageState
718	sizeCache     protoimpl.SizeCache
719	unknownFields protoimpl.UnknownFields
720
721	// Output only. The resource name for this [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format
722	// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
723	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
724	// Output only. A copy of the "primary" [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used
725	// by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this [CryptoKey][google.cloud.kms.v1.CryptoKey] is given
726	// in [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name].
727	//
728	// The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be updated via
729	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion].
730	//
731	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
732	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] may have a
733	// primary. For other keys, this field will be omitted.
734	Primary *CryptoKeyVersion `protobuf:"bytes,2,opt,name=primary,proto3" json:"primary,omitempty"`
735	// Immutable. The immutable purpose of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
736	Purpose CryptoKey_CryptoKeyPurpose `protobuf:"varint,3,opt,name=purpose,proto3,enum=google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose" json:"purpose,omitempty"`
737	// Output only. The time at which this [CryptoKey][google.cloud.kms.v1.CryptoKey] was created.
738	CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
739	// At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time], the Key Management Service will automatically:
740	//
741	// 1. Create a new version of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
742	// 2. Mark the new version as primary.
743	//
744	// Key rotations performed manually via
745	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] and
746	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]
747	// do not affect [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time].
748	//
749	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
750	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support
751	// automatic rotation. For other keys, this field must be omitted.
752	NextRotationTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=next_rotation_time,json=nextRotationTime,proto3" json:"next_rotation_time,omitempty"`
753	// Controls the rate of automatic rotation.
754	//
755	// Types that are assignable to RotationSchedule:
756	//	*CryptoKey_RotationPeriod
757	RotationSchedule isCryptoKey_RotationSchedule `protobuf_oneof:"rotation_schedule"`
758	// A template describing settings for new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances.
759	// The properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances created by either
760	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or
761	// auto-rotation are controlled by this template.
762	VersionTemplate *CryptoKeyVersionTemplate `protobuf:"bytes,11,opt,name=version_template,json=versionTemplate,proto3" json:"version_template,omitempty"`
763	// Labels with user-defined metadata. For more information, see
764	// [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys).
765	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"`
766	// Immutable. Whether this key may contain imported versions only.
767	ImportOnly bool `protobuf:"varint,13,opt,name=import_only,json=importOnly,proto3" json:"import_only,omitempty"`
768	// Immutable. The period of time that versions of this key spend in the
769	// [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]
770	// state before transitioning to
771	// [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED]. If not
772	// specified at creation time, the default duration is 24 hours.
773	DestroyScheduledDuration *durationpb.Duration `protobuf:"bytes,14,opt,name=destroy_scheduled_duration,json=destroyScheduledDuration,proto3" json:"destroy_scheduled_duration,omitempty"`
774}
775
776func (x *CryptoKey) Reset() {
777	*x = CryptoKey{}
778	if protoimpl.UnsafeEnabled {
779		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[1]
780		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
781		ms.StoreMessageInfo(mi)
782	}
783}
784
785func (x *CryptoKey) String() string {
786	return protoimpl.X.MessageStringOf(x)
787}
788
789func (*CryptoKey) ProtoMessage() {}
790
791func (x *CryptoKey) ProtoReflect() protoreflect.Message {
792	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[1]
793	if protoimpl.UnsafeEnabled && x != nil {
794		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
795		if ms.LoadMessageInfo() == nil {
796			ms.StoreMessageInfo(mi)
797		}
798		return ms
799	}
800	return mi.MessageOf(x)
801}
802
803// Deprecated: Use CryptoKey.ProtoReflect.Descriptor instead.
804func (*CryptoKey) Descriptor() ([]byte, []int) {
805	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{1}
806}
807
808func (x *CryptoKey) GetName() string {
809	if x != nil {
810		return x.Name
811	}
812	return ""
813}
814
815func (x *CryptoKey) GetPrimary() *CryptoKeyVersion {
816	if x != nil {
817		return x.Primary
818	}
819	return nil
820}
821
822func (x *CryptoKey) GetPurpose() CryptoKey_CryptoKeyPurpose {
823	if x != nil {
824		return x.Purpose
825	}
826	return CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED
827}
828
829func (x *CryptoKey) GetCreateTime() *timestamppb.Timestamp {
830	if x != nil {
831		return x.CreateTime
832	}
833	return nil
834}
835
836func (x *CryptoKey) GetNextRotationTime() *timestamppb.Timestamp {
837	if x != nil {
838		return x.NextRotationTime
839	}
840	return nil
841}
842
843func (m *CryptoKey) GetRotationSchedule() isCryptoKey_RotationSchedule {
844	if m != nil {
845		return m.RotationSchedule
846	}
847	return nil
848}
849
850func (x *CryptoKey) GetRotationPeriod() *durationpb.Duration {
851	if x, ok := x.GetRotationSchedule().(*CryptoKey_RotationPeriod); ok {
852		return x.RotationPeriod
853	}
854	return nil
855}
856
857func (x *CryptoKey) GetVersionTemplate() *CryptoKeyVersionTemplate {
858	if x != nil {
859		return x.VersionTemplate
860	}
861	return nil
862}
863
864func (x *CryptoKey) GetLabels() map[string]string {
865	if x != nil {
866		return x.Labels
867	}
868	return nil
869}
870
871func (x *CryptoKey) GetImportOnly() bool {
872	if x != nil {
873		return x.ImportOnly
874	}
875	return false
876}
877
878func (x *CryptoKey) GetDestroyScheduledDuration() *durationpb.Duration {
879	if x != nil {
880		return x.DestroyScheduledDuration
881	}
882	return nil
883}
884
885type isCryptoKey_RotationSchedule interface {
886	isCryptoKey_RotationSchedule()
887}
888
889type CryptoKey_RotationPeriod struct {
890	// [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] will be advanced by this period when the service
891	// automatically rotates a key. Must be at least 24 hours and at most
892	// 876,000 hours.
893	//
894	// If [rotation_period][google.cloud.kms.v1.CryptoKey.rotation_period] is set, [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time] must also be set.
895	//
896	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
897	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support
898	// automatic rotation. For other keys, this field must be omitted.
899	RotationPeriod *durationpb.Duration `protobuf:"bytes,8,opt,name=rotation_period,json=rotationPeriod,proto3,oneof"`
900}
901
902func (*CryptoKey_RotationPeriod) isCryptoKey_RotationSchedule() {}
903
904// A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] specifies the properties to use when creating
905// a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually with
906// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or
907// automatically as a result of auto-rotation.
908type CryptoKeyVersionTemplate struct {
909	state         protoimpl.MessageState
910	sizeCache     protoimpl.SizeCache
911	unknownFields protoimpl.UnknownFields
912
913	// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on
914	// this template. Immutable. Defaults to [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE].
915	ProtectionLevel ProtectionLevel `protobuf:"varint,1,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
916	// Required. [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] to use
917	// when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this template.
918	//
919	// For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
920	// this field is omitted and [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is
921	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
922	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
923}
924
925func (x *CryptoKeyVersionTemplate) Reset() {
926	*x = CryptoKeyVersionTemplate{}
927	if protoimpl.UnsafeEnabled {
928		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[2]
929		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
930		ms.StoreMessageInfo(mi)
931	}
932}
933
934func (x *CryptoKeyVersionTemplate) String() string {
935	return protoimpl.X.MessageStringOf(x)
936}
937
938func (*CryptoKeyVersionTemplate) ProtoMessage() {}
939
940func (x *CryptoKeyVersionTemplate) ProtoReflect() protoreflect.Message {
941	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[2]
942	if protoimpl.UnsafeEnabled && x != nil {
943		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
944		if ms.LoadMessageInfo() == nil {
945			ms.StoreMessageInfo(mi)
946		}
947		return ms
948	}
949	return mi.MessageOf(x)
950}
951
952// Deprecated: Use CryptoKeyVersionTemplate.ProtoReflect.Descriptor instead.
953func (*CryptoKeyVersionTemplate) Descriptor() ([]byte, []int) {
954	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{2}
955}
956
957func (x *CryptoKeyVersionTemplate) GetProtectionLevel() ProtectionLevel {
958	if x != nil {
959		return x.ProtectionLevel
960	}
961	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
962}
963
964func (x *CryptoKeyVersionTemplate) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
965	if x != nil {
966		return x.Algorithm
967	}
968	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
969}
970
971// Contains an HSM-generated attestation about a key operation. For more
972// information, see [Verifying attestations]
973// (https://cloud.google.com/kms/docs/attest-key).
974type KeyOperationAttestation struct {
975	state         protoimpl.MessageState
976	sizeCache     protoimpl.SizeCache
977	unknownFields protoimpl.UnknownFields
978
979	// Output only. The format of the attestation data.
980	Format KeyOperationAttestation_AttestationFormat `protobuf:"varint,4,opt,name=format,proto3,enum=google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat" json:"format,omitempty"`
981	// Output only. The attestation data provided by the HSM when the key
982	// operation was performed.
983	Content []byte `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
984}
985
986func (x *KeyOperationAttestation) Reset() {
987	*x = KeyOperationAttestation{}
988	if protoimpl.UnsafeEnabled {
989		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[3]
990		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
991		ms.StoreMessageInfo(mi)
992	}
993}
994
995func (x *KeyOperationAttestation) String() string {
996	return protoimpl.X.MessageStringOf(x)
997}
998
999func (*KeyOperationAttestation) ProtoMessage() {}
1000
1001func (x *KeyOperationAttestation) ProtoReflect() protoreflect.Message {
1002	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[3]
1003	if protoimpl.UnsafeEnabled && x != nil {
1004		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1005		if ms.LoadMessageInfo() == nil {
1006			ms.StoreMessageInfo(mi)
1007		}
1008		return ms
1009	}
1010	return mi.MessageOf(x)
1011}
1012
1013// Deprecated: Use KeyOperationAttestation.ProtoReflect.Descriptor instead.
1014func (*KeyOperationAttestation) Descriptor() ([]byte, []int) {
1015	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3}
1016}
1017
1018func (x *KeyOperationAttestation) GetFormat() KeyOperationAttestation_AttestationFormat {
1019	if x != nil {
1020		return x.Format
1021	}
1022	return KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED
1023}
1024
1025func (x *KeyOperationAttestation) GetContent() []byte {
1026	if x != nil {
1027		return x.Content
1028	}
1029	return nil
1030}
1031
1032// A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an individual cryptographic key, and the
1033// associated key material.
1034//
1035// An [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] version can be
1036// used for cryptographic operations.
1037//
1038// For security reasons, the raw cryptographic key material represented by a
1039// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed or exported. It can only be used to
1040// encrypt, decrypt, or sign data when an authorized user or application invokes
1041// Cloud KMS.
1042type CryptoKeyVersion struct {
1043	state         protoimpl.MessageState
1044	sizeCache     protoimpl.SizeCache
1045	unknownFields protoimpl.UnknownFields
1046
1047	// Output only. The resource name for this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format
1048	// `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
1049	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1050	// The current state of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
1051	State CryptoKeyVersion_CryptoKeyVersionState `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState" json:"state,omitempty"`
1052	// Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] describing how crypto operations are
1053	// performed with this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
1054	ProtectionLevel ProtectionLevel `protobuf:"varint,7,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
1055	// Output only. The [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] that this
1056	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] supports.
1057	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,10,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
1058	// Output only. Statement that was generated and signed by the HSM at key
1059	// creation time. Use this statement to verify attributes of the key as stored
1060	// on the HSM, independently of Google. Only provided for key versions with
1061	// [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level] [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
1062	Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
1063	// Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created.
1064	CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
1065	// Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was
1066	// generated.
1067	GenerateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
1068	// Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is scheduled
1069	// for destruction. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
1070	// [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED].
1071	DestroyTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=destroy_time,json=destroyTime,proto3" json:"destroy_time,omitempty"`
1072	// Output only. The time this CryptoKeyVersion's key material was
1073	// destroyed. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
1074	// [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED].
1075	DestroyEventTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=destroy_event_time,json=destroyEventTime,proto3" json:"destroy_event_time,omitempty"`
1076	// Output only. The name of the [ImportJob][google.cloud.kms.v1.ImportJob] used in the most recent import of this
1077	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Only present if the underlying key material was
1078	// imported.
1079	ImportJob string `protobuf:"bytes,14,opt,name=import_job,json=importJob,proto3" json:"import_job,omitempty"`
1080	// Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material
1081	// was most recently imported.
1082	ImportTime *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=import_time,json=importTime,proto3" json:"import_time,omitempty"`
1083	// Output only. The root cause of the most recent import failure. Only present if
1084	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
1085	// [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED].
1086	ImportFailureReason string `protobuf:"bytes,16,opt,name=import_failure_reason,json=importFailureReason,proto3" json:"import_failure_reason,omitempty"`
1087	// ExternalProtectionLevelOptions stores a group of additional fields for
1088	// configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that are specific to the
1089	// [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level.
1090	ExternalProtectionLevelOptions *ExternalProtectionLevelOptions `protobuf:"bytes,17,opt,name=external_protection_level_options,json=externalProtectionLevelOptions,proto3" json:"external_protection_level_options,omitempty"`
1091	// Output only. Whether or not this key version is eligible for reimport, by being
1092	// specified as a target in
1093	// [ImportCryptoKeyVersionRequest.crypto_key_version][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.crypto_key_version].
1094	ReimportEligible bool `protobuf:"varint,18,opt,name=reimport_eligible,json=reimportEligible,proto3" json:"reimport_eligible,omitempty"`
1095}
1096
1097func (x *CryptoKeyVersion) Reset() {
1098	*x = CryptoKeyVersion{}
1099	if protoimpl.UnsafeEnabled {
1100		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[4]
1101		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1102		ms.StoreMessageInfo(mi)
1103	}
1104}
1105
1106func (x *CryptoKeyVersion) String() string {
1107	return protoimpl.X.MessageStringOf(x)
1108}
1109
1110func (*CryptoKeyVersion) ProtoMessage() {}
1111
1112func (x *CryptoKeyVersion) ProtoReflect() protoreflect.Message {
1113	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[4]
1114	if protoimpl.UnsafeEnabled && x != nil {
1115		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1116		if ms.LoadMessageInfo() == nil {
1117			ms.StoreMessageInfo(mi)
1118		}
1119		return ms
1120	}
1121	return mi.MessageOf(x)
1122}
1123
1124// Deprecated: Use CryptoKeyVersion.ProtoReflect.Descriptor instead.
1125func (*CryptoKeyVersion) Descriptor() ([]byte, []int) {
1126	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4}
1127}
1128
1129func (x *CryptoKeyVersion) GetName() string {
1130	if x != nil {
1131		return x.Name
1132	}
1133	return ""
1134}
1135
1136func (x *CryptoKeyVersion) GetState() CryptoKeyVersion_CryptoKeyVersionState {
1137	if x != nil {
1138		return x.State
1139	}
1140	return CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED
1141}
1142
1143func (x *CryptoKeyVersion) GetProtectionLevel() ProtectionLevel {
1144	if x != nil {
1145		return x.ProtectionLevel
1146	}
1147	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
1148}
1149
1150func (x *CryptoKeyVersion) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
1151	if x != nil {
1152		return x.Algorithm
1153	}
1154	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
1155}
1156
1157func (x *CryptoKeyVersion) GetAttestation() *KeyOperationAttestation {
1158	if x != nil {
1159		return x.Attestation
1160	}
1161	return nil
1162}
1163
1164func (x *CryptoKeyVersion) GetCreateTime() *timestamppb.Timestamp {
1165	if x != nil {
1166		return x.CreateTime
1167	}
1168	return nil
1169}
1170
1171func (x *CryptoKeyVersion) GetGenerateTime() *timestamppb.Timestamp {
1172	if x != nil {
1173		return x.GenerateTime
1174	}
1175	return nil
1176}
1177
1178func (x *CryptoKeyVersion) GetDestroyTime() *timestamppb.Timestamp {
1179	if x != nil {
1180		return x.DestroyTime
1181	}
1182	return nil
1183}
1184
1185func (x *CryptoKeyVersion) GetDestroyEventTime() *timestamppb.Timestamp {
1186	if x != nil {
1187		return x.DestroyEventTime
1188	}
1189	return nil
1190}
1191
1192func (x *CryptoKeyVersion) GetImportJob() string {
1193	if x != nil {
1194		return x.ImportJob
1195	}
1196	return ""
1197}
1198
1199func (x *CryptoKeyVersion) GetImportTime() *timestamppb.Timestamp {
1200	if x != nil {
1201		return x.ImportTime
1202	}
1203	return nil
1204}
1205
1206func (x *CryptoKeyVersion) GetImportFailureReason() string {
1207	if x != nil {
1208		return x.ImportFailureReason
1209	}
1210	return ""
1211}
1212
1213func (x *CryptoKeyVersion) GetExternalProtectionLevelOptions() *ExternalProtectionLevelOptions {
1214	if x != nil {
1215		return x.ExternalProtectionLevelOptions
1216	}
1217	return nil
1218}
1219
1220func (x *CryptoKeyVersion) GetReimportEligible() bool {
1221	if x != nil {
1222		return x.ReimportEligible
1223	}
1224	return false
1225}
1226
1227// The public key for a given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via
1228// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
1229type PublicKey struct {
1230	state         protoimpl.MessageState
1231	sizeCache     protoimpl.SizeCache
1232	unknownFields protoimpl.UnknownFields
1233
1234	// The public key, encoded in PEM format. For more information, see the
1235	// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for
1236	// [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
1237	// [Textual Encoding of Subject Public Key Info]
1238	// (https://tools.ietf.org/html/rfc7468#section-13).
1239	Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
1240	// The [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] associated
1241	// with this key.
1242	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
1243	// Integrity verification field. A CRC32C checksum of the returned
1244	// [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem]. An integrity check of [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] can be performed
1245	// by computing the CRC32C checksum of [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] and
1246	// comparing your results to this field. Discard the response in case of
1247	// non-matching checksum values, and perform a limited number of retries. A
1248	// persistent mismatch may indicate an issue in your computation of the CRC32C
1249	// checksum.
1250	// Note: This field is defined as int64 for reasons of compatibility across
1251	// different languages. However, it is a non-negative integer, which will
1252	// never exceed 2^32-1, and can be safely downconverted to uint32 in languages
1253	// that support this type.
1254	//
1255	// NOTE: This field is in Beta.
1256	PemCrc32C *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=pem_crc32c,json=pemCrc32c,proto3" json:"pem_crc32c,omitempty"`
1257	// The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key.
1258	// Provided here for verification.
1259	//
1260	// NOTE: This field is in Beta.
1261	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
1262	// The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key.
1263	ProtectionLevel ProtectionLevel `protobuf:"varint,5,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
1264}
1265
1266func (x *PublicKey) Reset() {
1267	*x = PublicKey{}
1268	if protoimpl.UnsafeEnabled {
1269		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[5]
1270		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1271		ms.StoreMessageInfo(mi)
1272	}
1273}
1274
1275func (x *PublicKey) String() string {
1276	return protoimpl.X.MessageStringOf(x)
1277}
1278
1279func (*PublicKey) ProtoMessage() {}
1280
1281func (x *PublicKey) ProtoReflect() protoreflect.Message {
1282	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[5]
1283	if protoimpl.UnsafeEnabled && x != nil {
1284		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1285		if ms.LoadMessageInfo() == nil {
1286			ms.StoreMessageInfo(mi)
1287		}
1288		return ms
1289	}
1290	return mi.MessageOf(x)
1291}
1292
1293// Deprecated: Use PublicKey.ProtoReflect.Descriptor instead.
1294func (*PublicKey) Descriptor() ([]byte, []int) {
1295	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{5}
1296}
1297
1298func (x *PublicKey) GetPem() string {
1299	if x != nil {
1300		return x.Pem
1301	}
1302	return ""
1303}
1304
1305func (x *PublicKey) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
1306	if x != nil {
1307		return x.Algorithm
1308	}
1309	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
1310}
1311
1312func (x *PublicKey) GetPemCrc32C() *wrapperspb.Int64Value {
1313	if x != nil {
1314		return x.PemCrc32C
1315	}
1316	return nil
1317}
1318
1319func (x *PublicKey) GetName() string {
1320	if x != nil {
1321		return x.Name
1322	}
1323	return ""
1324}
1325
1326func (x *PublicKey) GetProtectionLevel() ProtectionLevel {
1327	if x != nil {
1328		return x.ProtectionLevel
1329	}
1330	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
1331}
1332
1333// An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create [CryptoKeys][google.cloud.kms.v1.CryptoKey] and
1334// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing key material,
1335// generated outside of Cloud KMS.
1336//
1337// When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will generate a "wrapping key",
1338// which is a public/private key pair. You use the wrapping key to encrypt (also
1339// known as wrap) the pre-existing key material to protect it during the import
1340// process. The nature of the wrapping key depends on the choice of
1341// [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the wrapping key generation
1342// is complete, the [state][google.cloud.kms.v1.ImportJob.state] will be set to
1343// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the [public_key][google.cloud.kms.v1.ImportJob.public_key]
1344// can be fetched. The fetched public key can then be used to wrap your
1345// pre-existing key material.
1346//
1347// Once the key material is wrapped, it can be imported into a new
1348// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling
1349// [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
1350// Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be imported with a single
1351// [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS uses the private key portion of the wrapping key to
1352// unwrap the key material. Only Cloud KMS has access to the private key.
1353//
1354// An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is created. Once expired, Cloud KMS
1355// will no longer be able to import or unwrap any key material that was wrapped
1356// with the [ImportJob][google.cloud.kms.v1.ImportJob]'s public key.
1357//
1358// For more information, see
1359// [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).
1360type ImportJob struct {
1361	state         protoimpl.MessageState
1362	sizeCache     protoimpl.SizeCache
1363	unknownFields protoimpl.UnknownFields
1364
1365	// Output only. The resource name for this [ImportJob][google.cloud.kms.v1.ImportJob] in the format
1366	// `projects/*/locations/*/keyRings/*/importJobs/*`.
1367	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1368	// Required. Immutable. The wrapping method to be used for incoming key material.
1369	ImportMethod ImportJob_ImportMethod `protobuf:"varint,2,opt,name=import_method,json=importMethod,proto3,enum=google.cloud.kms.v1.ImportJob_ImportMethod" json:"import_method,omitempty"`
1370	// Required. Immutable. The protection level of the [ImportJob][google.cloud.kms.v1.ImportJob]. This must match the
1371	// [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] of the
1372	// [version_template][google.cloud.kms.v1.CryptoKey.version_template] on the [CryptoKey][google.cloud.kms.v1.CryptoKey] you
1373	// attempt to import into.
1374	ProtectionLevel ProtectionLevel `protobuf:"varint,9,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
1375	// Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] was created.
1376	CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
1377	// Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]'s key material was generated.
1378	GenerateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
1379	// Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] is scheduled for
1380	// expiration and can no longer be used to import key material.
1381	ExpireTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
1382	// Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob] expired. Only present if
1383	// [state][google.cloud.kms.v1.ImportJob.state] is [EXPIRED][google.cloud.kms.v1.ImportJob.ImportJobState.EXPIRED].
1384	ExpireEventTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expire_event_time,json=expireEventTime,proto3" json:"expire_event_time,omitempty"`
1385	// Output only. The current state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can
1386	// be used.
1387	State ImportJob_ImportJobState `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.kms.v1.ImportJob_ImportJobState" json:"state,omitempty"`
1388	// Output only. The public key with which to wrap key material prior to
1389	// import. Only returned if [state][google.cloud.kms.v1.ImportJob.state] is
1390	// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE].
1391	PublicKey *ImportJob_WrappingPublicKey `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
1392	// Output only. Statement that was generated and signed by the key creator
1393	// (for example, an HSM) at key creation time. Use this statement to verify
1394	// attributes of the key as stored on the HSM, independently of Google.
1395	// Only present if the chosen [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] is one with a protection
1396	// level of [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
1397	Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
1398}
1399
1400func (x *ImportJob) Reset() {
1401	*x = ImportJob{}
1402	if protoimpl.UnsafeEnabled {
1403		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[6]
1404		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1405		ms.StoreMessageInfo(mi)
1406	}
1407}
1408
1409func (x *ImportJob) String() string {
1410	return protoimpl.X.MessageStringOf(x)
1411}
1412
1413func (*ImportJob) ProtoMessage() {}
1414
1415func (x *ImportJob) ProtoReflect() protoreflect.Message {
1416	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[6]
1417	if protoimpl.UnsafeEnabled && x != nil {
1418		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1419		if ms.LoadMessageInfo() == nil {
1420			ms.StoreMessageInfo(mi)
1421		}
1422		return ms
1423	}
1424	return mi.MessageOf(x)
1425}
1426
1427// Deprecated: Use ImportJob.ProtoReflect.Descriptor instead.
1428func (*ImportJob) Descriptor() ([]byte, []int) {
1429	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6}
1430}
1431
1432func (x *ImportJob) GetName() string {
1433	if x != nil {
1434		return x.Name
1435	}
1436	return ""
1437}
1438
1439func (x *ImportJob) GetImportMethod() ImportJob_ImportMethod {
1440	if x != nil {
1441		return x.ImportMethod
1442	}
1443	return ImportJob_IMPORT_METHOD_UNSPECIFIED
1444}
1445
1446func (x *ImportJob) GetProtectionLevel() ProtectionLevel {
1447	if x != nil {
1448		return x.ProtectionLevel
1449	}
1450	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
1451}
1452
1453func (x *ImportJob) GetCreateTime() *timestamppb.Timestamp {
1454	if x != nil {
1455		return x.CreateTime
1456	}
1457	return nil
1458}
1459
1460func (x *ImportJob) GetGenerateTime() *timestamppb.Timestamp {
1461	if x != nil {
1462		return x.GenerateTime
1463	}
1464	return nil
1465}
1466
1467func (x *ImportJob) GetExpireTime() *timestamppb.Timestamp {
1468	if x != nil {
1469		return x.ExpireTime
1470	}
1471	return nil
1472}
1473
1474func (x *ImportJob) GetExpireEventTime() *timestamppb.Timestamp {
1475	if x != nil {
1476		return x.ExpireEventTime
1477	}
1478	return nil
1479}
1480
1481func (x *ImportJob) GetState() ImportJob_ImportJobState {
1482	if x != nil {
1483		return x.State
1484	}
1485	return ImportJob_IMPORT_JOB_STATE_UNSPECIFIED
1486}
1487
1488func (x *ImportJob) GetPublicKey() *ImportJob_WrappingPublicKey {
1489	if x != nil {
1490		return x.PublicKey
1491	}
1492	return nil
1493}
1494
1495func (x *ImportJob) GetAttestation() *KeyOperationAttestation {
1496	if x != nil {
1497		return x.Attestation
1498	}
1499	return nil
1500}
1501
1502// ExternalProtectionLevelOptions stores a group of additional fields for
1503// configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that are specific to the
1504// [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level.
1505type ExternalProtectionLevelOptions struct {
1506	state         protoimpl.MessageState
1507	sizeCache     protoimpl.SizeCache
1508	unknownFields protoimpl.UnknownFields
1509
1510	// The URI for an external resource that this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents.
1511	ExternalKeyUri string `protobuf:"bytes,1,opt,name=external_key_uri,json=externalKeyUri,proto3" json:"external_key_uri,omitempty"`
1512}
1513
1514func (x *ExternalProtectionLevelOptions) Reset() {
1515	*x = ExternalProtectionLevelOptions{}
1516	if protoimpl.UnsafeEnabled {
1517		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[7]
1518		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1519		ms.StoreMessageInfo(mi)
1520	}
1521}
1522
1523func (x *ExternalProtectionLevelOptions) String() string {
1524	return protoimpl.X.MessageStringOf(x)
1525}
1526
1527func (*ExternalProtectionLevelOptions) ProtoMessage() {}
1528
1529func (x *ExternalProtectionLevelOptions) ProtoReflect() protoreflect.Message {
1530	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[7]
1531	if protoimpl.UnsafeEnabled && x != nil {
1532		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1533		if ms.LoadMessageInfo() == nil {
1534			ms.StoreMessageInfo(mi)
1535		}
1536		return ms
1537	}
1538	return mi.MessageOf(x)
1539}
1540
1541// Deprecated: Use ExternalProtectionLevelOptions.ProtoReflect.Descriptor instead.
1542func (*ExternalProtectionLevelOptions) Descriptor() ([]byte, []int) {
1543	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{7}
1544}
1545
1546func (x *ExternalProtectionLevelOptions) GetExternalKeyUri() string {
1547	if x != nil {
1548		return x.ExternalKeyUri
1549	}
1550	return ""
1551}
1552
1553// The public key component of the wrapping key. For details of the type of
1554// key this public key corresponds to, see the [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod].
1555type ImportJob_WrappingPublicKey struct {
1556	state         protoimpl.MessageState
1557	sizeCache     protoimpl.SizeCache
1558	unknownFields protoimpl.UnknownFields
1559
1560	// The public key, encoded in PEM format. For more information, see the [RFC
1561	// 7468](https://tools.ietf.org/html/rfc7468) sections for [General
1562	// Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
1563	// [Textual Encoding of Subject Public Key Info]
1564	// (https://tools.ietf.org/html/rfc7468#section-13).
1565	Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
1566}
1567
1568func (x *ImportJob_WrappingPublicKey) Reset() {
1569	*x = ImportJob_WrappingPublicKey{}
1570	if protoimpl.UnsafeEnabled {
1571		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[9]
1572		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1573		ms.StoreMessageInfo(mi)
1574	}
1575}
1576
1577func (x *ImportJob_WrappingPublicKey) String() string {
1578	return protoimpl.X.MessageStringOf(x)
1579}
1580
1581func (*ImportJob_WrappingPublicKey) ProtoMessage() {}
1582
1583func (x *ImportJob_WrappingPublicKey) ProtoReflect() protoreflect.Message {
1584	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[9]
1585	if protoimpl.UnsafeEnabled && x != nil {
1586		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1587		if ms.LoadMessageInfo() == nil {
1588			ms.StoreMessageInfo(mi)
1589		}
1590		return ms
1591	}
1592	return mi.MessageOf(x)
1593}
1594
1595// Deprecated: Use ImportJob_WrappingPublicKey.ProtoReflect.Descriptor instead.
1596func (*ImportJob_WrappingPublicKey) Descriptor() ([]byte, []int) {
1597	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 0}
1598}
1599
1600func (x *ImportJob_WrappingPublicKey) GetPem() string {
1601	if x != nil {
1602		return x.Pem
1603	}
1604	return ""
1605}
1606
1607var File_google_cloud_kms_v1_resources_proto protoreflect.FileDescriptor
1608
1609var file_google_cloud_kms_v1_resources_proto_rawDesc = []byte{
1610	0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6b,
1611	0x6d, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e,
1612	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
1613	0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
1614	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
1615	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
1616	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
1617	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
1618	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1619	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
1620	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
1621	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
1622	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
1623	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
1624	0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e,
1625	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x52, 0x69, 0x6e,
1626	0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42,
1627	0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72,
1628	0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
1629	0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
1630	0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03,
1631	0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x61, 0xea, 0x41,
1632	0x5e, 0x0a, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1633	0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x65, 0x79, 0x52, 0x69,
1634	0x6e, 0x67, 0x12, 0x3b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72,
1635	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
1636	0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52,
1637	0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x22,
1638	0xff, 0x07, 0x0a, 0x09, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x17, 0x0a,
1639	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
1640	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
1641	0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1642	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
1643	0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x03,
1644	0xe0, 0x41, 0x03, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x4e, 0x0a, 0x07,
1645	0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e,
1646	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73,
1647	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x2e, 0x43, 0x72,
1648	0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x42, 0x03,
1649	0xe0, 0x41, 0x05, 0x52, 0x07, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b,
1650	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
1651	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1652	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
1653	0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48,
1654	0x0a, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
1655	0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
1656	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d,
1657	0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x6f, 0x74, 0x61,
1658	0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x6f, 0x74, 0x61,
1659	0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
1660	0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1661	0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0e,
1662	0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x12, 0x58,
1663	0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61,
1664	0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1665	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43,
1666	0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54,
1667	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
1668	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
1669	0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1670	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43,
1671	0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45,
1672	0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x24, 0x0a, 0x0b,
1673	0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28,
1674	0x08, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4f, 0x6e,
1675	0x6c, 0x79, 0x12, 0x5c, 0x0a, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x73, 0x63,
1676	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1677	0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1678	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f,
1679	0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x53,
1680	0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1681	0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
1682	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
1683	0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
1684	0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x81, 0x01, 0x0a, 0x10,
1685	0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65,
1686	0x12, 0x22, 0x0a, 0x1e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x50,
1687	0x55, 0x52, 0x50, 0x4f, 0x53, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
1688	0x45, 0x44, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f,
1689	0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x53, 0x59,
1690	0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x05, 0x12, 0x16,
1691	0x0a, 0x12, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x45, 0x43,
1692	0x52, 0x59, 0x50, 0x54, 0x10, 0x06, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x43, 0x10, 0x09, 0x3a,
1693	0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67,
1694	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72,
1695	0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
1696	0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61,
1697	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d,
1698	0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72,
1699	0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f,
1700	0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x42, 0x13, 0x0a, 0x11,
1701	0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c,
1702	0x65, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56,
1703	0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x4f,
1704	0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76,
1705	0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1706	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50,
1707	0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0f,
1708	0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
1709	0x62, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x03, 0x20, 0x01,
1710	0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
1711	0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b,
1712	0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f,
1713	0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69,
1714	0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69,
1715	0x74, 0x68, 0x6d, 0x22, 0x82, 0x02, 0x0a, 0x17, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61,
1716	0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12,
1717	0x5b, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32,
1718	0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b,
1719	0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69,
1720	0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x41, 0x74,
1721	0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x42,
1722	0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x1d, 0x0a, 0x07,
1723	0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0c, 0x42, 0x03, 0xe0,
1724	0x41, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0x6b, 0x0a, 0x11, 0x41,
1725	0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74,
1726	0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f,
1727	0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49,
1728	0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x56, 0x49, 0x55, 0x4d, 0x5f, 0x56,
1729	0x31, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x10, 0x03, 0x12, 0x18,
1730	0x0a, 0x14, 0x43, 0x41, 0x56, 0x49, 0x55, 0x4d, 0x5f, 0x56, 0x32, 0x5f, 0x43, 0x4f, 0x4d, 0x50,
1731	0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x10, 0x04, 0x22, 0xa6, 0x10, 0x0a, 0x10, 0x43, 0x72, 0x79,
1732	0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a,
1733	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03,
1734	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
1735	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
1736	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70,
1737	0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79,
1738	0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61,
1739	0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x10, 0x70, 0x72, 0x6f,
1740	0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20,
1741	0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
1742	0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63,
1743	0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f,
1744	0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
1745	0x62, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x0a, 0x20, 0x01,
1746	0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
1747	0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b,
1748	0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f,
1749	0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69,
1750	0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69,
1751	0x74, 0x68, 0x6d, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69,
1752	0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1753	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b,
1754	0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73,
1755	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74,
1756	0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61,
1757	0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
1758	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
1759	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a,
1760	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x67, 0x65,
1761	0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28,
1762	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1763	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
1764	0x41, 0x03, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
1765	0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65,
1766	0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1767	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
1768	0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79,
1769	0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f,
1770	0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b,
1771	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
1772	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41,
1773	0x03, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
1774	0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6a, 0x6f,
1775	0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x69, 0x6d,
1776	0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x40, 0x0a, 0x0b, 0x69, 0x6d, 0x70, 0x6f, 0x72,
1777	0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
1778	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
1779	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x69,
1780	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6d, 0x70,
1781	0x6f, 0x72, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73,
1782	0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x13, 0x69,
1783	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73,
1784	0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x21, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70,
1785	0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f,
1786	0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e,
1787	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73,
1788	0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74,
1789	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
1790	0x6e, 0x73, 0x52, 0x1e, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74,
1791	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
1792	0x6e, 0x73, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65,
1793	0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0,
1794	0x41, 0x03, 0x52, 0x10, 0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6c, 0x69, 0x67,
1795	0x69, 0x62, 0x6c, 0x65, 0x22, 0xee, 0x04, 0x0a, 0x19, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b,
1796	0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74,
1797	0x68, 0x6d, 0x12, 0x2c, 0x0a, 0x28, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59,
1798	0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54,
1799	0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
1800	0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x4f, 0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x4d, 0x4d, 0x45,
1801	0x54, 0x52, 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10,
1802	0x01, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53,
1803	0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12,
1804	0x1c, 0x0a, 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f,
1805	0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x1c, 0x0a,
1806	0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x34, 0x30,
1807	0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x52,
1808	0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36,
1809	0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x0f, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
1810	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x32, 0x30, 0x34, 0x38,
1811	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
1812	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x33, 0x30, 0x37, 0x32,
1813	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
1814	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36,
1815	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
1816	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36,
1817	0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x10, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41,
1818	0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x32, 0x30,
1819	0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x52,
1820	0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f,
1821	0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x09, 0x12, 0x20, 0x0a,
1822	0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45,
1823	0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x0a, 0x12,
1824	0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f,
1825	0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10,
1826	0x11, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x32, 0x35,
1827	0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x0c, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43,
1828	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x33, 0x38, 0x34, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38,
1829	0x34, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x53,
1830	0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10,
1831	0x1f, 0x12, 0x0f, 0x0a, 0x0b, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36,
1832	0x10, 0x20, 0x12, 0x21, 0x0a, 0x1d, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53,
1833	0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54,
1834	0x49, 0x4f, 0x4e, 0x10, 0x12, 0x22, 0xc1, 0x01, 0x0a, 0x15, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f,
1835	0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12,
1836	0x28, 0x0a, 0x24, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x45,
1837	0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50,
1838	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4e,
1839	0x44, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10,
1840	0x05, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c,
1841	0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09,
1842	0x44, 0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44,
1843	0x45, 0x53, 0x54, 0x52, 0x4f, 0x59, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44,
1844	0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4d,
1845	0x50, 0x4f, 0x52, 0x54, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54,
1846	0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x22, 0x49, 0x0a, 0x14, 0x43, 0x72, 0x79,
1847	0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65,
1848	0x77, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f,
1849	0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f, 0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53,
1850	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55,
1851	0x4c, 0x4c, 0x10, 0x01, 0x3a, 0xaa, 0x01, 0xea, 0x41, 0xa6, 0x01, 0x0a, 0x28, 0x63, 0x6c, 0x6f,
1852	0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73,
1853	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65,
1854	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f,
1855	0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69,
1856	0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b,
1857	0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e,
1858	0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63,
1859	0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74,
1860	0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72,
1861	0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
1862	0x7d, 0x22, 0xce, 0x03, 0x0a, 0x09, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12,
1863	0x10, 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x65,
1864	0x6d, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02,
1865	0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
1866	0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74,
1867	0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70,
1868	0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f,
1869	0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d,
1870	0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x65, 0x6d, 0x5f, 0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x18, 0x03,
1871	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
1872	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49, 0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75,
1873	0x65, 0x52, 0x09, 0x70, 0x65, 0x6d, 0x43, 0x72, 0x63, 0x33, 0x32, 0x63, 0x12, 0x12, 0x0a, 0x04,
1874	0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65,
1875	0x12, 0x4f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c,
1876	0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f,
1877	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31,
1878	0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c,
1879	0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65,
1880	0x6c, 0x3a, 0xae, 0x01, 0xea, 0x41, 0xaa, 0x01, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b,
1881	0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
1882	0x6d, 0x2f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x84, 0x01, 0x70, 0x72,
1883	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d,
1884	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61,
1885	0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b,
1886	0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f,
1887	0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79,
1888	0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69,
1889	0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f,
1890	0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b,
1891	0x65, 0x79, 0x22, 0xdb, 0x08, 0x0a, 0x09, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62,
1892	0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
1893	0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x58, 0x0a, 0x0d, 0x69, 0x6d, 0x70,
1894	0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
1895	0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
1896	0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62,
1897	0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x06, 0xe0,
1898	0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74,
1899	0x68, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f,
1900	0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e,
1901	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73,
1902	0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65,
1903	0x76, 0x65, 0x6c, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0f, 0x70, 0x72, 0x6f,
1904	0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b,
1905	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28,
1906	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1907	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
1908	0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44,
1909	0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
1910	0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
1911	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
1912	0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65,
1913	0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74,
1914	0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
1915	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
1916	0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69,
1917	0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b, 0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65,
1918	0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28,
1919	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1920	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
1921	0x41, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54,
1922	0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01,
1923	0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
1924	0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a,
1925	0x6f, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74,
1926	0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a,
1927	0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28,
1928	0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64,
1929	0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f,
1930	0x62, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
1931	0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63,
1932	0x4b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69,
1933	0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1934	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b,
1935	0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73,
1936	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74,
1937	0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x1a, 0x25, 0x0a, 0x11, 0x57, 0x72, 0x61, 0x70,
1938	0x70, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a,
1939	0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x65, 0x6d, 0x22,
1940	0x6d, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12,
1941	0x1d, 0x0a, 0x19, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44,
1942	0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e,
1943	0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f,
1944	0x53, 0x48, 0x41, 0x31, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x1e,
1945	0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f,
1946	0x53, 0x48, 0x41, 0x31, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x02, 0x22, 0x63,
1947	0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65,
1948	0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x53,
1949	0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
1950	0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x47, 0x45,
1951	0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43,
1952	0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52, 0x45,
1953	0x44, 0x10, 0x03, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b,
1954	0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
1955	0x6d, 0x2f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x53, 0x70, 0x72, 0x6f,
1956	0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f,
1957	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74,
1958	0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b,
1959	0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a,
1960	0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x7d,
1961	0x22, 0x4a, 0x0a, 0x1e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74,
1962	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f,
1963	0x6e, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x6b,
1964	0x65, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x78,
1965	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x55, 0x72, 0x69, 0x2a, 0x58, 0x0a, 0x0f,
1966	0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12,
1967	0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x54, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45,
1968	0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10,
1969	0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x10, 0x01, 0x12,
1970	0x07, 0x0a, 0x03, 0x48, 0x53, 0x4d, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45,
1971	0x52, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x42, 0x95, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67,
1972	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e,
1973	0x76, 0x31, 0x42, 0x11, 0x4b, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73,
1974	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x36, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1975	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
1976	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63,
1977	0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6b, 0x6d, 0x73, 0x2f, 0x76, 0x31, 0x3b, 0x6b, 0x6d, 0x73, 0xf8,
1978	0x01, 0x01, 0xaa, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75,
1979	0x64, 0x2e, 0x4b, 0x6d, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c,
1980	0x65, 0x5c, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4b, 0x6d, 0x73, 0x5c, 0x56, 0x31, 0x62, 0x06,
1981	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1982}
1983
1984var (
1985	file_google_cloud_kms_v1_resources_proto_rawDescOnce sync.Once
1986	file_google_cloud_kms_v1_resources_proto_rawDescData = file_google_cloud_kms_v1_resources_proto_rawDesc
1987)
1988
1989func file_google_cloud_kms_v1_resources_proto_rawDescGZIP() []byte {
1990	file_google_cloud_kms_v1_resources_proto_rawDescOnce.Do(func() {
1991		file_google_cloud_kms_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_kms_v1_resources_proto_rawDescData)
1992	})
1993	return file_google_cloud_kms_v1_resources_proto_rawDescData
1994}
1995
1996var file_google_cloud_kms_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 8)
1997var file_google_cloud_kms_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 10)
1998var file_google_cloud_kms_v1_resources_proto_goTypes = []interface{}{
1999	(ProtectionLevel)(0),                            // 0: google.cloud.kms.v1.ProtectionLevel
2000	(CryptoKey_CryptoKeyPurpose)(0),                 // 1: google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose
2001	(KeyOperationAttestation_AttestationFormat)(0),  // 2: google.cloud.kms.v1.KeyOperationAttestation.AttestationFormat
2002	(CryptoKeyVersion_CryptoKeyVersionAlgorithm)(0), // 3: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
2003	(CryptoKeyVersion_CryptoKeyVersionState)(0),     // 4: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState
2004	(CryptoKeyVersion_CryptoKeyVersionView)(0),      // 5: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView
2005	(ImportJob_ImportMethod)(0),                     // 6: google.cloud.kms.v1.ImportJob.ImportMethod
2006	(ImportJob_ImportJobState)(0),                   // 7: google.cloud.kms.v1.ImportJob.ImportJobState
2007	(*KeyRing)(nil),                                 // 8: google.cloud.kms.v1.KeyRing
2008	(*CryptoKey)(nil),                               // 9: google.cloud.kms.v1.CryptoKey
2009	(*CryptoKeyVersionTemplate)(nil),                // 10: google.cloud.kms.v1.CryptoKeyVersionTemplate
2010	(*KeyOperationAttestation)(nil),                 // 11: google.cloud.kms.v1.KeyOperationAttestation
2011	(*CryptoKeyVersion)(nil),                        // 12: google.cloud.kms.v1.CryptoKeyVersion
2012	(*PublicKey)(nil),                               // 13: google.cloud.kms.v1.PublicKey
2013	(*ImportJob)(nil),                               // 14: google.cloud.kms.v1.ImportJob
2014	(*ExternalProtectionLevelOptions)(nil),          // 15: google.cloud.kms.v1.ExternalProtectionLevelOptions
2015	nil,                                             // 16: google.cloud.kms.v1.CryptoKey.LabelsEntry
2016	(*ImportJob_WrappingPublicKey)(nil),             // 17: google.cloud.kms.v1.ImportJob.WrappingPublicKey
2017	(*timestamppb.Timestamp)(nil),                   // 18: google.protobuf.Timestamp
2018	(*durationpb.Duration)(nil),                     // 19: google.protobuf.Duration
2019	(*wrapperspb.Int64Value)(nil),                   // 20: google.protobuf.Int64Value
2020}
2021var file_google_cloud_kms_v1_resources_proto_depIdxs = []int32{
2022	18, // 0: google.cloud.kms.v1.KeyRing.create_time:type_name -> google.protobuf.Timestamp
2023	12, // 1: google.cloud.kms.v1.CryptoKey.primary:type_name -> google.cloud.kms.v1.CryptoKeyVersion
2024	1,  // 2: google.cloud.kms.v1.CryptoKey.purpose:type_name -> google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose
2025	18, // 3: google.cloud.kms.v1.CryptoKey.create_time:type_name -> google.protobuf.Timestamp
2026	18, // 4: google.cloud.kms.v1.CryptoKey.next_rotation_time:type_name -> google.protobuf.Timestamp
2027	19, // 5: google.cloud.kms.v1.CryptoKey.rotation_period:type_name -> google.protobuf.Duration
2028	10, // 6: google.cloud.kms.v1.CryptoKey.version_template:type_name -> google.cloud.kms.v1.CryptoKeyVersionTemplate
2029	16, // 7: google.cloud.kms.v1.CryptoKey.labels:type_name -> google.cloud.kms.v1.CryptoKey.LabelsEntry
2030	19, // 8: google.cloud.kms.v1.CryptoKey.destroy_scheduled_duration:type_name -> google.protobuf.Duration
2031	0,  // 9: google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
2032	3,  // 10: google.cloud.kms.v1.CryptoKeyVersionTemplate.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
2033	2,  // 11: google.cloud.kms.v1.KeyOperationAttestation.format:type_name -> google.cloud.kms.v1.KeyOperationAttestation.AttestationFormat
2034	4,  // 12: google.cloud.kms.v1.CryptoKeyVersion.state:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState
2035	0,  // 13: google.cloud.kms.v1.CryptoKeyVersion.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
2036	3,  // 14: google.cloud.kms.v1.CryptoKeyVersion.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
2037	11, // 15: google.cloud.kms.v1.CryptoKeyVersion.attestation:type_name -> google.cloud.kms.v1.KeyOperationAttestation
2038	18, // 16: google.cloud.kms.v1.CryptoKeyVersion.create_time:type_name -> google.protobuf.Timestamp
2039	18, // 17: google.cloud.kms.v1.CryptoKeyVersion.generate_time:type_name -> google.protobuf.Timestamp
2040	18, // 18: google.cloud.kms.v1.CryptoKeyVersion.destroy_time:type_name -> google.protobuf.Timestamp
2041	18, // 19: google.cloud.kms.v1.CryptoKeyVersion.destroy_event_time:type_name -> google.protobuf.Timestamp
2042	18, // 20: google.cloud.kms.v1.CryptoKeyVersion.import_time:type_name -> google.protobuf.Timestamp
2043	15, // 21: google.cloud.kms.v1.CryptoKeyVersion.external_protection_level_options:type_name -> google.cloud.kms.v1.ExternalProtectionLevelOptions
2044	3,  // 22: google.cloud.kms.v1.PublicKey.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
2045	20, // 23: google.cloud.kms.v1.PublicKey.pem_crc32c:type_name -> google.protobuf.Int64Value
2046	0,  // 24: google.cloud.kms.v1.PublicKey.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
2047	6,  // 25: google.cloud.kms.v1.ImportJob.import_method:type_name -> google.cloud.kms.v1.ImportJob.ImportMethod
2048	0,  // 26: google.cloud.kms.v1.ImportJob.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
2049	18, // 27: google.cloud.kms.v1.ImportJob.create_time:type_name -> google.protobuf.Timestamp
2050	18, // 28: google.cloud.kms.v1.ImportJob.generate_time:type_name -> google.protobuf.Timestamp
2051	18, // 29: google.cloud.kms.v1.ImportJob.expire_time:type_name -> google.protobuf.Timestamp
2052	18, // 30: google.cloud.kms.v1.ImportJob.expire_event_time:type_name -> google.protobuf.Timestamp
2053	7,  // 31: google.cloud.kms.v1.ImportJob.state:type_name -> google.cloud.kms.v1.ImportJob.ImportJobState
2054	17, // 32: google.cloud.kms.v1.ImportJob.public_key:type_name -> google.cloud.kms.v1.ImportJob.WrappingPublicKey
2055	11, // 33: google.cloud.kms.v1.ImportJob.attestation:type_name -> google.cloud.kms.v1.KeyOperationAttestation
2056	34, // [34:34] is the sub-list for method output_type
2057	34, // [34:34] is the sub-list for method input_type
2058	34, // [34:34] is the sub-list for extension type_name
2059	34, // [34:34] is the sub-list for extension extendee
2060	0,  // [0:34] is the sub-list for field type_name
2061}
2062
2063func init() { file_google_cloud_kms_v1_resources_proto_init() }
2064func file_google_cloud_kms_v1_resources_proto_init() {
2065	if File_google_cloud_kms_v1_resources_proto != nil {
2066		return
2067	}
2068	if !protoimpl.UnsafeEnabled {
2069		file_google_cloud_kms_v1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
2070			switch v := v.(*KeyRing); i {
2071			case 0:
2072				return &v.state
2073			case 1:
2074				return &v.sizeCache
2075			case 2:
2076				return &v.unknownFields
2077			default:
2078				return nil
2079			}
2080		}
2081		file_google_cloud_kms_v1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
2082			switch v := v.(*CryptoKey); i {
2083			case 0:
2084				return &v.state
2085			case 1:
2086				return &v.sizeCache
2087			case 2:
2088				return &v.unknownFields
2089			default:
2090				return nil
2091			}
2092		}
2093		file_google_cloud_kms_v1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
2094			switch v := v.(*CryptoKeyVersionTemplate); i {
2095			case 0:
2096				return &v.state
2097			case 1:
2098				return &v.sizeCache
2099			case 2:
2100				return &v.unknownFields
2101			default:
2102				return nil
2103			}
2104		}
2105		file_google_cloud_kms_v1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
2106			switch v := v.(*KeyOperationAttestation); i {
2107			case 0:
2108				return &v.state
2109			case 1:
2110				return &v.sizeCache
2111			case 2:
2112				return &v.unknownFields
2113			default:
2114				return nil
2115			}
2116		}
2117		file_google_cloud_kms_v1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
2118			switch v := v.(*CryptoKeyVersion); i {
2119			case 0:
2120				return &v.state
2121			case 1:
2122				return &v.sizeCache
2123			case 2:
2124				return &v.unknownFields
2125			default:
2126				return nil
2127			}
2128		}
2129		file_google_cloud_kms_v1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
2130			switch v := v.(*PublicKey); i {
2131			case 0:
2132				return &v.state
2133			case 1:
2134				return &v.sizeCache
2135			case 2:
2136				return &v.unknownFields
2137			default:
2138				return nil
2139			}
2140		}
2141		file_google_cloud_kms_v1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
2142			switch v := v.(*ImportJob); i {
2143			case 0:
2144				return &v.state
2145			case 1:
2146				return &v.sizeCache
2147			case 2:
2148				return &v.unknownFields
2149			default:
2150				return nil
2151			}
2152		}
2153		file_google_cloud_kms_v1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
2154			switch v := v.(*ExternalProtectionLevelOptions); i {
2155			case 0:
2156				return &v.state
2157			case 1:
2158				return &v.sizeCache
2159			case 2:
2160				return &v.unknownFields
2161			default:
2162				return nil
2163			}
2164		}
2165		file_google_cloud_kms_v1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
2166			switch v := v.(*ImportJob_WrappingPublicKey); i {
2167			case 0:
2168				return &v.state
2169			case 1:
2170				return &v.sizeCache
2171			case 2:
2172				return &v.unknownFields
2173			default:
2174				return nil
2175			}
2176		}
2177	}
2178	file_google_cloud_kms_v1_resources_proto_msgTypes[1].OneofWrappers = []interface{}{
2179		(*CryptoKey_RotationPeriod)(nil),
2180	}
2181	type x struct{}
2182	out := protoimpl.TypeBuilder{
2183		File: protoimpl.DescBuilder{
2184			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
2185			RawDescriptor: file_google_cloud_kms_v1_resources_proto_rawDesc,
2186			NumEnums:      8,
2187			NumMessages:   10,
2188			NumExtensions: 0,
2189			NumServices:   0,
2190		},
2191		GoTypes:           file_google_cloud_kms_v1_resources_proto_goTypes,
2192		DependencyIndexes: file_google_cloud_kms_v1_resources_proto_depIdxs,
2193		EnumInfos:         file_google_cloud_kms_v1_resources_proto_enumTypes,
2194		MessageInfos:      file_google_cloud_kms_v1_resources_proto_msgTypes,
2195	}.Build()
2196	File_google_cloud_kms_v1_resources_proto = out.File
2197	file_google_cloud_kms_v1_resources_proto_rawDesc = nil
2198	file_google_cloud_kms_v1_resources_proto_goTypes = nil
2199	file_google_cloud_kms_v1_resources_proto_depIdxs = nil
2200}
2201