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