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