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