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