1// Code generated by protoc-gen-go. DO NOT EDIT.
2// source: google/cloud/kms/v1/resources.proto
3
4package kms
5
6import (
7	fmt "fmt"
8	math "math"
9
10	proto "github.com/golang/protobuf/proto"
11	duration "github.com/golang/protobuf/ptypes/duration"
12	timestamp "github.com/golang/protobuf/ptypes/timestamp"
13	_ "google.golang.org/genproto/googleapis/api/annotations"
14)
15
16// Reference imports to suppress errors if they are not otherwise used.
17var _ = proto.Marshal
18var _ = fmt.Errorf
19var _ = math.Inf
20
21// This is a compile-time assertion to ensure that this generated file
22// is compatible with the proto package it is being compiled against.
23// A compilation error at this line likely means your copy of the
24// proto package needs to be updated.
25const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package
26
27// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how cryptographic operations are performed.
28// For more information, see [Protection levels]
29// (https://cloud.google.com/kms/docs/algorithms#protection_levels).
30type ProtectionLevel int32
31
32const (
33	// Not specified.
34	ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED ProtectionLevel = 0
35	// Crypto operations are performed in software.
36	ProtectionLevel_SOFTWARE ProtectionLevel = 1
37	// Crypto operations are performed in a Hardware Security Module.
38	ProtectionLevel_HSM ProtectionLevel = 2
39	// Crypto operations are performed by an external key manager.
40	ProtectionLevel_EXTERNAL ProtectionLevel = 3
41)
42
43var ProtectionLevel_name = map[int32]string{
44	0: "PROTECTION_LEVEL_UNSPECIFIED",
45	1: "SOFTWARE",
46	2: "HSM",
47	3: "EXTERNAL",
48}
49
50var ProtectionLevel_value = map[string]int32{
51	"PROTECTION_LEVEL_UNSPECIFIED": 0,
52	"SOFTWARE":                     1,
53	"HSM":                          2,
54	"EXTERNAL":                     3,
55}
56
57func (x ProtectionLevel) String() string {
58	return proto.EnumName(ProtectionLevel_name, int32(x))
59}
60
61func (ProtectionLevel) EnumDescriptor() ([]byte, []int) {
62	return fileDescriptor_e40e1384d35a80c5, []int{0}
63}
64
65// [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose] describes the cryptographic capabilities of a
66// [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used for the operations allowed by
67// its purpose. For more information, see
68// [Key purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes).
69type CryptoKey_CryptoKeyPurpose int32
70
71const (
72	// Not specified.
73	CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED CryptoKey_CryptoKeyPurpose = 0
74	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
75	// [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and
76	// [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt].
77	CryptoKey_ENCRYPT_DECRYPT CryptoKey_CryptoKeyPurpose = 1
78	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
79	// [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign] and
80	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
81	CryptoKey_ASYMMETRIC_SIGN CryptoKey_CryptoKeyPurpose = 5
82	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used with
83	// [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt] and
84	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
85	CryptoKey_ASYMMETRIC_DECRYPT CryptoKey_CryptoKeyPurpose = 6
86)
87
88var CryptoKey_CryptoKeyPurpose_name = map[int32]string{
89	0: "CRYPTO_KEY_PURPOSE_UNSPECIFIED",
90	1: "ENCRYPT_DECRYPT",
91	5: "ASYMMETRIC_SIGN",
92	6: "ASYMMETRIC_DECRYPT",
93}
94
95var CryptoKey_CryptoKeyPurpose_value = map[string]int32{
96	"CRYPTO_KEY_PURPOSE_UNSPECIFIED": 0,
97	"ENCRYPT_DECRYPT":                1,
98	"ASYMMETRIC_SIGN":                5,
99	"ASYMMETRIC_DECRYPT":             6,
100}
101
102func (x CryptoKey_CryptoKeyPurpose) String() string {
103	return proto.EnumName(CryptoKey_CryptoKeyPurpose_name, int32(x))
104}
105
106func (CryptoKey_CryptoKeyPurpose) EnumDescriptor() ([]byte, []int) {
107	return fileDescriptor_e40e1384d35a80c5, []int{1, 0}
108}
109
110// Attestation formats provided by the HSM.
111type KeyOperationAttestation_AttestationFormat int32
112
113const (
114	// Not specified.
115	KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED KeyOperationAttestation_AttestationFormat = 0
116	// Cavium HSM attestation compressed with gzip. Note that this format is
117	// defined by Cavium and subject to change at any time.
118	KeyOperationAttestation_CAVIUM_V1_COMPRESSED KeyOperationAttestation_AttestationFormat = 3
119	// Cavium HSM attestation V2 compressed with gzip. This is a new format
120	// introduced in Cavium's version 3.2-08.
121	KeyOperationAttestation_CAVIUM_V2_COMPRESSED KeyOperationAttestation_AttestationFormat = 4
122)
123
124var KeyOperationAttestation_AttestationFormat_name = map[int32]string{
125	0: "ATTESTATION_FORMAT_UNSPECIFIED",
126	3: "CAVIUM_V1_COMPRESSED",
127	4: "CAVIUM_V2_COMPRESSED",
128}
129
130var KeyOperationAttestation_AttestationFormat_value = map[string]int32{
131	"ATTESTATION_FORMAT_UNSPECIFIED": 0,
132	"CAVIUM_V1_COMPRESSED":           3,
133	"CAVIUM_V2_COMPRESSED":           4,
134}
135
136func (x KeyOperationAttestation_AttestationFormat) String() string {
137	return proto.EnumName(KeyOperationAttestation_AttestationFormat_name, int32(x))
138}
139
140func (KeyOperationAttestation_AttestationFormat) EnumDescriptor() ([]byte, []int) {
141	return fileDescriptor_e40e1384d35a80c5, []int{3, 0}
142}
143
144// The algorithm of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what
145// parameters must be used for each cryptographic operation.
146//
147// The
148// [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION]
149// algorithm is usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
150// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
151//
152// Algorithms beginning with "RSA_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
153// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
154//
155// The fields in the name after "RSA_SIGN_" correspond to the following
156// parameters: padding algorithm, modulus bit length, and digest algorithm.
157//
158// For PSS, the salt length used is equal to the length of digest
159// algorithm. For example,
160// [RSA_SIGN_PSS_2048_SHA256][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256]
161// will use PSS with a salt length of 256 bits or 32 bytes.
162//
163// Algorithms beginning with "RSA_DECRYPT_" are usable with
164// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
165// [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT].
166//
167// The fields in the name after "RSA_DECRYPT_" correspond to the following
168// parameters: padding algorithm, modulus bit length, and digest algorithm.
169//
170// Algorithms beginning with "EC_SIGN_" are usable with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
171// [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
172//
173// The fields in the name after "EC_SIGN_" correspond to the following
174// parameters: elliptic curve, digest algorithm.
175//
176// For more information, see [Key purposes and algorithms]
177// (https://cloud.google.com/kms/docs/algorithms).
178type CryptoKeyVersion_CryptoKeyVersionAlgorithm int32
179
180const (
181	// Not specified.
182	CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionAlgorithm = 0
183	// Creates symmetric encryption keys.
184	CryptoKeyVersion_GOOGLE_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 1
185	// RSASSA-PSS 2048 bit key with a SHA256 digest.
186	CryptoKeyVersion_RSA_SIGN_PSS_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 2
187	// RSASSA-PSS 3072 bit key with a SHA256 digest.
188	CryptoKeyVersion_RSA_SIGN_PSS_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 3
189	// RSASSA-PSS 4096 bit key with a SHA256 digest.
190	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 4
191	// RSASSA-PSS 4096 bit key with a SHA512 digest.
192	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 15
193	// RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
194	CryptoKeyVersion_RSA_SIGN_PKCS1_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 5
195	// RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
196	CryptoKeyVersion_RSA_SIGN_PKCS1_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 6
197	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
198	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 7
199	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
200	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 16
201	// RSAES-OAEP 2048 bit key with a SHA256 digest.
202	CryptoKeyVersion_RSA_DECRYPT_OAEP_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 8
203	// RSAES-OAEP 3072 bit key with a SHA256 digest.
204	CryptoKeyVersion_RSA_DECRYPT_OAEP_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 9
205	// RSAES-OAEP 4096 bit key with a SHA256 digest.
206	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 10
207	// RSAES-OAEP 4096 bit key with a SHA512 digest.
208	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 17
209	// ECDSA on the NIST P-256 curve with a SHA256 digest.
210	CryptoKeyVersion_EC_SIGN_P256_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 12
211	// ECDSA on the NIST P-384 curve with a SHA384 digest.
212	CryptoKeyVersion_EC_SIGN_P384_SHA384 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 13
213)
214
215var CryptoKeyVersion_CryptoKeyVersionAlgorithm_name = map[int32]string{
216	0:  "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED",
217	1:  "GOOGLE_SYMMETRIC_ENCRYPTION",
218	2:  "RSA_SIGN_PSS_2048_SHA256",
219	3:  "RSA_SIGN_PSS_3072_SHA256",
220	4:  "RSA_SIGN_PSS_4096_SHA256",
221	15: "RSA_SIGN_PSS_4096_SHA512",
222	5:  "RSA_SIGN_PKCS1_2048_SHA256",
223	6:  "RSA_SIGN_PKCS1_3072_SHA256",
224	7:  "RSA_SIGN_PKCS1_4096_SHA256",
225	16: "RSA_SIGN_PKCS1_4096_SHA512",
226	8:  "RSA_DECRYPT_OAEP_2048_SHA256",
227	9:  "RSA_DECRYPT_OAEP_3072_SHA256",
228	10: "RSA_DECRYPT_OAEP_4096_SHA256",
229	17: "RSA_DECRYPT_OAEP_4096_SHA512",
230	12: "EC_SIGN_P256_SHA256",
231	13: "EC_SIGN_P384_SHA384",
232}
233
234var CryptoKeyVersion_CryptoKeyVersionAlgorithm_value = map[string]int32{
235	"CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED": 0,
236	"GOOGLE_SYMMETRIC_ENCRYPTION":              1,
237	"RSA_SIGN_PSS_2048_SHA256":                 2,
238	"RSA_SIGN_PSS_3072_SHA256":                 3,
239	"RSA_SIGN_PSS_4096_SHA256":                 4,
240	"RSA_SIGN_PSS_4096_SHA512":                 15,
241	"RSA_SIGN_PKCS1_2048_SHA256":               5,
242	"RSA_SIGN_PKCS1_3072_SHA256":               6,
243	"RSA_SIGN_PKCS1_4096_SHA256":               7,
244	"RSA_SIGN_PKCS1_4096_SHA512":               16,
245	"RSA_DECRYPT_OAEP_2048_SHA256":             8,
246	"RSA_DECRYPT_OAEP_3072_SHA256":             9,
247	"RSA_DECRYPT_OAEP_4096_SHA256":             10,
248	"RSA_DECRYPT_OAEP_4096_SHA512":             17,
249	"EC_SIGN_P256_SHA256":                      12,
250	"EC_SIGN_P384_SHA384":                      13,
251}
252
253func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) String() string {
254	return proto.EnumName(CryptoKeyVersion_CryptoKeyVersionAlgorithm_name, int32(x))
255}
256
257func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) EnumDescriptor() ([]byte, []int) {
258	return fileDescriptor_e40e1384d35a80c5, []int{4, 0}
259}
260
261// The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating if it can be used.
262type CryptoKeyVersion_CryptoKeyVersionState int32
263
264const (
265	// Not specified.
266	CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionState = 0
267	// This version is still being generated. It may not be used, enabled,
268	// disabled, or destroyed yet. Cloud KMS will automatically mark this
269	// version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready.
270	CryptoKeyVersion_PENDING_GENERATION CryptoKeyVersion_CryptoKeyVersionState = 5
271	// This version may be used for cryptographic operations.
272	CryptoKeyVersion_ENABLED CryptoKeyVersion_CryptoKeyVersionState = 1
273	// This version may not be used, but the key material is still available,
274	// and the version can be placed back into the [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] state.
275	CryptoKeyVersion_DISABLED CryptoKeyVersion_CryptoKeyVersionState = 2
276	// This version is destroyed, and the key material is no longer stored.
277	// A version may not leave this state once entered.
278	CryptoKeyVersion_DESTROYED CryptoKeyVersion_CryptoKeyVersionState = 3
279	// This version is scheduled for destruction, and will be destroyed soon.
280	// Call
281	// [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]
282	// to put it back into the [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] state.
283	CryptoKeyVersion_DESTROY_SCHEDULED CryptoKeyVersion_CryptoKeyVersionState = 4
284	// This version is still being imported. It may not be used, enabled,
285	// disabled, or destroyed yet. Cloud KMS will automatically mark this
286	// version [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] as soon as the version is ready.
287	CryptoKeyVersion_PENDING_IMPORT CryptoKeyVersion_CryptoKeyVersionState = 6
288	// This version was not imported successfully. It may not be used, enabled,
289	// disabled, or destroyed. The submitted key material has been discarded.
290	// Additional details can be found in
291	// [CryptoKeyVersion.import_failure_reason][google.cloud.kms.v1.CryptoKeyVersion.import_failure_reason].
292	CryptoKeyVersion_IMPORT_FAILED CryptoKeyVersion_CryptoKeyVersionState = 7
293)
294
295var CryptoKeyVersion_CryptoKeyVersionState_name = map[int32]string{
296	0: "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED",
297	5: "PENDING_GENERATION",
298	1: "ENABLED",
299	2: "DISABLED",
300	3: "DESTROYED",
301	4: "DESTROY_SCHEDULED",
302	6: "PENDING_IMPORT",
303	7: "IMPORT_FAILED",
304}
305
306var CryptoKeyVersion_CryptoKeyVersionState_value = map[string]int32{
307	"CRYPTO_KEY_VERSION_STATE_UNSPECIFIED": 0,
308	"PENDING_GENERATION":                   5,
309	"ENABLED":                              1,
310	"DISABLED":                             2,
311	"DESTROYED":                            3,
312	"DESTROY_SCHEDULED":                    4,
313	"PENDING_IMPORT":                       6,
314	"IMPORT_FAILED":                        7,
315}
316
317func (x CryptoKeyVersion_CryptoKeyVersionState) String() string {
318	return proto.EnumName(CryptoKeyVersion_CryptoKeyVersionState_name, int32(x))
319}
320
321func (CryptoKeyVersion_CryptoKeyVersionState) EnumDescriptor() ([]byte, []int) {
322	return fileDescriptor_e40e1384d35a80c5, []int{4, 1}
323}
324
325// A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s. Controls the level of detail returned
326// for [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in
327// [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions] and
328// [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys].
329type CryptoKeyVersion_CryptoKeyVersionView int32
330
331const (
332	// Default view for each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not include
333	// the [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field.
334	CryptoKeyVersion_CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionView = 0
335	// Provides all fields in each [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the
336	// [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation].
337	CryptoKeyVersion_FULL CryptoKeyVersion_CryptoKeyVersionView = 1
338)
339
340var CryptoKeyVersion_CryptoKeyVersionView_name = map[int32]string{
341	0: "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED",
342	1: "FULL",
343}
344
345var CryptoKeyVersion_CryptoKeyVersionView_value = map[string]int32{
346	"CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED": 0,
347	"FULL":                                1,
348}
349
350func (x CryptoKeyVersion_CryptoKeyVersionView) String() string {
351	return proto.EnumName(CryptoKeyVersion_CryptoKeyVersionView_name, int32(x))
352}
353
354func (CryptoKeyVersion_CryptoKeyVersionView) EnumDescriptor() ([]byte, []int) {
355	return fileDescriptor_e40e1384d35a80c5, []int{4, 2}
356}
357
358// [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the key wrapping method chosen for this
359// [ImportJob][google.cloud.kms.v1.ImportJob].
360type ImportJob_ImportMethod int32
361
362const (
363	// Not specified.
364	ImportJob_IMPORT_METHOD_UNSPECIFIED ImportJob_ImportMethod = 0
365	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
366	// scheme defined in the PKCS #11 standard. In summary, this involves
367	// wrapping the raw key with an ephemeral AES key, and wrapping the
368	// ephemeral AES key with a 3072 bit RSA key. For more details, see
369	// [RSA AES key wrap
370	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
371	ImportJob_RSA_OAEP_3072_SHA1_AES_256 ImportJob_ImportMethod = 1
372	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
373	// scheme defined in the PKCS #11 standard. In summary, this involves
374	// wrapping the raw key with an ephemeral AES key, and wrapping the
375	// ephemeral AES key with a 4096 bit RSA key. For more details, see
376	// [RSA AES key wrap
377	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
378	ImportJob_RSA_OAEP_4096_SHA1_AES_256 ImportJob_ImportMethod = 2
379)
380
381var ImportJob_ImportMethod_name = map[int32]string{
382	0: "IMPORT_METHOD_UNSPECIFIED",
383	1: "RSA_OAEP_3072_SHA1_AES_256",
384	2: "RSA_OAEP_4096_SHA1_AES_256",
385}
386
387var ImportJob_ImportMethod_value = map[string]int32{
388	"IMPORT_METHOD_UNSPECIFIED":  0,
389	"RSA_OAEP_3072_SHA1_AES_256": 1,
390	"RSA_OAEP_4096_SHA1_AES_256": 2,
391}
392
393func (x ImportJob_ImportMethod) String() string {
394	return proto.EnumName(ImportJob_ImportMethod_name, int32(x))
395}
396
397func (ImportJob_ImportMethod) EnumDescriptor() ([]byte, []int) {
398	return fileDescriptor_e40e1384d35a80c5, []int{6, 0}
399}
400
401// The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used.
402type ImportJob_ImportJobState int32
403
404const (
405	// Not specified.
406	ImportJob_IMPORT_JOB_STATE_UNSPECIFIED ImportJob_ImportJobState = 0
407	// The wrapping key for this job is still being generated. It may not be
408	// used. Cloud KMS will automatically mark this job as
409	// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] as soon as the wrapping key is generated.
410	ImportJob_PENDING_GENERATION ImportJob_ImportJobState = 1
411	// This job may be used in
412	// [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey] and
413	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
414	// requests.
415	ImportJob_ACTIVE ImportJob_ImportJobState = 2
416	// This job can no longer be used and may not leave this state once entered.
417	ImportJob_EXPIRED ImportJob_ImportJobState = 3
418)
419
420var ImportJob_ImportJobState_name = map[int32]string{
421	0: "IMPORT_JOB_STATE_UNSPECIFIED",
422	1: "PENDING_GENERATION",
423	2: "ACTIVE",
424	3: "EXPIRED",
425}
426
427var ImportJob_ImportJobState_value = map[string]int32{
428	"IMPORT_JOB_STATE_UNSPECIFIED": 0,
429	"PENDING_GENERATION":           1,
430	"ACTIVE":                       2,
431	"EXPIRED":                      3,
432}
433
434func (x ImportJob_ImportJobState) String() string {
435	return proto.EnumName(ImportJob_ImportJobState_name, int32(x))
436}
437
438func (ImportJob_ImportJobState) EnumDescriptor() ([]byte, []int) {
439	return fileDescriptor_e40e1384d35a80c5, []int{6, 1}
440}
441
442// A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of [CryptoKeys][google.cloud.kms.v1.CryptoKey].
443type KeyRing struct {
444	// Output only. The resource name for the [KeyRing][google.cloud.kms.v1.KeyRing] in the format
445	// `projects/*/locations/*/keyRings/*`.
446	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
447	// Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing] was created.
448	CreateTime           *timestamp.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
449	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
450	XXX_unrecognized     []byte               `json:"-"`
451	XXX_sizecache        int32                `json:"-"`
452}
453
454func (m *KeyRing) Reset()         { *m = KeyRing{} }
455func (m *KeyRing) String() string { return proto.CompactTextString(m) }
456func (*KeyRing) ProtoMessage()    {}
457func (*KeyRing) Descriptor() ([]byte, []int) {
458	return fileDescriptor_e40e1384d35a80c5, []int{0}
459}
460
461func (m *KeyRing) XXX_Unmarshal(b []byte) error {
462	return xxx_messageInfo_KeyRing.Unmarshal(m, b)
463}
464func (m *KeyRing) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
465	return xxx_messageInfo_KeyRing.Marshal(b, m, deterministic)
466}
467func (m *KeyRing) XXX_Merge(src proto.Message) {
468	xxx_messageInfo_KeyRing.Merge(m, src)
469}
470func (m *KeyRing) XXX_Size() int {
471	return xxx_messageInfo_KeyRing.Size(m)
472}
473func (m *KeyRing) XXX_DiscardUnknown() {
474	xxx_messageInfo_KeyRing.DiscardUnknown(m)
475}
476
477var xxx_messageInfo_KeyRing proto.InternalMessageInfo
478
479func (m *KeyRing) GetName() string {
480	if m != nil {
481		return m.Name
482	}
483	return ""
484}
485
486func (m *KeyRing) GetCreateTime() *timestamp.Timestamp {
487	if m != nil {
488		return m.CreateTime
489	}
490	return nil
491}
492
493// A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that can be used for cryptographic
494// operations.
495//
496// A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of one or more [versions][google.cloud.kms.v1.CryptoKeyVersion], which
497// represent the actual key material used in cryptographic operations.
498type CryptoKey struct {
499	// Output only. The resource name for this [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format
500	// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
501	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
502	// Output only. A copy of the "primary" [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used
503	// by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this [CryptoKey][google.cloud.kms.v1.CryptoKey] is given
504	// in [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name].
505	//
506	// The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be updated via
507	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion].
508	//
509	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
510	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] may have a
511	// primary. For other keys, this field will be omitted.
512	Primary *CryptoKeyVersion `protobuf:"bytes,2,opt,name=primary,proto3" json:"primary,omitempty"`
513	// Immutable. The immutable purpose of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
514	Purpose CryptoKey_CryptoKeyPurpose `protobuf:"varint,3,opt,name=purpose,proto3,enum=google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose" json:"purpose,omitempty"`
515	// Output only. The time at which this [CryptoKey][google.cloud.kms.v1.CryptoKey] was created.
516	CreateTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
517	// At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time], the Key Management Service will automatically:
518	//
519	// 1. Create a new version of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
520	// 2. Mark the new version as primary.
521	//
522	// Key rotations performed manually via
523	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] and
524	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]
525	// do not affect [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time].
526	//
527	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
528	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT] support
529	// automatic rotation. For other keys, this field must be omitted.
530	NextRotationTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=next_rotation_time,json=nextRotationTime,proto3" json:"next_rotation_time,omitempty"`
531	// Controls the rate of automatic rotation.
532	//
533	// Types that are valid to be assigned to RotationSchedule:
534	//	*CryptoKey_RotationPeriod
535	RotationSchedule isCryptoKey_RotationSchedule `protobuf_oneof:"rotation_schedule"`
536	// A template describing settings for new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances.
537	// The properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances created by either
538	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or
539	// auto-rotation are controlled by this template.
540	VersionTemplate *CryptoKeyVersionTemplate `protobuf:"bytes,11,opt,name=version_template,json=versionTemplate,proto3" json:"version_template,omitempty"`
541	// Labels with user-defined metadata. For more information, see
542	// [Labeling Keys](/kms/docs/labeling-keys).
543	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"`
544	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
545	XXX_unrecognized     []byte            `json:"-"`
546	XXX_sizecache        int32             `json:"-"`
547}
548
549func (m *CryptoKey) Reset()         { *m = CryptoKey{} }
550func (m *CryptoKey) String() string { return proto.CompactTextString(m) }
551func (*CryptoKey) ProtoMessage()    {}
552func (*CryptoKey) Descriptor() ([]byte, []int) {
553	return fileDescriptor_e40e1384d35a80c5, []int{1}
554}
555
556func (m *CryptoKey) XXX_Unmarshal(b []byte) error {
557	return xxx_messageInfo_CryptoKey.Unmarshal(m, b)
558}
559func (m *CryptoKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
560	return xxx_messageInfo_CryptoKey.Marshal(b, m, deterministic)
561}
562func (m *CryptoKey) XXX_Merge(src proto.Message) {
563	xxx_messageInfo_CryptoKey.Merge(m, src)
564}
565func (m *CryptoKey) XXX_Size() int {
566	return xxx_messageInfo_CryptoKey.Size(m)
567}
568func (m *CryptoKey) XXX_DiscardUnknown() {
569	xxx_messageInfo_CryptoKey.DiscardUnknown(m)
570}
571
572var xxx_messageInfo_CryptoKey proto.InternalMessageInfo
573
574func (m *CryptoKey) GetName() string {
575	if m != nil {
576		return m.Name
577	}
578	return ""
579}
580
581func (m *CryptoKey) GetPrimary() *CryptoKeyVersion {
582	if m != nil {
583		return m.Primary
584	}
585	return nil
586}
587
588func (m *CryptoKey) GetPurpose() CryptoKey_CryptoKeyPurpose {
589	if m != nil {
590		return m.Purpose
591	}
592	return CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED
593}
594
595func (m *CryptoKey) GetCreateTime() *timestamp.Timestamp {
596	if m != nil {
597		return m.CreateTime
598	}
599	return nil
600}
601
602func (m *CryptoKey) GetNextRotationTime() *timestamp.Timestamp {
603	if m != nil {
604		return m.NextRotationTime
605	}
606	return nil
607}
608
609type isCryptoKey_RotationSchedule interface {
610	isCryptoKey_RotationSchedule()
611}
612
613type CryptoKey_RotationPeriod struct {
614	RotationPeriod *duration.Duration `protobuf:"bytes,8,opt,name=rotation_period,json=rotationPeriod,proto3,oneof"`
615}
616
617func (*CryptoKey_RotationPeriod) isCryptoKey_RotationSchedule() {}
618
619func (m *CryptoKey) GetRotationSchedule() isCryptoKey_RotationSchedule {
620	if m != nil {
621		return m.RotationSchedule
622	}
623	return nil
624}
625
626func (m *CryptoKey) GetRotationPeriod() *duration.Duration {
627	if x, ok := m.GetRotationSchedule().(*CryptoKey_RotationPeriod); ok {
628		return x.RotationPeriod
629	}
630	return nil
631}
632
633func (m *CryptoKey) GetVersionTemplate() *CryptoKeyVersionTemplate {
634	if m != nil {
635		return m.VersionTemplate
636	}
637	return nil
638}
639
640func (m *CryptoKey) GetLabels() map[string]string {
641	if m != nil {
642		return m.Labels
643	}
644	return nil
645}
646
647// XXX_OneofWrappers is for the internal use of the proto package.
648func (*CryptoKey) XXX_OneofWrappers() []interface{} {
649	return []interface{}{
650		(*CryptoKey_RotationPeriod)(nil),
651	}
652}
653
654// A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate] specifies the properties to use when creating
655// a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually with
656// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion] or
657// automatically as a result of auto-rotation.
658type CryptoKeyVersionTemplate struct {
659	// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on
660	// this template. Immutable. Defaults to [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE].
661	ProtectionLevel ProtectionLevel `protobuf:"varint,1,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
662	// Required. [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] to use
663	// when creating a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this template.
664	//
665	// For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
666	// this field is omitted and [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is
667	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
668	Algorithm            CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
669	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
670	XXX_unrecognized     []byte                                     `json:"-"`
671	XXX_sizecache        int32                                      `json:"-"`
672}
673
674func (m *CryptoKeyVersionTemplate) Reset()         { *m = CryptoKeyVersionTemplate{} }
675func (m *CryptoKeyVersionTemplate) String() string { return proto.CompactTextString(m) }
676func (*CryptoKeyVersionTemplate) ProtoMessage()    {}
677func (*CryptoKeyVersionTemplate) Descriptor() ([]byte, []int) {
678	return fileDescriptor_e40e1384d35a80c5, []int{2}
679}
680
681func (m *CryptoKeyVersionTemplate) XXX_Unmarshal(b []byte) error {
682	return xxx_messageInfo_CryptoKeyVersionTemplate.Unmarshal(m, b)
683}
684func (m *CryptoKeyVersionTemplate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
685	return xxx_messageInfo_CryptoKeyVersionTemplate.Marshal(b, m, deterministic)
686}
687func (m *CryptoKeyVersionTemplate) XXX_Merge(src proto.Message) {
688	xxx_messageInfo_CryptoKeyVersionTemplate.Merge(m, src)
689}
690func (m *CryptoKeyVersionTemplate) XXX_Size() int {
691	return xxx_messageInfo_CryptoKeyVersionTemplate.Size(m)
692}
693func (m *CryptoKeyVersionTemplate) XXX_DiscardUnknown() {
694	xxx_messageInfo_CryptoKeyVersionTemplate.DiscardUnknown(m)
695}
696
697var xxx_messageInfo_CryptoKeyVersionTemplate proto.InternalMessageInfo
698
699func (m *CryptoKeyVersionTemplate) GetProtectionLevel() ProtectionLevel {
700	if m != nil {
701		return m.ProtectionLevel
702	}
703	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
704}
705
706func (m *CryptoKeyVersionTemplate) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
707	if m != nil {
708		return m.Algorithm
709	}
710	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
711}
712
713// Contains an HSM-generated attestation about a key operation. For more
714// information, see [Verifying attestations]
715// (https://cloud.google.com/kms/docs/attest-key).
716type KeyOperationAttestation struct {
717	// Output only. The format of the attestation data.
718	Format KeyOperationAttestation_AttestationFormat `protobuf:"varint,4,opt,name=format,proto3,enum=google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat" json:"format,omitempty"`
719	// Output only. The attestation data provided by the HSM when the key
720	// operation was performed.
721	Content              []byte   `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
722	XXX_NoUnkeyedLiteral struct{} `json:"-"`
723	XXX_unrecognized     []byte   `json:"-"`
724	XXX_sizecache        int32    `json:"-"`
725}
726
727func (m *KeyOperationAttestation) Reset()         { *m = KeyOperationAttestation{} }
728func (m *KeyOperationAttestation) String() string { return proto.CompactTextString(m) }
729func (*KeyOperationAttestation) ProtoMessage()    {}
730func (*KeyOperationAttestation) Descriptor() ([]byte, []int) {
731	return fileDescriptor_e40e1384d35a80c5, []int{3}
732}
733
734func (m *KeyOperationAttestation) XXX_Unmarshal(b []byte) error {
735	return xxx_messageInfo_KeyOperationAttestation.Unmarshal(m, b)
736}
737func (m *KeyOperationAttestation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
738	return xxx_messageInfo_KeyOperationAttestation.Marshal(b, m, deterministic)
739}
740func (m *KeyOperationAttestation) XXX_Merge(src proto.Message) {
741	xxx_messageInfo_KeyOperationAttestation.Merge(m, src)
742}
743func (m *KeyOperationAttestation) XXX_Size() int {
744	return xxx_messageInfo_KeyOperationAttestation.Size(m)
745}
746func (m *KeyOperationAttestation) XXX_DiscardUnknown() {
747	xxx_messageInfo_KeyOperationAttestation.DiscardUnknown(m)
748}
749
750var xxx_messageInfo_KeyOperationAttestation proto.InternalMessageInfo
751
752func (m *KeyOperationAttestation) GetFormat() KeyOperationAttestation_AttestationFormat {
753	if m != nil {
754		return m.Format
755	}
756	return KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED
757}
758
759func (m *KeyOperationAttestation) GetContent() []byte {
760	if m != nil {
761		return m.Content
762	}
763	return nil
764}
765
766// A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an individual cryptographic key, and the
767// associated key material.
768//
769// An [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] version can be
770// used for cryptographic operations.
771//
772// For security reasons, the raw cryptographic key material represented by a
773// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed or exported. It can only be used to
774// encrypt, decrypt, or sign data when an authorized user or application invokes
775// Cloud KMS.
776type CryptoKeyVersion struct {
777	// Output only. The resource name for this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format
778	// `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
779	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
780	// The current state of the [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
781	State CryptoKeyVersion_CryptoKeyVersionState `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState" json:"state,omitempty"`
782	// Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] describing how crypto operations are
783	// performed with this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
784	ProtectionLevel ProtectionLevel `protobuf:"varint,7,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
785	// Output only. The [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] that this
786	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] supports.
787	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,10,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
788	// Output only. Statement that was generated and signed by the HSM at key
789	// creation time. Use this statement to verify attributes of the key as stored
790	// on the HSM, independently of Google. Only provided for key versions with
791	// [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level] [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
792	Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
793	// Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created.
794	CreateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
795	// Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was
796	// generated.
797	GenerateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
798	// Output only. The time this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is scheduled
799	// for destruction. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
800	// [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED].
801	DestroyTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=destroy_time,json=destroyTime,proto3" json:"destroy_time,omitempty"`
802	// Output only. The time this CryptoKeyVersion's key material was
803	// destroyed. Only present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
804	// [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED].
805	DestroyEventTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=destroy_event_time,json=destroyEventTime,proto3" json:"destroy_event_time,omitempty"`
806	// Output only. The name of the [ImportJob][google.cloud.kms.v1.ImportJob] used to import this
807	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Only present if the underlying key material was
808	// imported.
809	ImportJob string `protobuf:"bytes,14,opt,name=import_job,json=importJob,proto3" json:"import_job,omitempty"`
810	// Output only. The time at which this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material
811	// was imported.
812	ImportTime *timestamp.Timestamp `protobuf:"bytes,15,opt,name=import_time,json=importTime,proto3" json:"import_time,omitempty"`
813	// Output only. The root cause of an import failure. Only present if
814	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
815	// [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED].
816	ImportFailureReason  string   `protobuf:"bytes,16,opt,name=import_failure_reason,json=importFailureReason,proto3" json:"import_failure_reason,omitempty"`
817	XXX_NoUnkeyedLiteral struct{} `json:"-"`
818	XXX_unrecognized     []byte   `json:"-"`
819	XXX_sizecache        int32    `json:"-"`
820}
821
822func (m *CryptoKeyVersion) Reset()         { *m = CryptoKeyVersion{} }
823func (m *CryptoKeyVersion) String() string { return proto.CompactTextString(m) }
824func (*CryptoKeyVersion) ProtoMessage()    {}
825func (*CryptoKeyVersion) Descriptor() ([]byte, []int) {
826	return fileDescriptor_e40e1384d35a80c5, []int{4}
827}
828
829func (m *CryptoKeyVersion) XXX_Unmarshal(b []byte) error {
830	return xxx_messageInfo_CryptoKeyVersion.Unmarshal(m, b)
831}
832func (m *CryptoKeyVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
833	return xxx_messageInfo_CryptoKeyVersion.Marshal(b, m, deterministic)
834}
835func (m *CryptoKeyVersion) XXX_Merge(src proto.Message) {
836	xxx_messageInfo_CryptoKeyVersion.Merge(m, src)
837}
838func (m *CryptoKeyVersion) XXX_Size() int {
839	return xxx_messageInfo_CryptoKeyVersion.Size(m)
840}
841func (m *CryptoKeyVersion) XXX_DiscardUnknown() {
842	xxx_messageInfo_CryptoKeyVersion.DiscardUnknown(m)
843}
844
845var xxx_messageInfo_CryptoKeyVersion proto.InternalMessageInfo
846
847func (m *CryptoKeyVersion) GetName() string {
848	if m != nil {
849		return m.Name
850	}
851	return ""
852}
853
854func (m *CryptoKeyVersion) GetState() CryptoKeyVersion_CryptoKeyVersionState {
855	if m != nil {
856		return m.State
857	}
858	return CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED
859}
860
861func (m *CryptoKeyVersion) GetProtectionLevel() ProtectionLevel {
862	if m != nil {
863		return m.ProtectionLevel
864	}
865	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
866}
867
868func (m *CryptoKeyVersion) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
869	if m != nil {
870		return m.Algorithm
871	}
872	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
873}
874
875func (m *CryptoKeyVersion) GetAttestation() *KeyOperationAttestation {
876	if m != nil {
877		return m.Attestation
878	}
879	return nil
880}
881
882func (m *CryptoKeyVersion) GetCreateTime() *timestamp.Timestamp {
883	if m != nil {
884		return m.CreateTime
885	}
886	return nil
887}
888
889func (m *CryptoKeyVersion) GetGenerateTime() *timestamp.Timestamp {
890	if m != nil {
891		return m.GenerateTime
892	}
893	return nil
894}
895
896func (m *CryptoKeyVersion) GetDestroyTime() *timestamp.Timestamp {
897	if m != nil {
898		return m.DestroyTime
899	}
900	return nil
901}
902
903func (m *CryptoKeyVersion) GetDestroyEventTime() *timestamp.Timestamp {
904	if m != nil {
905		return m.DestroyEventTime
906	}
907	return nil
908}
909
910func (m *CryptoKeyVersion) GetImportJob() string {
911	if m != nil {
912		return m.ImportJob
913	}
914	return ""
915}
916
917func (m *CryptoKeyVersion) GetImportTime() *timestamp.Timestamp {
918	if m != nil {
919		return m.ImportTime
920	}
921	return nil
922}
923
924func (m *CryptoKeyVersion) GetImportFailureReason() string {
925	if m != nil {
926		return m.ImportFailureReason
927	}
928	return ""
929}
930
931// The public key for a given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via
932// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
933type PublicKey struct {
934	// The public key, encoded in PEM format. For more information, see the
935	// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for
936	// [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
937	// [Textual Encoding of Subject Public Key Info]
938	// (https://tools.ietf.org/html/rfc7468#section-13).
939	Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
940	// The [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm] associated
941	// with this key.
942	Algorithm            CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
943	XXX_NoUnkeyedLiteral struct{}                                   `json:"-"`
944	XXX_unrecognized     []byte                                     `json:"-"`
945	XXX_sizecache        int32                                      `json:"-"`
946}
947
948func (m *PublicKey) Reset()         { *m = PublicKey{} }
949func (m *PublicKey) String() string { return proto.CompactTextString(m) }
950func (*PublicKey) ProtoMessage()    {}
951func (*PublicKey) Descriptor() ([]byte, []int) {
952	return fileDescriptor_e40e1384d35a80c5, []int{5}
953}
954
955func (m *PublicKey) XXX_Unmarshal(b []byte) error {
956	return xxx_messageInfo_PublicKey.Unmarshal(m, b)
957}
958func (m *PublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
959	return xxx_messageInfo_PublicKey.Marshal(b, m, deterministic)
960}
961func (m *PublicKey) XXX_Merge(src proto.Message) {
962	xxx_messageInfo_PublicKey.Merge(m, src)
963}
964func (m *PublicKey) XXX_Size() int {
965	return xxx_messageInfo_PublicKey.Size(m)
966}
967func (m *PublicKey) XXX_DiscardUnknown() {
968	xxx_messageInfo_PublicKey.DiscardUnknown(m)
969}
970
971var xxx_messageInfo_PublicKey proto.InternalMessageInfo
972
973func (m *PublicKey) GetPem() string {
974	if m != nil {
975		return m.Pem
976	}
977	return ""
978}
979
980func (m *PublicKey) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
981	if m != nil {
982		return m.Algorithm
983	}
984	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
985}
986
987// An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create [CryptoKeys][google.cloud.kms.v1.CryptoKey] and
988// [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing key material,
989// generated outside of Cloud KMS.
990//
991// When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will generate a "wrapping key",
992// which is a public/private key pair. You use the wrapping key to encrypt (also
993// known as wrap) the pre-existing key material to protect it during the import
994// process. The nature of the wrapping key depends on the choice of
995// [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the wrapping key generation
996// is complete, the [state][google.cloud.kms.v1.ImportJob.state] will be set to
997// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the [public_key][google.cloud.kms.v1.ImportJob.public_key]
998// can be fetched. The fetched public key can then be used to wrap your
999// pre-existing key material.
1000//
1001// Once the key material is wrapped, it can be imported into a new
1002// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling
1003// [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
1004// Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be imported with a single
1005// [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS uses the private key portion of the wrapping key to
1006// unwrap the key material. Only Cloud KMS has access to the private key.
1007//
1008// An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is created. Once expired, Cloud KMS
1009// will no longer be able to import or unwrap any key material that was wrapped
1010// with the [ImportJob][google.cloud.kms.v1.ImportJob]'s public key.
1011//
1012// For more information, see
1013// [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).
1014type ImportJob struct {
1015	// Output only. The resource name for this [ImportJob][google.cloud.kms.v1.ImportJob] in the format
1016	// `projects/*/locations/*/keyRings/*/importJobs/*`.
1017	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
1018	// Required. Immutable. The wrapping method to be used for incoming key material.
1019	ImportMethod ImportJob_ImportMethod `protobuf:"varint,2,opt,name=import_method,json=importMethod,proto3,enum=google.cloud.kms.v1.ImportJob_ImportMethod" json:"import_method,omitempty"`
1020	// Required. Immutable. The protection level of the [ImportJob][google.cloud.kms.v1.ImportJob]. This must match the
1021	// [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level] of the
1022	// [version_template][google.cloud.kms.v1.CryptoKey.version_template] on the [CryptoKey][google.cloud.kms.v1.CryptoKey] you
1023	// attempt to import into.
1024	ProtectionLevel ProtectionLevel `protobuf:"varint,9,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
1025	// Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] was created.
1026	CreateTime *timestamp.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
1027	// Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]'s key material was generated.
1028	GenerateTime *timestamp.Timestamp `protobuf:"bytes,4,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
1029	// Output only. The time at which this [ImportJob][google.cloud.kms.v1.ImportJob] is scheduled for
1030	// expiration and can no longer be used to import key material.
1031	ExpireTime *timestamp.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
1032	// Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob] expired. Only present if
1033	// [state][google.cloud.kms.v1.ImportJob.state] is [EXPIRED][google.cloud.kms.v1.ImportJob.ImportJobState.EXPIRED].
1034	ExpireEventTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=expire_event_time,json=expireEventTime,proto3" json:"expire_event_time,omitempty"`
1035	// Output only. The current state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can
1036	// be used.
1037	State ImportJob_ImportJobState `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.kms.v1.ImportJob_ImportJobState" json:"state,omitempty"`
1038	// Output only. The public key with which to wrap key material prior to
1039	// import. Only returned if [state][google.cloud.kms.v1.ImportJob.state] is
1040	// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE].
1041	PublicKey *ImportJob_WrappingPublicKey `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
1042	// Output only. Statement that was generated and signed by the key creator
1043	// (for example, an HSM) at key creation time. Use this statement to verify
1044	// attributes of the key as stored on the HSM, independently of Google.
1045	// Only present if the chosen [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] is one with a protection
1046	// level of [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
1047	Attestation          *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
1048	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
1049	XXX_unrecognized     []byte                   `json:"-"`
1050	XXX_sizecache        int32                    `json:"-"`
1051}
1052
1053func (m *ImportJob) Reset()         { *m = ImportJob{} }
1054func (m *ImportJob) String() string { return proto.CompactTextString(m) }
1055func (*ImportJob) ProtoMessage()    {}
1056func (*ImportJob) Descriptor() ([]byte, []int) {
1057	return fileDescriptor_e40e1384d35a80c5, []int{6}
1058}
1059
1060func (m *ImportJob) XXX_Unmarshal(b []byte) error {
1061	return xxx_messageInfo_ImportJob.Unmarshal(m, b)
1062}
1063func (m *ImportJob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1064	return xxx_messageInfo_ImportJob.Marshal(b, m, deterministic)
1065}
1066func (m *ImportJob) XXX_Merge(src proto.Message) {
1067	xxx_messageInfo_ImportJob.Merge(m, src)
1068}
1069func (m *ImportJob) XXX_Size() int {
1070	return xxx_messageInfo_ImportJob.Size(m)
1071}
1072func (m *ImportJob) XXX_DiscardUnknown() {
1073	xxx_messageInfo_ImportJob.DiscardUnknown(m)
1074}
1075
1076var xxx_messageInfo_ImportJob proto.InternalMessageInfo
1077
1078func (m *ImportJob) GetName() string {
1079	if m != nil {
1080		return m.Name
1081	}
1082	return ""
1083}
1084
1085func (m *ImportJob) GetImportMethod() ImportJob_ImportMethod {
1086	if m != nil {
1087		return m.ImportMethod
1088	}
1089	return ImportJob_IMPORT_METHOD_UNSPECIFIED
1090}
1091
1092func (m *ImportJob) GetProtectionLevel() ProtectionLevel {
1093	if m != nil {
1094		return m.ProtectionLevel
1095	}
1096	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
1097}
1098
1099func (m *ImportJob) GetCreateTime() *timestamp.Timestamp {
1100	if m != nil {
1101		return m.CreateTime
1102	}
1103	return nil
1104}
1105
1106func (m *ImportJob) GetGenerateTime() *timestamp.Timestamp {
1107	if m != nil {
1108		return m.GenerateTime
1109	}
1110	return nil
1111}
1112
1113func (m *ImportJob) GetExpireTime() *timestamp.Timestamp {
1114	if m != nil {
1115		return m.ExpireTime
1116	}
1117	return nil
1118}
1119
1120func (m *ImportJob) GetExpireEventTime() *timestamp.Timestamp {
1121	if m != nil {
1122		return m.ExpireEventTime
1123	}
1124	return nil
1125}
1126
1127func (m *ImportJob) GetState() ImportJob_ImportJobState {
1128	if m != nil {
1129		return m.State
1130	}
1131	return ImportJob_IMPORT_JOB_STATE_UNSPECIFIED
1132}
1133
1134func (m *ImportJob) GetPublicKey() *ImportJob_WrappingPublicKey {
1135	if m != nil {
1136		return m.PublicKey
1137	}
1138	return nil
1139}
1140
1141func (m *ImportJob) GetAttestation() *KeyOperationAttestation {
1142	if m != nil {
1143		return m.Attestation
1144	}
1145	return nil
1146}
1147
1148// The public key component of the wrapping key. For details of the type of
1149// key this public key corresponds to, see the [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod].
1150type ImportJob_WrappingPublicKey struct {
1151	// The public key, encoded in PEM format. For more information, see the [RFC
1152	// 7468](https://tools.ietf.org/html/rfc7468) sections for [General
1153	// Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
1154	// [Textual Encoding of Subject Public Key Info]
1155	// (https://tools.ietf.org/html/rfc7468#section-13).
1156	Pem                  string   `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
1157	XXX_NoUnkeyedLiteral struct{} `json:"-"`
1158	XXX_unrecognized     []byte   `json:"-"`
1159	XXX_sizecache        int32    `json:"-"`
1160}
1161
1162func (m *ImportJob_WrappingPublicKey) Reset()         { *m = ImportJob_WrappingPublicKey{} }
1163func (m *ImportJob_WrappingPublicKey) String() string { return proto.CompactTextString(m) }
1164func (*ImportJob_WrappingPublicKey) ProtoMessage()    {}
1165func (*ImportJob_WrappingPublicKey) Descriptor() ([]byte, []int) {
1166	return fileDescriptor_e40e1384d35a80c5, []int{6, 0}
1167}
1168
1169func (m *ImportJob_WrappingPublicKey) XXX_Unmarshal(b []byte) error {
1170	return xxx_messageInfo_ImportJob_WrappingPublicKey.Unmarshal(m, b)
1171}
1172func (m *ImportJob_WrappingPublicKey) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
1173	return xxx_messageInfo_ImportJob_WrappingPublicKey.Marshal(b, m, deterministic)
1174}
1175func (m *ImportJob_WrappingPublicKey) XXX_Merge(src proto.Message) {
1176	xxx_messageInfo_ImportJob_WrappingPublicKey.Merge(m, src)
1177}
1178func (m *ImportJob_WrappingPublicKey) XXX_Size() int {
1179	return xxx_messageInfo_ImportJob_WrappingPublicKey.Size(m)
1180}
1181func (m *ImportJob_WrappingPublicKey) XXX_DiscardUnknown() {
1182	xxx_messageInfo_ImportJob_WrappingPublicKey.DiscardUnknown(m)
1183}
1184
1185var xxx_messageInfo_ImportJob_WrappingPublicKey proto.InternalMessageInfo
1186
1187func (m *ImportJob_WrappingPublicKey) GetPem() string {
1188	if m != nil {
1189		return m.Pem
1190	}
1191	return ""
1192}
1193
1194func init() {
1195	proto.RegisterEnum("google.cloud.kms.v1.ProtectionLevel", ProtectionLevel_name, ProtectionLevel_value)
1196	proto.RegisterEnum("google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose", CryptoKey_CryptoKeyPurpose_name, CryptoKey_CryptoKeyPurpose_value)
1197	proto.RegisterEnum("google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat", KeyOperationAttestation_AttestationFormat_name, KeyOperationAttestation_AttestationFormat_value)
1198	proto.RegisterEnum("google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm", CryptoKeyVersion_CryptoKeyVersionAlgorithm_name, CryptoKeyVersion_CryptoKeyVersionAlgorithm_value)
1199	proto.RegisterEnum("google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState", CryptoKeyVersion_CryptoKeyVersionState_name, CryptoKeyVersion_CryptoKeyVersionState_value)
1200	proto.RegisterEnum("google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionView", CryptoKeyVersion_CryptoKeyVersionView_name, CryptoKeyVersion_CryptoKeyVersionView_value)
1201	proto.RegisterEnum("google.cloud.kms.v1.ImportJob_ImportMethod", ImportJob_ImportMethod_name, ImportJob_ImportMethod_value)
1202	proto.RegisterEnum("google.cloud.kms.v1.ImportJob_ImportJobState", ImportJob_ImportJobState_name, ImportJob_ImportJobState_value)
1203	proto.RegisterType((*KeyRing)(nil), "google.cloud.kms.v1.KeyRing")
1204	proto.RegisterType((*CryptoKey)(nil), "google.cloud.kms.v1.CryptoKey")
1205	proto.RegisterMapType((map[string]string)(nil), "google.cloud.kms.v1.CryptoKey.LabelsEntry")
1206	proto.RegisterType((*CryptoKeyVersionTemplate)(nil), "google.cloud.kms.v1.CryptoKeyVersionTemplate")
1207	proto.RegisterType((*KeyOperationAttestation)(nil), "google.cloud.kms.v1.KeyOperationAttestation")
1208	proto.RegisterType((*CryptoKeyVersion)(nil), "google.cloud.kms.v1.CryptoKeyVersion")
1209	proto.RegisterType((*PublicKey)(nil), "google.cloud.kms.v1.PublicKey")
1210	proto.RegisterType((*ImportJob)(nil), "google.cloud.kms.v1.ImportJob")
1211	proto.RegisterType((*ImportJob_WrappingPublicKey)(nil), "google.cloud.kms.v1.ImportJob.WrappingPublicKey")
1212}
1213
1214func init() {
1215	proto.RegisterFile("google/cloud/kms/v1/resources.proto", fileDescriptor_e40e1384d35a80c5)
1216}
1217
1218var fileDescriptor_e40e1384d35a80c5 = []byte{
1219	// 1745 bytes of a gzipped FileDescriptorProto
1220	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x58, 0x4b, 0x77, 0xdb, 0xc6,
1221	0x15, 0x0e, 0x48, 0x8a, 0x14, 0x2f, 0xf5, 0x80, 0x46, 0x76, 0x4c, 0xab, 0x8e, 0xad, 0x32, 0xc9,
1222	0xa9, 0x4e, 0x9a, 0x10, 0x16, 0xfd, 0x88, 0x63, 0x9f, 0xd3, 0x06, 0x24, 0x21, 0x89, 0xe6, 0x03,
1223	0x2c, 0x00, 0xd1, 0x72, 0xeb, 0x16, 0x07, 0xa4, 0xc6, 0x34, 0x22, 0xe2, 0x71, 0x00, 0x50, 0x35,
1224	0xab, 0x6a, 0xd3, 0xff, 0xd0, 0x5d, 0x57, 0x5d, 0x74, 0x91, 0x7f, 0xd1, 0x55, 0xcf, 0xe9, 0xa6,
1225	0x3f, 0xa0, 0x9b, 0xac, 0xbd, 0xeb, 0xae, 0xcb, 0x9c, 0x19, 0x0c, 0x48, 0x90, 0xa2, 0x5e, 0x89,
1226	0xb3, 0xd2, 0xf0, 0xde, 0xfb, 0x7d, 0x77, 0xe6, 0xce, 0x7d, 0x0c, 0x04, 0x1f, 0xf7, 0x1d, 0xa7,
1227	0x3f, 0xc0, 0x42, 0x6f, 0xe0, 0x0c, 0x0f, 0x85, 0x23, 0xcb, 0x17, 0x8e, 0xb7, 0x05, 0x0f, 0xfb,
1228	0xce, 0xd0, 0xeb, 0x61, 0xbf, 0xe8, 0x7a, 0x4e, 0xe0, 0xa0, 0xf5, 0xd0, 0xa8, 0x48, 0x8d, 0x8a,
1229	0x47, 0x96, 0x5f, 0x3c, 0xde, 0xde, 0xb8, 0xc3, 0x90, 0x86, 0x6b, 0x0a, 0x86, 0x6d, 0x3b, 0x81,
1230	0x11, 0x98, 0x8e, 0xcd, 0x20, 0x1b, 0xf7, 0x62, 0xda, 0xd7, 0x26, 0x1e, 0x1c, 0xea, 0x5d, 0xfc,
1231	0xc6, 0x38, 0x36, 0x1d, 0x8f, 0x19, 0xdc, 0x8e, 0x19, 0x44, 0xfe, 0x98, 0xea, 0x2e, 0x53, 0xd1,
1232	0x5f, 0xdd, 0xe1, 0x6b, 0xe1, 0x70, 0xe8, 0x51, 0xf2, 0x19, 0xee, 0xb1, 0x3e, 0x30, 0x2d, 0xec,
1233	0x07, 0x86, 0xe5, 0x86, 0x06, 0x85, 0x7f, 0x71, 0x90, 0xa9, 0xe3, 0x91, 0x62, 0xda, 0x7d, 0x74,
1234	0x0b, 0x52, 0xb6, 0x61, 0xe1, 0x3c, 0xb7, 0xc9, 0x6d, 0x65, 0xcb, 0xc9, 0xef, 0xc4, 0xa4, 0x42,
1235	0x05, 0xe8, 0x6b, 0xc8, 0xf5, 0x3c, 0x6c, 0x04, 0x58, 0x27, 0xf0, 0x7c, 0x62, 0x93, 0xdb, 0xca,
1236	0x95, 0x36, 0x8a, 0xec, 0xa8, 0x11, 0x77, 0x51, 0x8b, 0xb8, 0x43, 0x2c, 0x84, 0x18, 0x22, 0x7d,
1237	0x6a, 0xbc, 0x13, 0xff, 0x00, 0xf7, 0x68, 0x50, 0x48, 0x4c, 0x42, 0xa4, 0xe1, 0x9a, 0x7e, 0xb1,
1238	0xe7, 0x58, 0x42, 0xb4, 0x81, 0x67, 0xae, 0xe7, 0x7c, 0x83, 0x7b, 0x81, 0x2f, 0x9c, 0xb0, 0xd5,
1239	0xa9, 0x30, 0x70, 0x7a, 0x61, 0xb4, 0x84, 0x93, 0x68, 0x79, 0x2a, 0x1c, 0x85, 0x00, 0x5f, 0x38,
1240	0x39, 0xc2, 0x23, 0xdd, 0x33, 0xed, 0xfe, 0x69, 0xe1, 0x7f, 0x69, 0xc8, 0x56, 0xbc, 0x91, 0x1b,
1241	0x38, 0x75, 0x3c, 0x3a, 0xff, 0x2c, 0x55, 0xc8, 0xb8, 0x9e, 0x69, 0x19, 0xde, 0x88, 0x9d, 0xe3,
1242	0xd3, 0xe2, 0x9c, 0x2b, 0x2b, 0x8e, 0x99, 0x3a, 0xd8, 0xf3, 0x4d, 0xc7, 0x0e, 0x29, 0x22, 0x28,
1243	0x6a, 0x41, 0xc6, 0x1d, 0x7a, 0xae, 0xe3, 0xe3, 0x7c, 0x72, 0x93, 0xdb, 0x5a, 0x29, 0x09, 0x17,
1244	0xb3, 0x4c, 0x56, 0xed, 0x10, 0x46, 0xf8, 0x16, 0x94, 0x88, 0x64, 0x36, 0xc2, 0x0b, 0xd7, 0x8e,
1245	0x30, 0xda, 0x03, 0x64, 0xe3, 0xb7, 0x81, 0xee, 0xb1, 0xec, 0x0a, 0x89, 0x32, 0x97, 0x11, 0x29,
1246	0x3c, 0x41, 0x29, 0x0c, 0x44, 0x99, 0xaa, 0xb0, 0x3a, 0x26, 0x71, 0xb1, 0x67, 0x3a, 0x87, 0xf9,
1247	0x45, 0x4a, 0x73, 0xfb, 0x0c, 0x4d, 0x95, 0x65, 0xdb, 0xde, 0x07, 0xca, 0x4a, 0x84, 0x69, 0x53,
1248	0x08, 0x3a, 0x00, 0xfe, 0x38, 0x0c, 0x9d, 0x1e, 0x60, 0xcb, 0x1d, 0x18, 0x01, 0xce, 0xe7, 0x28,
1249	0xcd, 0x17, 0x57, 0x0a, 0xb8, 0xc6, 0x40, 0xca, 0xea, 0xf1, 0xb4, 0x00, 0x95, 0x21, 0x3d, 0x30,
1250	0xba, 0x78, 0xe0, 0xe7, 0x61, 0x33, 0xb9, 0x95, 0x2b, 0x7d, 0x76, 0x49, 0xe8, 0x1b, 0xd4, 0x58,
1251	0xb2, 0x03, 0x6f, 0xa4, 0x30, 0xe4, 0xc6, 0x57, 0x90, 0x8b, 0x89, 0x11, 0x0f, 0xc9, 0x23, 0x3c,
1252	0x0a, 0x93, 0x45, 0x21, 0x4b, 0x74, 0x03, 0x16, 0x8e, 0x8d, 0xc1, 0x30, 0x4c, 0xf6, 0xac, 0x12,
1253	0xfe, 0x78, 0x9a, 0x78, 0xc2, 0x15, 0xde, 0x02, 0x3f, 0x7b, 0x99, 0xa8, 0x00, 0x77, 0x2b, 0xca,
1254	0xcb, 0xb6, 0x26, 0xeb, 0x75, 0xe9, 0xa5, 0xde, 0xde, 0x57, 0xda, 0xb2, 0x2a, 0xe9, 0xfb, 0x2d,
1255	0xb5, 0x2d, 0x55, 0x6a, 0x3b, 0x35, 0xa9, 0xca, 0x7f, 0x80, 0xd6, 0x61, 0x55, 0x6a, 0x51, 0x2b,
1256	0xbd, 0x2a, 0xd1, 0xbf, 0x3c, 0x47, 0x84, 0xa2, 0xfa, 0xb2, 0xd9, 0x94, 0x34, 0xa5, 0x56, 0xd1,
1257	0xd5, 0xda, 0x6e, 0x8b, 0x5f, 0x40, 0x1f, 0x02, 0x8a, 0x09, 0x23, 0xe3, 0xf4, 0xd3, 0x93, 0x77,
1258	0xe2, 0x5b, 0xf8, 0xf9, 0x79, 0x45, 0x34, 0xc9, 0x7d, 0xf5, 0x47, 0x94, 0x91, 0xd0, 0x8b, 0x68,
1259	0x7c, 0xe1, 0x24, 0x5c, 0xeb, 0x47, 0x78, 0x74, 0x5a, 0x5e, 0x87, 0xb5, 0x71, 0x56, 0xf8, 0xbd,
1260	0x37, 0xf8, 0x70, 0x38, 0xc0, 0x85, 0xff, 0x70, 0x90, 0x3f, 0xef, 0xe2, 0x90, 0x0c, 0x3c, 0x49,
1261	0x14, 0xdc, 0xa3, 0x98, 0x01, 0x3e, 0xc6, 0x03, 0x1a, 0xe1, 0x95, 0xd2, 0x27, 0x73, 0x6f, 0xac,
1262	0x3d, 0x36, 0x6e, 0x10, 0x5b, 0x65, 0xd5, 0x9d, 0x16, 0xa0, 0x2e, 0x64, 0x8d, 0x41, 0xdf, 0xf1,
1263	0xcc, 0xe0, 0x8d, 0xc5, 0xca, 0xee, 0xd7, 0x57, 0xca, 0xa5, 0x33, 0x02, 0x31, 0xa2, 0x21, 0x75,
1264	0x94, 0x50, 0x26, 0xb4, 0x85, 0xbf, 0x24, 0xe0, 0x56, 0x1d, 0x8f, 0x64, 0x17, 0x87, 0x99, 0x2d,
1265	0x06, 0x01, 0x29, 0x14, 0xb2, 0x44, 0xbf, 0x83, 0xf4, 0x6b, 0xc7, 0xb3, 0x8c, 0x20, 0x9f, 0xa2,
1266	0xce, 0x7f, 0x35, 0xd7, 0xf9, 0x39, 0xe8, 0x62, 0x6c, 0xbd, 0x43, 0x59, 0xc2, 0x1a, 0x66, 0x94,
1267	0xe8, 0x23, 0xc8, 0xf4, 0x1c, 0x3b, 0xc0, 0x76, 0x40, 0xab, 0x7f, 0x89, 0x35, 0x1c, 0x26, 0x2b,
1268	0x1c, 0xc1, 0xda, 0x19, 0x02, 0x92, 0x76, 0xa2, 0xa6, 0x49, 0xaa, 0x26, 0x6a, 0x35, 0xb9, 0xa5,
1269	0xef, 0xc8, 0x4a, 0x53, 0xd4, 0x66, 0xd2, 0x2e, 0x0f, 0x37, 0x2a, 0x62, 0xa7, 0xb6, 0xdf, 0xd4,
1270	0x3b, 0xdb, 0x7a, 0x45, 0x6e, 0xb6, 0x15, 0x49, 0x55, 0xa5, 0x2a, 0x9f, 0x8c, 0x6b, 0x4a, 0x71,
1271	0x4d, 0xaa, 0xf0, 0xf7, 0x95, 0x58, 0x8e, 0xb3, 0x90, 0x9d, 0xdf, 0x51, 0x7f, 0x03, 0x0b, 0x64,
1272	0x5b, 0x51, 0x27, 0x7c, 0xf6, 0xc3, 0xae, 0x44, 0x25, 0x14, 0x4a, 0xc8, 0x84, 0xb4, 0x39, 0xa9,
1273	0x93, 0xb9, 0x7a, 0xea, 0x84, 0xbb, 0xbb, 0x38, 0x7f, 0xe0, 0xbd, 0xe5, 0x4f, 0x32, 0x96, 0x3f,
1274	0x48, 0x85, 0x9c, 0x31, 0xb9, 0x27, 0xd6, 0x38, 0x3f, 0xbf, 0x4e, 0xa2, 0x84, 0x94, 0x71, 0x96,
1275	0xd9, 0xe9, 0x90, 0xba, 0xfe, 0x74, 0xa8, 0xc2, 0x72, 0x1f, 0xdb, 0xc4, 0x19, 0xe3, 0xc8, 0x5d,
1276	0x8d, 0x63, 0x29, 0x42, 0x51, 0x96, 0x32, 0x2c, 0x1d, 0x62, 0x3f, 0xf0, 0x9c, 0xd1, 0xb5, 0xc6,
1277	0x54, 0x8e, 0x81, 0x28, 0x47, 0x13, 0x50, 0xc4, 0x81, 0x8f, 0xb1, 0x1d, 0x84, 0x4c, 0xe9, 0xab,
1278	0x31, 0xf1, 0x0c, 0x2a, 0x11, 0x24, 0xa5, 0x2b, 0x00, 0x98, 0x96, 0xeb, 0x78, 0x81, 0xfe, 0x8d,
1279	0xd3, 0xcd, 0xaf, 0x4c, 0x72, 0x33, 0x1b, 0x8a, 0x9f, 0x3b, 0x5d, 0x12, 0x3e, 0x66, 0x43, 0x7d,
1280	0xad, 0x5e, 0x31, 0x7c, 0x21, 0x86, 0x7a, 0xf9, 0x12, 0x6e, 0x32, 0x86, 0xd7, 0x86, 0x39, 0x18,
1281	0x7a, 0x58, 0xf7, 0xb0, 0xe1, 0x3b, 0x76, 0x9e, 0x9f, 0x38, 0x5c, 0x0f, 0x2d, 0x76, 0x42, 0x03,
1282	0x85, 0xea, 0x0b, 0x7f, 0x4b, 0xc1, 0xed, 0x73, 0x93, 0x07, 0x7d, 0x0e, 0x5b, 0xb1, 0xb1, 0xd1,
1283	0x91, 0x14, 0x95, 0x94, 0xb1, 0xd8, 0xd8, 0x95, 0x95, 0x9a, 0xb6, 0xd7, 0x9c, 0xa9, 0xe4, 0x7b,
1284	0xf0, 0xb3, 0x5d, 0x59, 0xde, 0x6d, 0x48, 0xfa, 0x64, 0x38, 0xb0, 0x89, 0x52, 0x93, 0x5b, 0x3c,
1285	0x87, 0xee, 0x40, 0x5e, 0x51, 0x45, 0x3a, 0x45, 0xf4, 0xb6, 0xaa, 0xea, 0xa5, 0xfb, 0x0f, 0x9f,
1286	0xe8, 0xea, 0x9e, 0x58, 0x7a, 0xf4, 0x98, 0x4f, 0x9c, 0xd1, 0x3e, 0xb8, 0xff, 0x65, 0x29, 0xd2,
1287	0x26, 0xcf, 0x68, 0x1f, 0xde, 0xff, 0xea, 0x71, 0xa4, 0x4d, 0x9d, 0xab, 0x7d, 0xb4, 0x5d, 0xe2,
1288	0x57, 0xd1, 0x5d, 0xd8, 0x98, 0x68, 0xeb, 0x15, 0x75, 0x7b, 0xca, 0xf3, 0xc2, 0x1c, 0x7d, 0xdc,
1289	0x77, 0x7a, 0x8e, 0x3e, 0xee, 0x3d, 0x73, 0x81, 0x9e, 0xf8, 0xe7, 0xd1, 0x26, 0xdc, 0x21, 0x7a,
1290	0x36, 0x28, 0x75, 0x59, 0x94, 0xda, 0x53, 0x3b, 0x58, 0x9c, 0x6b, 0x11, 0xdf, 0x43, 0x76, 0xae,
1291	0x45, 0x7c, 0x17, 0x70, 0xa1, 0x05, 0xd9, 0xc7, 0x1a, 0xba, 0x05, 0xeb, 0x52, 0x85, 0x6d, 0xb3,
1292	0xf4, 0x68, 0x0c, 0x5d, 0x9a, 0x52, 0x3c, 0x78, 0xf2, 0x90, 0x28, 0x1e, 0x3c, 0x79, 0xc8, 0x2f,
1293	0x17, 0xfe, 0xc9, 0xc1, 0xcd, 0xb9, 0x8d, 0x10, 0x6d, 0xc1, 0x27, 0x73, 0x52, 0x83, 0x74, 0xfa,
1294	0xd9, 0x77, 0xc5, 0x87, 0x80, 0xda, 0x52, 0xab, 0x5a, 0x6b, 0xed, 0xea, 0xbb, 0x52, 0x4b, 0x52,
1295	0xe8, 0x2c, 0xe0, 0x17, 0x50, 0x0e, 0x32, 0x52, 0x4b, 0x2c, 0x37, 0xa4, 0x2a, 0xcf, 0xa1, 0x25,
1296	0x58, 0xac, 0xd6, 0xd4, 0xf0, 0x57, 0x02, 0x2d, 0x43, 0xb6, 0x2a, 0xa9, 0x9a, 0x22, 0xbf, 0xa4,
1297	0x83, 0xe0, 0x26, 0xac, 0xb1, 0x9f, 0xba, 0x5a, 0xd9, 0x93, 0xaa, 0xfb, 0xc4, 0x2a, 0x85, 0x10,
1298	0xac, 0x44, 0xc4, 0xb5, 0x66, 0x5b, 0x56, 0x34, 0x3e, 0x8d, 0xd6, 0x60, 0x39, 0x5c, 0xeb, 0x3b,
1299	0x62, 0x8d, 0x98, 0x65, 0x0a, 0x35, 0xb8, 0x31, 0x7b, 0x84, 0x8e, 0x89, 0xff, 0x88, 0x7e, 0x01,
1300	0x1f, 0xcf, 0x39, 0x41, 0xa7, 0x26, 0xbd, 0x98, 0x39, 0xc0, 0x22, 0xa4, 0x76, 0xf6, 0x1b, 0x0d,
1301	0x9e, 0x7b, 0xfa, 0x2d, 0xf7, 0x4e, 0xfc, 0x07, 0x07, 0x5b, 0x97, 0x3e, 0x71, 0xa2, 0x99, 0xf4,
1302	0xa7, 0x9f, 0xe0, 0xa5, 0x33, 0x91, 0x33, 0x2f, 0x53, 0x6a, 0x9d, 0xbd, 0x46, 0x4f, 0x0b, 0x7f,
1303	0x86, 0x6c, 0x7b, 0xd8, 0x1d, 0x98, 0x3d, 0xf2, 0xe4, 0xe2, 0x21, 0xe9, 0x62, 0x2b, 0x7a, 0x40,
1304	0xba, 0xd8, 0x42, 0xbf, 0x8f, 0x0f, 0x9b, 0xc4, 0x7b, 0x19, 0x36, 0xf1, 0x77, 0xca, 0x7f, 0x17,
1305	0x21, 0x5b, 0x1b, 0x77, 0xb8, 0x73, 0x67, 0xf3, 0x01, 0x2c, 0xb3, 0xc6, 0x65, 0xe1, 0xe0, 0x8d,
1306	0x73, 0xc8, 0x76, 0xf2, 0xcb, 0xb9, 0x3b, 0x19, 0xf3, 0xb1, 0x55, 0x93, 0x42, 0xca, 0xe9, 0xef,
1307	0xc4, 0x04, 0xf9, 0x58, 0x59, 0x32, 0x63, 0x52, 0xf4, 0x62, 0xce, 0x88, 0xce, 0x5e, 0x63, 0x44,
1308	0x47, 0xac, 0x67, 0xa6, 0xf4, 0xcc, 0xb0, 0x4b, 0xbe, 0x87, 0x61, 0x97, 0xfa, 0x21, 0xc3, 0xee,
1309	0x6b, 0xc8, 0xe1, 0xb7, 0xae, 0xe9, 0x5d, 0xf3, 0x93, 0x2c, 0xc4, 0x50, 0x86, 0x3a, 0xac, 0x31,
1310	0x86, 0xd8, 0xa4, 0x83, 0xab, 0xf1, 0xac, 0x86, 0xc8, 0xc9, 0xa0, 0xdb, 0x8b, 0x5e, 0x59, 0x69,
1311	0x1a, 0xe4, 0x2f, 0xae, 0x74, 0x83, 0xcf, 0x9d, 0x2e, 0x6d, 0x27, 0x21, 0xe7, 0xf8, 0x71, 0x05,
1312	0x2e, 0x4d, 0x5c, 0x92, 0xcf, 0xec, 0x0b, 0xf1, 0xfe, 0x25, 0x74, 0x2f, 0x3c, 0xc3, 0x75, 0x4d,
1313	0xbb, 0x3f, 0xce, 0x78, 0x36, 0x64, 0xdd, 0x71, 0x05, 0xfc, 0x14, 0x0f, 0x9f, 0x8d, 0x4f, 0x61,
1314	0xed, 0x8c, 0xe7, 0xb3, 0xb5, 0x56, 0xb0, 0x60, 0x29, 0x9e, 0xb1, 0xe8, 0x23, 0xb8, 0xcd, 0xba,
1315	0x54, 0x53, 0xd2, 0xf6, 0xe4, 0xea, 0x4c, 0xc3, 0x61, 0xf3, 0x64, 0x6a, 0x0a, 0x6c, 0xeb, 0xa2,
1316	0xa4, 0xea, 0xa4, 0x5d, 0x73, 0x53, 0xfa, 0xa8, 0xc3, 0x4f, 0xf4, 0x89, 0x42, 0x0f, 0x56, 0xa6,
1317	0xc3, 0x4b, 0x66, 0x03, 0x73, 0xf8, 0x5c, 0x2e, 0x5f, 0xa3, 0x4b, 0x73, 0x08, 0x20, 0x2d, 0x56,
1318	0xb4, 0x5a, 0x47, 0xe2, 0x13, 0xb4, 0x63, 0x1f, 0xb4, 0x6b, 0x0a, 0x69, 0xca, 0x97, 0x7c, 0xec,
1319	0x4d, 0x4a, 0xff, 0x47, 0x7d, 0xec, 0x8d, 0xdf, 0x48, 0xbe, 0x70, 0x32, 0x79, 0x46, 0x9d, 0x7e,
1320	0x76, 0x00, 0xab, 0x33, 0xf5, 0x4a, 0x8e, 0xd8, 0x56, 0x64, 0x4d, 0xaa, 0xd0, 0x4f, 0x8d, 0x86,
1321	0xd4, 0x91, 0x1a, 0x33, 0x47, 0x5c, 0x82, 0x45, 0x55, 0xde, 0xd1, 0x5e, 0x88, 0x8a, 0xc4, 0x73,
1322	0x28, 0x03, 0xc9, 0x3d, 0xb5, 0xc9, 0x27, 0x88, 0x58, 0x3a, 0xd0, 0x24, 0xa5, 0x25, 0x36, 0xf8,
1323	0x64, 0xf9, 0xaf, 0x1c, 0xdc, 0xea, 0x39, 0xd6, 0xbc, 0xbc, 0x28, 0xaf, 0xd5, 0x2d, 0x5f, 0x89,
1324	0xfe, 0x9f, 0x46, 0xfc, 0x3b, 0x6d, 0xee, 0xb7, 0x8f, 0x99, 0x65, 0xdf, 0x19, 0x18, 0x76, 0xbf,
1325	0xe8, 0x78, 0x7d, 0xa1, 0x8f, 0x6d, 0x5a, 0x36, 0xc2, 0x24, 0x28, 0x53, 0xff, 0x94, 0x7b, 0x76,
1326	0x64, 0xf9, 0xff, 0xe7, 0xb8, 0x6f, 0x13, 0xeb, 0xbb, 0x21, 0xb6, 0x42, 0xbd, 0xd4, 0x2d, 0xbf,
1327	0xd8, 0xd9, 0xfe, 0x77, 0x24, 0x7d, 0x45, 0xa5, 0xaf, 0xea, 0x96, 0xff, 0xaa, 0xb3, 0xdd, 0x4d,
1328	0x53, 0xc6, 0x07, 0xdf, 0x07, 0x00, 0x00, 0xff, 0xff, 0xfc, 0x67, 0x51, 0x84, 0xe5, 0x13, 0x00,
1329	0x00,
1330}
1331