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