...

Source file src/cloud.google.com/go/kms/apiv1/kmspb/resources.pb.go

Documentation: cloud.google.com/go/kms/apiv1/kmspb

     1  // Copyright 2024 Google LLC
     2  //
     3  // Licensed under the Apache License, Version 2.0 (the "License");
     4  // you may not use this file except in compliance with the License.
     5  // You may obtain a copy of the License at
     6  //
     7  //     http://www.apache.org/licenses/LICENSE-2.0
     8  //
     9  // Unless required by applicable law or agreed to in writing, software
    10  // distributed under the License is distributed on an "AS IS" BASIS,
    11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    12  // See the License for the specific language governing permissions and
    13  // limitations under the License.
    14  
    15  // Code generated by protoc-gen-go. DO NOT EDIT.
    16  // versions:
    17  // 	protoc-gen-go v1.33.0
    18  // 	protoc        v4.25.3
    19  // source: google/cloud/kms/v1/resources.proto
    20  
    21  package kmspb
    22  
    23  import (
    24  	reflect "reflect"
    25  	sync "sync"
    26  
    27  	_ "google.golang.org/genproto/googleapis/api/annotations"
    28  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    29  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    30  	durationpb "google.golang.org/protobuf/types/known/durationpb"
    31  	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
    32  	wrapperspb "google.golang.org/protobuf/types/known/wrapperspb"
    33  )
    34  
    35  const (
    36  	// Verify that this generated code is sufficiently up-to-date.
    37  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    38  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    39  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    40  )
    41  
    42  // [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] specifies how
    43  // cryptographic operations are performed. For more information, see [Protection
    44  // levels] (https://cloud.google.com/kms/docs/algorithms#protection_levels).
    45  type ProtectionLevel int32
    46  
    47  const (
    48  	// Not specified.
    49  	ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED ProtectionLevel = 0
    50  	// Crypto operations are performed in software.
    51  	ProtectionLevel_SOFTWARE ProtectionLevel = 1
    52  	// Crypto operations are performed in a Hardware Security Module.
    53  	ProtectionLevel_HSM ProtectionLevel = 2
    54  	// Crypto operations are performed by an external key manager.
    55  	ProtectionLevel_EXTERNAL ProtectionLevel = 3
    56  	// Crypto operations are performed in an EKM-over-VPC backend.
    57  	ProtectionLevel_EXTERNAL_VPC ProtectionLevel = 4
    58  )
    59  
    60  // Enum value maps for ProtectionLevel.
    61  var (
    62  	ProtectionLevel_name = map[int32]string{
    63  		0: "PROTECTION_LEVEL_UNSPECIFIED",
    64  		1: "SOFTWARE",
    65  		2: "HSM",
    66  		3: "EXTERNAL",
    67  		4: "EXTERNAL_VPC",
    68  	}
    69  	ProtectionLevel_value = map[string]int32{
    70  		"PROTECTION_LEVEL_UNSPECIFIED": 0,
    71  		"SOFTWARE":                     1,
    72  		"HSM":                          2,
    73  		"EXTERNAL":                     3,
    74  		"EXTERNAL_VPC":                 4,
    75  	}
    76  )
    77  
    78  func (x ProtectionLevel) Enum() *ProtectionLevel {
    79  	p := new(ProtectionLevel)
    80  	*p = x
    81  	return p
    82  }
    83  
    84  func (x ProtectionLevel) String() string {
    85  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
    86  }
    87  
    88  func (ProtectionLevel) Descriptor() protoreflect.EnumDescriptor {
    89  	return file_google_cloud_kms_v1_resources_proto_enumTypes[0].Descriptor()
    90  }
    91  
    92  func (ProtectionLevel) Type() protoreflect.EnumType {
    93  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[0]
    94  }
    95  
    96  func (x ProtectionLevel) Number() protoreflect.EnumNumber {
    97  	return protoreflect.EnumNumber(x)
    98  }
    99  
   100  // Deprecated: Use ProtectionLevel.Descriptor instead.
   101  func (ProtectionLevel) EnumDescriptor() ([]byte, []int) {
   102  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{0}
   103  }
   104  
   105  // [CryptoKeyPurpose][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose]
   106  // describes the cryptographic capabilities of a
   107  // [CryptoKey][google.cloud.kms.v1.CryptoKey]. A given key can only be used
   108  // for the operations allowed by its purpose. For more information, see [Key
   109  // purposes](https://cloud.google.com/kms/docs/algorithms#key_purposes).
   110  type CryptoKey_CryptoKeyPurpose int32
   111  
   112  const (
   113  	// Not specified.
   114  	CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED CryptoKey_CryptoKeyPurpose = 0
   115  	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
   116  	// with [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] and
   117  	// [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt].
   118  	CryptoKey_ENCRYPT_DECRYPT CryptoKey_CryptoKeyPurpose = 1
   119  	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
   120  	// with
   121  	// [AsymmetricSign][google.cloud.kms.v1.KeyManagementService.AsymmetricSign]
   122  	// and
   123  	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
   124  	CryptoKey_ASYMMETRIC_SIGN CryptoKey_CryptoKeyPurpose = 5
   125  	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
   126  	// with
   127  	// [AsymmetricDecrypt][google.cloud.kms.v1.KeyManagementService.AsymmetricDecrypt]
   128  	// and
   129  	// [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
   130  	CryptoKey_ASYMMETRIC_DECRYPT CryptoKey_CryptoKeyPurpose = 6
   131  	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
   132  	// with [RawEncrypt][google.cloud.kms.v1.KeyManagementService.RawEncrypt]
   133  	// and [RawDecrypt][google.cloud.kms.v1.KeyManagementService.RawDecrypt].
   134  	// This purpose is meant to be used for interoperable symmetric
   135  	// encryption and does not support automatic CryptoKey rotation.
   136  	CryptoKey_RAW_ENCRYPT_DECRYPT CryptoKey_CryptoKeyPurpose = 7
   137  	// [CryptoKeys][google.cloud.kms.v1.CryptoKey] with this purpose may be used
   138  	// with [MacSign][google.cloud.kms.v1.KeyManagementService.MacSign].
   139  	CryptoKey_MAC CryptoKey_CryptoKeyPurpose = 9
   140  )
   141  
   142  // Enum value maps for CryptoKey_CryptoKeyPurpose.
   143  var (
   144  	CryptoKey_CryptoKeyPurpose_name = map[int32]string{
   145  		0: "CRYPTO_KEY_PURPOSE_UNSPECIFIED",
   146  		1: "ENCRYPT_DECRYPT",
   147  		5: "ASYMMETRIC_SIGN",
   148  		6: "ASYMMETRIC_DECRYPT",
   149  		7: "RAW_ENCRYPT_DECRYPT",
   150  		9: "MAC",
   151  	}
   152  	CryptoKey_CryptoKeyPurpose_value = map[string]int32{
   153  		"CRYPTO_KEY_PURPOSE_UNSPECIFIED": 0,
   154  		"ENCRYPT_DECRYPT":                1,
   155  		"ASYMMETRIC_SIGN":                5,
   156  		"ASYMMETRIC_DECRYPT":             6,
   157  		"RAW_ENCRYPT_DECRYPT":            7,
   158  		"MAC":                            9,
   159  	}
   160  )
   161  
   162  func (x CryptoKey_CryptoKeyPurpose) Enum() *CryptoKey_CryptoKeyPurpose {
   163  	p := new(CryptoKey_CryptoKeyPurpose)
   164  	*p = x
   165  	return p
   166  }
   167  
   168  func (x CryptoKey_CryptoKeyPurpose) String() string {
   169  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   170  }
   171  
   172  func (CryptoKey_CryptoKeyPurpose) Descriptor() protoreflect.EnumDescriptor {
   173  	return file_google_cloud_kms_v1_resources_proto_enumTypes[1].Descriptor()
   174  }
   175  
   176  func (CryptoKey_CryptoKeyPurpose) Type() protoreflect.EnumType {
   177  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[1]
   178  }
   179  
   180  func (x CryptoKey_CryptoKeyPurpose) Number() protoreflect.EnumNumber {
   181  	return protoreflect.EnumNumber(x)
   182  }
   183  
   184  // Deprecated: Use CryptoKey_CryptoKeyPurpose.Descriptor instead.
   185  func (CryptoKey_CryptoKeyPurpose) EnumDescriptor() ([]byte, []int) {
   186  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{1, 0}
   187  }
   188  
   189  // Attestation formats provided by the HSM.
   190  type KeyOperationAttestation_AttestationFormat int32
   191  
   192  const (
   193  	// Not specified.
   194  	KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED KeyOperationAttestation_AttestationFormat = 0
   195  	// Cavium HSM attestation compressed with gzip. Note that this format is
   196  	// defined by Cavium and subject to change at any time.
   197  	//
   198  	// See
   199  	// https://www.marvell.com/products/security-solutions/nitrox-hs-adapters/software-key-attestation.html.
   200  	KeyOperationAttestation_CAVIUM_V1_COMPRESSED KeyOperationAttestation_AttestationFormat = 3
   201  	// Cavium HSM attestation V2 compressed with gzip. This is a new format
   202  	// introduced in Cavium's version 3.2-08.
   203  	KeyOperationAttestation_CAVIUM_V2_COMPRESSED KeyOperationAttestation_AttestationFormat = 4
   204  )
   205  
   206  // Enum value maps for KeyOperationAttestation_AttestationFormat.
   207  var (
   208  	KeyOperationAttestation_AttestationFormat_name = map[int32]string{
   209  		0: "ATTESTATION_FORMAT_UNSPECIFIED",
   210  		3: "CAVIUM_V1_COMPRESSED",
   211  		4: "CAVIUM_V2_COMPRESSED",
   212  	}
   213  	KeyOperationAttestation_AttestationFormat_value = map[string]int32{
   214  		"ATTESTATION_FORMAT_UNSPECIFIED": 0,
   215  		"CAVIUM_V1_COMPRESSED":           3,
   216  		"CAVIUM_V2_COMPRESSED":           4,
   217  	}
   218  )
   219  
   220  func (x KeyOperationAttestation_AttestationFormat) Enum() *KeyOperationAttestation_AttestationFormat {
   221  	p := new(KeyOperationAttestation_AttestationFormat)
   222  	*p = x
   223  	return p
   224  }
   225  
   226  func (x KeyOperationAttestation_AttestationFormat) String() string {
   227  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   228  }
   229  
   230  func (KeyOperationAttestation_AttestationFormat) Descriptor() protoreflect.EnumDescriptor {
   231  	return file_google_cloud_kms_v1_resources_proto_enumTypes[2].Descriptor()
   232  }
   233  
   234  func (KeyOperationAttestation_AttestationFormat) Type() protoreflect.EnumType {
   235  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[2]
   236  }
   237  
   238  func (x KeyOperationAttestation_AttestationFormat) Number() protoreflect.EnumNumber {
   239  	return protoreflect.EnumNumber(x)
   240  }
   241  
   242  // Deprecated: Use KeyOperationAttestation_AttestationFormat.Descriptor instead.
   243  func (KeyOperationAttestation_AttestationFormat) EnumDescriptor() ([]byte, []int) {
   244  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3, 0}
   245  }
   246  
   247  // The algorithm of the
   248  // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], indicating what
   249  // parameters must be used for each cryptographic operation.
   250  //
   251  // The
   252  // [GOOGLE_SYMMETRIC_ENCRYPTION][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.GOOGLE_SYMMETRIC_ENCRYPTION]
   253  // algorithm is usable with
   254  // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
   255  // [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
   256  //
   257  // Algorithms beginning with `RSA_SIGN_` are usable with
   258  // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
   259  // [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
   260  //
   261  // The fields in the name after `RSA_SIGN_` correspond to the following
   262  // parameters: padding algorithm, modulus bit length, and digest algorithm.
   263  //
   264  // For PSS, the salt length used is equal to the length of digest
   265  // algorithm. For example,
   266  // [RSA_SIGN_PSS_2048_SHA256][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm.RSA_SIGN_PSS_2048_SHA256]
   267  // will use PSS with a salt length of 256 bits or 32 bytes.
   268  //
   269  // Algorithms beginning with `RSA_DECRYPT_` are usable with
   270  // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
   271  // [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT].
   272  //
   273  // The fields in the name after `RSA_DECRYPT_` correspond to the following
   274  // parameters: padding algorithm, modulus bit length, and digest algorithm.
   275  //
   276  // Algorithms beginning with `EC_SIGN_` are usable with
   277  // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
   278  // [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN].
   279  //
   280  // The fields in the name after `EC_SIGN_` correspond to the following
   281  // parameters: elliptic curve, digest algorithm.
   282  //
   283  // Algorithms beginning with `HMAC_` are usable with
   284  // [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
   285  // [MAC][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.MAC].
   286  //
   287  // The suffix following `HMAC_` corresponds to the hash algorithm being used
   288  // (eg. SHA256).
   289  //
   290  // For more information, see [Key purposes and algorithms]
   291  // (https://cloud.google.com/kms/docs/algorithms).
   292  type CryptoKeyVersion_CryptoKeyVersionAlgorithm int32
   293  
   294  const (
   295  	// Not specified.
   296  	CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionAlgorithm = 0
   297  	// Creates symmetric encryption keys.
   298  	CryptoKeyVersion_GOOGLE_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 1
   299  	// AES-GCM (Galois Counter Mode) using 128-bit keys.
   300  	CryptoKeyVersion_AES_128_GCM CryptoKeyVersion_CryptoKeyVersionAlgorithm = 41
   301  	// AES-GCM (Galois Counter Mode) using 256-bit keys.
   302  	CryptoKeyVersion_AES_256_GCM CryptoKeyVersion_CryptoKeyVersionAlgorithm = 19
   303  	// AES-CBC (Cipher Block Chaining Mode) using 128-bit keys.
   304  	CryptoKeyVersion_AES_128_CBC CryptoKeyVersion_CryptoKeyVersionAlgorithm = 42
   305  	// AES-CBC (Cipher Block Chaining Mode) using 256-bit keys.
   306  	CryptoKeyVersion_AES_256_CBC CryptoKeyVersion_CryptoKeyVersionAlgorithm = 43
   307  	// AES-CTR (Counter Mode) using 128-bit keys.
   308  	CryptoKeyVersion_AES_128_CTR CryptoKeyVersion_CryptoKeyVersionAlgorithm = 44
   309  	// AES-CTR (Counter Mode) using 256-bit keys.
   310  	CryptoKeyVersion_AES_256_CTR CryptoKeyVersion_CryptoKeyVersionAlgorithm = 45
   311  	// RSASSA-PSS 2048 bit key with a SHA256 digest.
   312  	CryptoKeyVersion_RSA_SIGN_PSS_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 2
   313  	// RSASSA-PSS 3072 bit key with a SHA256 digest.
   314  	CryptoKeyVersion_RSA_SIGN_PSS_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 3
   315  	// RSASSA-PSS 4096 bit key with a SHA256 digest.
   316  	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 4
   317  	// RSASSA-PSS 4096 bit key with a SHA512 digest.
   318  	CryptoKeyVersion_RSA_SIGN_PSS_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 15
   319  	// RSASSA-PKCS1-v1_5 with a 2048 bit key and a SHA256 digest.
   320  	CryptoKeyVersion_RSA_SIGN_PKCS1_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 5
   321  	// RSASSA-PKCS1-v1_5 with a 3072 bit key and a SHA256 digest.
   322  	CryptoKeyVersion_RSA_SIGN_PKCS1_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 6
   323  	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA256 digest.
   324  	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 7
   325  	// RSASSA-PKCS1-v1_5 with a 4096 bit key and a SHA512 digest.
   326  	CryptoKeyVersion_RSA_SIGN_PKCS1_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 16
   327  	// RSASSA-PKCS1-v1_5 signing without encoding, with a 2048 bit key.
   328  	CryptoKeyVersion_RSA_SIGN_RAW_PKCS1_2048 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 28
   329  	// RSASSA-PKCS1-v1_5 signing without encoding, with a 3072 bit key.
   330  	CryptoKeyVersion_RSA_SIGN_RAW_PKCS1_3072 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 29
   331  	// RSASSA-PKCS1-v1_5 signing without encoding, with a 4096 bit key.
   332  	CryptoKeyVersion_RSA_SIGN_RAW_PKCS1_4096 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 30
   333  	// RSAES-OAEP 2048 bit key with a SHA256 digest.
   334  	CryptoKeyVersion_RSA_DECRYPT_OAEP_2048_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 8
   335  	// RSAES-OAEP 3072 bit key with a SHA256 digest.
   336  	CryptoKeyVersion_RSA_DECRYPT_OAEP_3072_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 9
   337  	// RSAES-OAEP 4096 bit key with a SHA256 digest.
   338  	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 10
   339  	// RSAES-OAEP 4096 bit key with a SHA512 digest.
   340  	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 17
   341  	// RSAES-OAEP 2048 bit key with a SHA1 digest.
   342  	CryptoKeyVersion_RSA_DECRYPT_OAEP_2048_SHA1 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 37
   343  	// RSAES-OAEP 3072 bit key with a SHA1 digest.
   344  	CryptoKeyVersion_RSA_DECRYPT_OAEP_3072_SHA1 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 38
   345  	// RSAES-OAEP 4096 bit key with a SHA1 digest.
   346  	CryptoKeyVersion_RSA_DECRYPT_OAEP_4096_SHA1 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 39
   347  	// ECDSA on the NIST P-256 curve with a SHA256 digest.
   348  	// Other hash functions can also be used:
   349  	// https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
   350  	CryptoKeyVersion_EC_SIGN_P256_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 12
   351  	// ECDSA on the NIST P-384 curve with a SHA384 digest.
   352  	// Other hash functions can also be used:
   353  	// https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
   354  	CryptoKeyVersion_EC_SIGN_P384_SHA384 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 13
   355  	// ECDSA on the non-NIST secp256k1 curve. This curve is only supported for
   356  	// HSM protection level.
   357  	// Other hash functions can also be used:
   358  	// https://cloud.google.com/kms/docs/create-validate-signatures#ecdsa_support_for_other_hash_algorithms
   359  	CryptoKeyVersion_EC_SIGN_SECP256K1_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 31
   360  	// EdDSA on the Curve25519 in pure mode (taking data as input).
   361  	CryptoKeyVersion_EC_SIGN_ED25519 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 40
   362  	// HMAC-SHA256 signing with a 256 bit key.
   363  	CryptoKeyVersion_HMAC_SHA256 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 32
   364  	// HMAC-SHA1 signing with a 160 bit key.
   365  	CryptoKeyVersion_HMAC_SHA1 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 33
   366  	// HMAC-SHA384 signing with a 384 bit key.
   367  	CryptoKeyVersion_HMAC_SHA384 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 34
   368  	// HMAC-SHA512 signing with a 512 bit key.
   369  	CryptoKeyVersion_HMAC_SHA512 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 35
   370  	// HMAC-SHA224 signing with a 224 bit key.
   371  	CryptoKeyVersion_HMAC_SHA224 CryptoKeyVersion_CryptoKeyVersionAlgorithm = 36
   372  	// Algorithm representing symmetric encryption by an external key manager.
   373  	CryptoKeyVersion_EXTERNAL_SYMMETRIC_ENCRYPTION CryptoKeyVersion_CryptoKeyVersionAlgorithm = 18
   374  )
   375  
   376  // Enum value maps for CryptoKeyVersion_CryptoKeyVersionAlgorithm.
   377  var (
   378  	CryptoKeyVersion_CryptoKeyVersionAlgorithm_name = map[int32]string{
   379  		0:  "CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED",
   380  		1:  "GOOGLE_SYMMETRIC_ENCRYPTION",
   381  		41: "AES_128_GCM",
   382  		19: "AES_256_GCM",
   383  		42: "AES_128_CBC",
   384  		43: "AES_256_CBC",
   385  		44: "AES_128_CTR",
   386  		45: "AES_256_CTR",
   387  		2:  "RSA_SIGN_PSS_2048_SHA256",
   388  		3:  "RSA_SIGN_PSS_3072_SHA256",
   389  		4:  "RSA_SIGN_PSS_4096_SHA256",
   390  		15: "RSA_SIGN_PSS_4096_SHA512",
   391  		5:  "RSA_SIGN_PKCS1_2048_SHA256",
   392  		6:  "RSA_SIGN_PKCS1_3072_SHA256",
   393  		7:  "RSA_SIGN_PKCS1_4096_SHA256",
   394  		16: "RSA_SIGN_PKCS1_4096_SHA512",
   395  		28: "RSA_SIGN_RAW_PKCS1_2048",
   396  		29: "RSA_SIGN_RAW_PKCS1_3072",
   397  		30: "RSA_SIGN_RAW_PKCS1_4096",
   398  		8:  "RSA_DECRYPT_OAEP_2048_SHA256",
   399  		9:  "RSA_DECRYPT_OAEP_3072_SHA256",
   400  		10: "RSA_DECRYPT_OAEP_4096_SHA256",
   401  		17: "RSA_DECRYPT_OAEP_4096_SHA512",
   402  		37: "RSA_DECRYPT_OAEP_2048_SHA1",
   403  		38: "RSA_DECRYPT_OAEP_3072_SHA1",
   404  		39: "RSA_DECRYPT_OAEP_4096_SHA1",
   405  		12: "EC_SIGN_P256_SHA256",
   406  		13: "EC_SIGN_P384_SHA384",
   407  		31: "EC_SIGN_SECP256K1_SHA256",
   408  		40: "EC_SIGN_ED25519",
   409  		32: "HMAC_SHA256",
   410  		33: "HMAC_SHA1",
   411  		34: "HMAC_SHA384",
   412  		35: "HMAC_SHA512",
   413  		36: "HMAC_SHA224",
   414  		18: "EXTERNAL_SYMMETRIC_ENCRYPTION",
   415  	}
   416  	CryptoKeyVersion_CryptoKeyVersionAlgorithm_value = map[string]int32{
   417  		"CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED": 0,
   418  		"GOOGLE_SYMMETRIC_ENCRYPTION":              1,
   419  		"AES_128_GCM":                              41,
   420  		"AES_256_GCM":                              19,
   421  		"AES_128_CBC":                              42,
   422  		"AES_256_CBC":                              43,
   423  		"AES_128_CTR":                              44,
   424  		"AES_256_CTR":                              45,
   425  		"RSA_SIGN_PSS_2048_SHA256":                 2,
   426  		"RSA_SIGN_PSS_3072_SHA256":                 3,
   427  		"RSA_SIGN_PSS_4096_SHA256":                 4,
   428  		"RSA_SIGN_PSS_4096_SHA512":                 15,
   429  		"RSA_SIGN_PKCS1_2048_SHA256":               5,
   430  		"RSA_SIGN_PKCS1_3072_SHA256":               6,
   431  		"RSA_SIGN_PKCS1_4096_SHA256":               7,
   432  		"RSA_SIGN_PKCS1_4096_SHA512":               16,
   433  		"RSA_SIGN_RAW_PKCS1_2048":                  28,
   434  		"RSA_SIGN_RAW_PKCS1_3072":                  29,
   435  		"RSA_SIGN_RAW_PKCS1_4096":                  30,
   436  		"RSA_DECRYPT_OAEP_2048_SHA256":             8,
   437  		"RSA_DECRYPT_OAEP_3072_SHA256":             9,
   438  		"RSA_DECRYPT_OAEP_4096_SHA256":             10,
   439  		"RSA_DECRYPT_OAEP_4096_SHA512":             17,
   440  		"RSA_DECRYPT_OAEP_2048_SHA1":               37,
   441  		"RSA_DECRYPT_OAEP_3072_SHA1":               38,
   442  		"RSA_DECRYPT_OAEP_4096_SHA1":               39,
   443  		"EC_SIGN_P256_SHA256":                      12,
   444  		"EC_SIGN_P384_SHA384":                      13,
   445  		"EC_SIGN_SECP256K1_SHA256":                 31,
   446  		"EC_SIGN_ED25519":                          40,
   447  		"HMAC_SHA256":                              32,
   448  		"HMAC_SHA1":                                33,
   449  		"HMAC_SHA384":                              34,
   450  		"HMAC_SHA512":                              35,
   451  		"HMAC_SHA224":                              36,
   452  		"EXTERNAL_SYMMETRIC_ENCRYPTION":            18,
   453  	}
   454  )
   455  
   456  func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) Enum() *CryptoKeyVersion_CryptoKeyVersionAlgorithm {
   457  	p := new(CryptoKeyVersion_CryptoKeyVersionAlgorithm)
   458  	*p = x
   459  	return p
   460  }
   461  
   462  func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) String() string {
   463  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   464  }
   465  
   466  func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) Descriptor() protoreflect.EnumDescriptor {
   467  	return file_google_cloud_kms_v1_resources_proto_enumTypes[3].Descriptor()
   468  }
   469  
   470  func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) Type() protoreflect.EnumType {
   471  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[3]
   472  }
   473  
   474  func (x CryptoKeyVersion_CryptoKeyVersionAlgorithm) Number() protoreflect.EnumNumber {
   475  	return protoreflect.EnumNumber(x)
   476  }
   477  
   478  // Deprecated: Use CryptoKeyVersion_CryptoKeyVersionAlgorithm.Descriptor instead.
   479  func (CryptoKeyVersion_CryptoKeyVersionAlgorithm) EnumDescriptor() ([]byte, []int) {
   480  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 0}
   481  }
   482  
   483  // The state of a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion],
   484  // indicating if it can be used.
   485  type CryptoKeyVersion_CryptoKeyVersionState int32
   486  
   487  const (
   488  	// Not specified.
   489  	CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionState = 0
   490  	// This version is still being generated. It may not be used, enabled,
   491  	// disabled, or destroyed yet. Cloud KMS will automatically mark this
   492  	// version
   493  	// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
   494  	// as soon as the version is ready.
   495  	CryptoKeyVersion_PENDING_GENERATION CryptoKeyVersion_CryptoKeyVersionState = 5
   496  	// This version may be used for cryptographic operations.
   497  	CryptoKeyVersion_ENABLED CryptoKeyVersion_CryptoKeyVersionState = 1
   498  	// This version may not be used, but the key material is still available,
   499  	// and the version can be placed back into the
   500  	// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
   501  	// state.
   502  	CryptoKeyVersion_DISABLED CryptoKeyVersion_CryptoKeyVersionState = 2
   503  	// This version is destroyed, and the key material is no longer stored.
   504  	// This version may only become
   505  	// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
   506  	// again if this version is
   507  	// [reimport_eligible][google.cloud.kms.v1.CryptoKeyVersion.reimport_eligible]
   508  	// and the original key material is reimported with a call to
   509  	// [KeyManagementService.ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
   510  	CryptoKeyVersion_DESTROYED CryptoKeyVersion_CryptoKeyVersionState = 3
   511  	// This version is scheduled for destruction, and will be destroyed soon.
   512  	// Call
   513  	// [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion]
   514  	// to put it back into the
   515  	// [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED]
   516  	// state.
   517  	CryptoKeyVersion_DESTROY_SCHEDULED CryptoKeyVersion_CryptoKeyVersionState = 4
   518  	// This version is still being imported. It may not be used, enabled,
   519  	// disabled, or destroyed yet. Cloud KMS will automatically mark this
   520  	// version
   521  	// [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
   522  	// as soon as the version is ready.
   523  	CryptoKeyVersion_PENDING_IMPORT CryptoKeyVersion_CryptoKeyVersionState = 6
   524  	// This version was not imported successfully. It may not be used, enabled,
   525  	// disabled, or destroyed. The submitted key material has been discarded.
   526  	// Additional details can be found in
   527  	// [CryptoKeyVersion.import_failure_reason][google.cloud.kms.v1.CryptoKeyVersion.import_failure_reason].
   528  	CryptoKeyVersion_IMPORT_FAILED CryptoKeyVersion_CryptoKeyVersionState = 7
   529  	// This version was not generated successfully. It may not be used, enabled,
   530  	// disabled, or destroyed. Additional details can be found in
   531  	// [CryptoKeyVersion.generation_failure_reason][google.cloud.kms.v1.CryptoKeyVersion.generation_failure_reason].
   532  	CryptoKeyVersion_GENERATION_FAILED CryptoKeyVersion_CryptoKeyVersionState = 8
   533  	// This version was destroyed, and it may not be used or enabled again.
   534  	// Cloud KMS is waiting for the corresponding key material residing in an
   535  	// external key manager to be destroyed.
   536  	CryptoKeyVersion_PENDING_EXTERNAL_DESTRUCTION CryptoKeyVersion_CryptoKeyVersionState = 9
   537  	// This version was destroyed, and it may not be used or enabled again.
   538  	// However, Cloud KMS could not confirm that the corresponding key material
   539  	// residing in an external key manager was destroyed. Additional details can
   540  	// be found in
   541  	// [CryptoKeyVersion.external_destruction_failure_reason][google.cloud.kms.v1.CryptoKeyVersion.external_destruction_failure_reason].
   542  	CryptoKeyVersion_EXTERNAL_DESTRUCTION_FAILED CryptoKeyVersion_CryptoKeyVersionState = 10
   543  )
   544  
   545  // Enum value maps for CryptoKeyVersion_CryptoKeyVersionState.
   546  var (
   547  	CryptoKeyVersion_CryptoKeyVersionState_name = map[int32]string{
   548  		0:  "CRYPTO_KEY_VERSION_STATE_UNSPECIFIED",
   549  		5:  "PENDING_GENERATION",
   550  		1:  "ENABLED",
   551  		2:  "DISABLED",
   552  		3:  "DESTROYED",
   553  		4:  "DESTROY_SCHEDULED",
   554  		6:  "PENDING_IMPORT",
   555  		7:  "IMPORT_FAILED",
   556  		8:  "GENERATION_FAILED",
   557  		9:  "PENDING_EXTERNAL_DESTRUCTION",
   558  		10: "EXTERNAL_DESTRUCTION_FAILED",
   559  	}
   560  	CryptoKeyVersion_CryptoKeyVersionState_value = map[string]int32{
   561  		"CRYPTO_KEY_VERSION_STATE_UNSPECIFIED": 0,
   562  		"PENDING_GENERATION":                   5,
   563  		"ENABLED":                              1,
   564  		"DISABLED":                             2,
   565  		"DESTROYED":                            3,
   566  		"DESTROY_SCHEDULED":                    4,
   567  		"PENDING_IMPORT":                       6,
   568  		"IMPORT_FAILED":                        7,
   569  		"GENERATION_FAILED":                    8,
   570  		"PENDING_EXTERNAL_DESTRUCTION":         9,
   571  		"EXTERNAL_DESTRUCTION_FAILED":          10,
   572  	}
   573  )
   574  
   575  func (x CryptoKeyVersion_CryptoKeyVersionState) Enum() *CryptoKeyVersion_CryptoKeyVersionState {
   576  	p := new(CryptoKeyVersion_CryptoKeyVersionState)
   577  	*p = x
   578  	return p
   579  }
   580  
   581  func (x CryptoKeyVersion_CryptoKeyVersionState) String() string {
   582  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   583  }
   584  
   585  func (CryptoKeyVersion_CryptoKeyVersionState) Descriptor() protoreflect.EnumDescriptor {
   586  	return file_google_cloud_kms_v1_resources_proto_enumTypes[4].Descriptor()
   587  }
   588  
   589  func (CryptoKeyVersion_CryptoKeyVersionState) Type() protoreflect.EnumType {
   590  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[4]
   591  }
   592  
   593  func (x CryptoKeyVersion_CryptoKeyVersionState) Number() protoreflect.EnumNumber {
   594  	return protoreflect.EnumNumber(x)
   595  }
   596  
   597  // Deprecated: Use CryptoKeyVersion_CryptoKeyVersionState.Descriptor instead.
   598  func (CryptoKeyVersion_CryptoKeyVersionState) EnumDescriptor() ([]byte, []int) {
   599  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 1}
   600  }
   601  
   602  // A view for [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]s.
   603  // Controls the level of detail returned for
   604  // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] in
   605  // [KeyManagementService.ListCryptoKeyVersions][google.cloud.kms.v1.KeyManagementService.ListCryptoKeyVersions]
   606  // and
   607  // [KeyManagementService.ListCryptoKeys][google.cloud.kms.v1.KeyManagementService.ListCryptoKeys].
   608  type CryptoKeyVersion_CryptoKeyVersionView int32
   609  
   610  const (
   611  	// Default view for each
   612  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Does not
   613  	// include the
   614  	// [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation] field.
   615  	CryptoKeyVersion_CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED CryptoKeyVersion_CryptoKeyVersionView = 0
   616  	// Provides all fields in each
   617  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], including the
   618  	// [attestation][google.cloud.kms.v1.CryptoKeyVersion.attestation].
   619  	CryptoKeyVersion_FULL CryptoKeyVersion_CryptoKeyVersionView = 1
   620  )
   621  
   622  // Enum value maps for CryptoKeyVersion_CryptoKeyVersionView.
   623  var (
   624  	CryptoKeyVersion_CryptoKeyVersionView_name = map[int32]string{
   625  		0: "CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED",
   626  		1: "FULL",
   627  	}
   628  	CryptoKeyVersion_CryptoKeyVersionView_value = map[string]int32{
   629  		"CRYPTO_KEY_VERSION_VIEW_UNSPECIFIED": 0,
   630  		"FULL":                                1,
   631  	}
   632  )
   633  
   634  func (x CryptoKeyVersion_CryptoKeyVersionView) Enum() *CryptoKeyVersion_CryptoKeyVersionView {
   635  	p := new(CryptoKeyVersion_CryptoKeyVersionView)
   636  	*p = x
   637  	return p
   638  }
   639  
   640  func (x CryptoKeyVersion_CryptoKeyVersionView) String() string {
   641  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   642  }
   643  
   644  func (CryptoKeyVersion_CryptoKeyVersionView) Descriptor() protoreflect.EnumDescriptor {
   645  	return file_google_cloud_kms_v1_resources_proto_enumTypes[5].Descriptor()
   646  }
   647  
   648  func (CryptoKeyVersion_CryptoKeyVersionView) Type() protoreflect.EnumType {
   649  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[5]
   650  }
   651  
   652  func (x CryptoKeyVersion_CryptoKeyVersionView) Number() protoreflect.EnumNumber {
   653  	return protoreflect.EnumNumber(x)
   654  }
   655  
   656  // Deprecated: Use CryptoKeyVersion_CryptoKeyVersionView.Descriptor instead.
   657  func (CryptoKeyVersion_CryptoKeyVersionView) EnumDescriptor() ([]byte, []int) {
   658  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4, 2}
   659  }
   660  
   661  // [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] describes the
   662  // key wrapping method chosen for this
   663  // [ImportJob][google.cloud.kms.v1.ImportJob].
   664  type ImportJob_ImportMethod int32
   665  
   666  const (
   667  	// Not specified.
   668  	ImportJob_IMPORT_METHOD_UNSPECIFIED ImportJob_ImportMethod = 0
   669  	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
   670  	// scheme defined in the PKCS #11 standard. In summary, this involves
   671  	// wrapping the raw key with an ephemeral AES key, and wrapping the
   672  	// ephemeral AES key with a 3072 bit RSA key. For more details, see
   673  	// [RSA AES key wrap
   674  	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
   675  	ImportJob_RSA_OAEP_3072_SHA1_AES_256 ImportJob_ImportMethod = 1
   676  	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
   677  	// scheme defined in the PKCS #11 standard. In summary, this involves
   678  	// wrapping the raw key with an ephemeral AES key, and wrapping the
   679  	// ephemeral AES key with a 4096 bit RSA key. For more details, see
   680  	// [RSA AES key wrap
   681  	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
   682  	ImportJob_RSA_OAEP_4096_SHA1_AES_256 ImportJob_ImportMethod = 2
   683  	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
   684  	// scheme defined in the PKCS #11 standard. In summary, this involves
   685  	// wrapping the raw key with an ephemeral AES key, and wrapping the
   686  	// ephemeral AES key with a 3072 bit RSA key. For more details, see
   687  	// [RSA AES key wrap
   688  	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
   689  	ImportJob_RSA_OAEP_3072_SHA256_AES_256 ImportJob_ImportMethod = 3
   690  	// This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
   691  	// scheme defined in the PKCS #11 standard. In summary, this involves
   692  	// wrapping the raw key with an ephemeral AES key, and wrapping the
   693  	// ephemeral AES key with a 4096 bit RSA key. For more details, see
   694  	// [RSA AES key wrap
   695  	// mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
   696  	ImportJob_RSA_OAEP_4096_SHA256_AES_256 ImportJob_ImportMethod = 4
   697  	// This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
   698  	// key material to be imported is wrapped directly with the RSA key. Due
   699  	// to technical limitations of RSA wrapping, this method cannot be used to
   700  	// wrap RSA keys for import.
   701  	ImportJob_RSA_OAEP_3072_SHA256 ImportJob_ImportMethod = 5
   702  	// This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
   703  	// key material to be imported is wrapped directly with the RSA key. Due
   704  	// to technical limitations of RSA wrapping, this method cannot be used to
   705  	// wrap RSA keys for import.
   706  	ImportJob_RSA_OAEP_4096_SHA256 ImportJob_ImportMethod = 6
   707  )
   708  
   709  // Enum value maps for ImportJob_ImportMethod.
   710  var (
   711  	ImportJob_ImportMethod_name = map[int32]string{
   712  		0: "IMPORT_METHOD_UNSPECIFIED",
   713  		1: "RSA_OAEP_3072_SHA1_AES_256",
   714  		2: "RSA_OAEP_4096_SHA1_AES_256",
   715  		3: "RSA_OAEP_3072_SHA256_AES_256",
   716  		4: "RSA_OAEP_4096_SHA256_AES_256",
   717  		5: "RSA_OAEP_3072_SHA256",
   718  		6: "RSA_OAEP_4096_SHA256",
   719  	}
   720  	ImportJob_ImportMethod_value = map[string]int32{
   721  		"IMPORT_METHOD_UNSPECIFIED":    0,
   722  		"RSA_OAEP_3072_SHA1_AES_256":   1,
   723  		"RSA_OAEP_4096_SHA1_AES_256":   2,
   724  		"RSA_OAEP_3072_SHA256_AES_256": 3,
   725  		"RSA_OAEP_4096_SHA256_AES_256": 4,
   726  		"RSA_OAEP_3072_SHA256":         5,
   727  		"RSA_OAEP_4096_SHA256":         6,
   728  	}
   729  )
   730  
   731  func (x ImportJob_ImportMethod) Enum() *ImportJob_ImportMethod {
   732  	p := new(ImportJob_ImportMethod)
   733  	*p = x
   734  	return p
   735  }
   736  
   737  func (x ImportJob_ImportMethod) String() string {
   738  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   739  }
   740  
   741  func (ImportJob_ImportMethod) Descriptor() protoreflect.EnumDescriptor {
   742  	return file_google_cloud_kms_v1_resources_proto_enumTypes[6].Descriptor()
   743  }
   744  
   745  func (ImportJob_ImportMethod) Type() protoreflect.EnumType {
   746  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[6]
   747  }
   748  
   749  func (x ImportJob_ImportMethod) Number() protoreflect.EnumNumber {
   750  	return protoreflect.EnumNumber(x)
   751  }
   752  
   753  // Deprecated: Use ImportJob_ImportMethod.Descriptor instead.
   754  func (ImportJob_ImportMethod) EnumDescriptor() ([]byte, []int) {
   755  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 0}
   756  }
   757  
   758  // The state of the [ImportJob][google.cloud.kms.v1.ImportJob], indicating if
   759  // it can be used.
   760  type ImportJob_ImportJobState int32
   761  
   762  const (
   763  	// Not specified.
   764  	ImportJob_IMPORT_JOB_STATE_UNSPECIFIED ImportJob_ImportJobState = 0
   765  	// The wrapping key for this job is still being generated. It may not be
   766  	// used. Cloud KMS will automatically mark this job as
   767  	// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] as soon as
   768  	// the wrapping key is generated.
   769  	ImportJob_PENDING_GENERATION ImportJob_ImportJobState = 1
   770  	// This job may be used in
   771  	// [CreateCryptoKey][google.cloud.kms.v1.KeyManagementService.CreateCryptoKey]
   772  	// and
   773  	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
   774  	// requests.
   775  	ImportJob_ACTIVE ImportJob_ImportJobState = 2
   776  	// This job can no longer be used and may not leave this state once entered.
   777  	ImportJob_EXPIRED ImportJob_ImportJobState = 3
   778  )
   779  
   780  // Enum value maps for ImportJob_ImportJobState.
   781  var (
   782  	ImportJob_ImportJobState_name = map[int32]string{
   783  		0: "IMPORT_JOB_STATE_UNSPECIFIED",
   784  		1: "PENDING_GENERATION",
   785  		2: "ACTIVE",
   786  		3: "EXPIRED",
   787  	}
   788  	ImportJob_ImportJobState_value = map[string]int32{
   789  		"IMPORT_JOB_STATE_UNSPECIFIED": 0,
   790  		"PENDING_GENERATION":           1,
   791  		"ACTIVE":                       2,
   792  		"EXPIRED":                      3,
   793  	}
   794  )
   795  
   796  func (x ImportJob_ImportJobState) Enum() *ImportJob_ImportJobState {
   797  	p := new(ImportJob_ImportJobState)
   798  	*p = x
   799  	return p
   800  }
   801  
   802  func (x ImportJob_ImportJobState) String() string {
   803  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
   804  }
   805  
   806  func (ImportJob_ImportJobState) Descriptor() protoreflect.EnumDescriptor {
   807  	return file_google_cloud_kms_v1_resources_proto_enumTypes[7].Descriptor()
   808  }
   809  
   810  func (ImportJob_ImportJobState) Type() protoreflect.EnumType {
   811  	return &file_google_cloud_kms_v1_resources_proto_enumTypes[7]
   812  }
   813  
   814  func (x ImportJob_ImportJobState) Number() protoreflect.EnumNumber {
   815  	return protoreflect.EnumNumber(x)
   816  }
   817  
   818  // Deprecated: Use ImportJob_ImportJobState.Descriptor instead.
   819  func (ImportJob_ImportJobState) EnumDescriptor() ([]byte, []int) {
   820  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 1}
   821  }
   822  
   823  // A [KeyRing][google.cloud.kms.v1.KeyRing] is a toplevel logical grouping of
   824  // [CryptoKeys][google.cloud.kms.v1.CryptoKey].
   825  type KeyRing struct {
   826  	state         protoimpl.MessageState
   827  	sizeCache     protoimpl.SizeCache
   828  	unknownFields protoimpl.UnknownFields
   829  
   830  	// Output only. The resource name for the
   831  	// [KeyRing][google.cloud.kms.v1.KeyRing] in the format
   832  	// `projects/*/locations/*/keyRings/*`.
   833  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   834  	// Output only. The time at which this [KeyRing][google.cloud.kms.v1.KeyRing]
   835  	// was created.
   836  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,2,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   837  }
   838  
   839  func (x *KeyRing) Reset() {
   840  	*x = KeyRing{}
   841  	if protoimpl.UnsafeEnabled {
   842  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[0]
   843  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   844  		ms.StoreMessageInfo(mi)
   845  	}
   846  }
   847  
   848  func (x *KeyRing) String() string {
   849  	return protoimpl.X.MessageStringOf(x)
   850  }
   851  
   852  func (*KeyRing) ProtoMessage() {}
   853  
   854  func (x *KeyRing) ProtoReflect() protoreflect.Message {
   855  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[0]
   856  	if protoimpl.UnsafeEnabled && x != nil {
   857  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   858  		if ms.LoadMessageInfo() == nil {
   859  			ms.StoreMessageInfo(mi)
   860  		}
   861  		return ms
   862  	}
   863  	return mi.MessageOf(x)
   864  }
   865  
   866  // Deprecated: Use KeyRing.ProtoReflect.Descriptor instead.
   867  func (*KeyRing) Descriptor() ([]byte, []int) {
   868  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{0}
   869  }
   870  
   871  func (x *KeyRing) GetName() string {
   872  	if x != nil {
   873  		return x.Name
   874  	}
   875  	return ""
   876  }
   877  
   878  func (x *KeyRing) GetCreateTime() *timestamppb.Timestamp {
   879  	if x != nil {
   880  		return x.CreateTime
   881  	}
   882  	return nil
   883  }
   884  
   885  // A [CryptoKey][google.cloud.kms.v1.CryptoKey] represents a logical key that
   886  // can be used for cryptographic operations.
   887  //
   888  // A [CryptoKey][google.cloud.kms.v1.CryptoKey] is made up of zero or more
   889  // [versions][google.cloud.kms.v1.CryptoKeyVersion], which represent the actual
   890  // key material used in cryptographic operations.
   891  type CryptoKey struct {
   892  	state         protoimpl.MessageState
   893  	sizeCache     protoimpl.SizeCache
   894  	unknownFields protoimpl.UnknownFields
   895  
   896  	// Output only. The resource name for this
   897  	// [CryptoKey][google.cloud.kms.v1.CryptoKey] in the format
   898  	// `projects/*/locations/*/keyRings/*/cryptoKeys/*`.
   899  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
   900  	// Output only. A copy of the "primary"
   901  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that will be used
   902  	// by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt] when this
   903  	// [CryptoKey][google.cloud.kms.v1.CryptoKey] is given in
   904  	// [EncryptRequest.name][google.cloud.kms.v1.EncryptRequest.name].
   905  	//
   906  	// The [CryptoKey][google.cloud.kms.v1.CryptoKey]'s primary version can be
   907  	// updated via
   908  	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion].
   909  	//
   910  	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
   911  	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]
   912  	// may have a primary. For other keys, this field will be omitted.
   913  	Primary *CryptoKeyVersion `protobuf:"bytes,2,opt,name=primary,proto3" json:"primary,omitempty"`
   914  	// Immutable. The immutable purpose of this
   915  	// [CryptoKey][google.cloud.kms.v1.CryptoKey].
   916  	Purpose CryptoKey_CryptoKeyPurpose `protobuf:"varint,3,opt,name=purpose,proto3,enum=google.cloud.kms.v1.CryptoKey_CryptoKeyPurpose" json:"purpose,omitempty"`
   917  	// Output only. The time at which this
   918  	// [CryptoKey][google.cloud.kms.v1.CryptoKey] was created.
   919  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
   920  	// At [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time],
   921  	// the Key Management Service will automatically:
   922  	//
   923  	// 1. Create a new version of this [CryptoKey][google.cloud.kms.v1.CryptoKey].
   924  	// 2. Mark the new version as primary.
   925  	//
   926  	// Key rotations performed manually via
   927  	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
   928  	// and
   929  	// [UpdateCryptoKeyPrimaryVersion][google.cloud.kms.v1.KeyManagementService.UpdateCryptoKeyPrimaryVersion]
   930  	// do not affect
   931  	// [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time].
   932  	//
   933  	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
   934  	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]
   935  	// support automatic rotation. For other keys, this field must be omitted.
   936  	NextRotationTime *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=next_rotation_time,json=nextRotationTime,proto3" json:"next_rotation_time,omitempty"`
   937  	// Controls the rate of automatic rotation.
   938  	//
   939  	// Types that are assignable to RotationSchedule:
   940  	//
   941  	//	*CryptoKey_RotationPeriod
   942  	RotationSchedule isCryptoKey_RotationSchedule `protobuf_oneof:"rotation_schedule"`
   943  	// A template describing settings for new
   944  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] instances. The
   945  	// properties of new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]
   946  	// instances created by either
   947  	// [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
   948  	// or auto-rotation are controlled by this template.
   949  	VersionTemplate *CryptoKeyVersionTemplate `protobuf:"bytes,11,opt,name=version_template,json=versionTemplate,proto3" json:"version_template,omitempty"`
   950  	// Labels with user-defined metadata. For more information, see
   951  	// [Labeling Keys](https://cloud.google.com/kms/docs/labeling-keys).
   952  	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"`
   953  	// Immutable. Whether this key may contain imported versions only.
   954  	ImportOnly bool `protobuf:"varint,13,opt,name=import_only,json=importOnly,proto3" json:"import_only,omitempty"`
   955  	// Immutable. The period of time that versions of this key spend in the
   956  	// [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]
   957  	// state before transitioning to
   958  	// [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED].
   959  	// If not specified at creation time, the default duration is 24 hours.
   960  	DestroyScheduledDuration *durationpb.Duration `protobuf:"bytes,14,opt,name=destroy_scheduled_duration,json=destroyScheduledDuration,proto3" json:"destroy_scheduled_duration,omitempty"`
   961  	// Immutable. The resource name of the backend environment where the key
   962  	// material for all [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion]
   963  	// associated with this [CryptoKey][google.cloud.kms.v1.CryptoKey] reside and
   964  	// where all related cryptographic operations are performed. Only applicable
   965  	// if [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] have a
   966  	// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of
   967  	// [EXTERNAL_VPC][CryptoKeyVersion.ProtectionLevel.EXTERNAL_VPC], with the
   968  	// resource name in the format `projects/*/locations/*/ekmConnections/*`.
   969  	// Note, this list is non-exhaustive and may apply to additional
   970  	// [ProtectionLevels][google.cloud.kms.v1.ProtectionLevel] in the future.
   971  	CryptoKeyBackend string `protobuf:"bytes,15,opt,name=crypto_key_backend,json=cryptoKeyBackend,proto3" json:"crypto_key_backend,omitempty"`
   972  }
   973  
   974  func (x *CryptoKey) Reset() {
   975  	*x = CryptoKey{}
   976  	if protoimpl.UnsafeEnabled {
   977  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[1]
   978  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   979  		ms.StoreMessageInfo(mi)
   980  	}
   981  }
   982  
   983  func (x *CryptoKey) String() string {
   984  	return protoimpl.X.MessageStringOf(x)
   985  }
   986  
   987  func (*CryptoKey) ProtoMessage() {}
   988  
   989  func (x *CryptoKey) ProtoReflect() protoreflect.Message {
   990  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[1]
   991  	if protoimpl.UnsafeEnabled && x != nil {
   992  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   993  		if ms.LoadMessageInfo() == nil {
   994  			ms.StoreMessageInfo(mi)
   995  		}
   996  		return ms
   997  	}
   998  	return mi.MessageOf(x)
   999  }
  1000  
  1001  // Deprecated: Use CryptoKey.ProtoReflect.Descriptor instead.
  1002  func (*CryptoKey) Descriptor() ([]byte, []int) {
  1003  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{1}
  1004  }
  1005  
  1006  func (x *CryptoKey) GetName() string {
  1007  	if x != nil {
  1008  		return x.Name
  1009  	}
  1010  	return ""
  1011  }
  1012  
  1013  func (x *CryptoKey) GetPrimary() *CryptoKeyVersion {
  1014  	if x != nil {
  1015  		return x.Primary
  1016  	}
  1017  	return nil
  1018  }
  1019  
  1020  func (x *CryptoKey) GetPurpose() CryptoKey_CryptoKeyPurpose {
  1021  	if x != nil {
  1022  		return x.Purpose
  1023  	}
  1024  	return CryptoKey_CRYPTO_KEY_PURPOSE_UNSPECIFIED
  1025  }
  1026  
  1027  func (x *CryptoKey) GetCreateTime() *timestamppb.Timestamp {
  1028  	if x != nil {
  1029  		return x.CreateTime
  1030  	}
  1031  	return nil
  1032  }
  1033  
  1034  func (x *CryptoKey) GetNextRotationTime() *timestamppb.Timestamp {
  1035  	if x != nil {
  1036  		return x.NextRotationTime
  1037  	}
  1038  	return nil
  1039  }
  1040  
  1041  func (m *CryptoKey) GetRotationSchedule() isCryptoKey_RotationSchedule {
  1042  	if m != nil {
  1043  		return m.RotationSchedule
  1044  	}
  1045  	return nil
  1046  }
  1047  
  1048  func (x *CryptoKey) GetRotationPeriod() *durationpb.Duration {
  1049  	if x, ok := x.GetRotationSchedule().(*CryptoKey_RotationPeriod); ok {
  1050  		return x.RotationPeriod
  1051  	}
  1052  	return nil
  1053  }
  1054  
  1055  func (x *CryptoKey) GetVersionTemplate() *CryptoKeyVersionTemplate {
  1056  	if x != nil {
  1057  		return x.VersionTemplate
  1058  	}
  1059  	return nil
  1060  }
  1061  
  1062  func (x *CryptoKey) GetLabels() map[string]string {
  1063  	if x != nil {
  1064  		return x.Labels
  1065  	}
  1066  	return nil
  1067  }
  1068  
  1069  func (x *CryptoKey) GetImportOnly() bool {
  1070  	if x != nil {
  1071  		return x.ImportOnly
  1072  	}
  1073  	return false
  1074  }
  1075  
  1076  func (x *CryptoKey) GetDestroyScheduledDuration() *durationpb.Duration {
  1077  	if x != nil {
  1078  		return x.DestroyScheduledDuration
  1079  	}
  1080  	return nil
  1081  }
  1082  
  1083  func (x *CryptoKey) GetCryptoKeyBackend() string {
  1084  	if x != nil {
  1085  		return x.CryptoKeyBackend
  1086  	}
  1087  	return ""
  1088  }
  1089  
  1090  type isCryptoKey_RotationSchedule interface {
  1091  	isCryptoKey_RotationSchedule()
  1092  }
  1093  
  1094  type CryptoKey_RotationPeriod struct {
  1095  	// [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time]
  1096  	// will be advanced by this period when the service automatically rotates a
  1097  	// key. Must be at least 24 hours and at most 876,000 hours.
  1098  	//
  1099  	// If [rotation_period][google.cloud.kms.v1.CryptoKey.rotation_period] is
  1100  	// set,
  1101  	// [next_rotation_time][google.cloud.kms.v1.CryptoKey.next_rotation_time]
  1102  	// must also be set.
  1103  	//
  1104  	// Keys with [purpose][google.cloud.kms.v1.CryptoKey.purpose]
  1105  	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT]
  1106  	// support automatic rotation. For other keys, this field must be omitted.
  1107  	RotationPeriod *durationpb.Duration `protobuf:"bytes,8,opt,name=rotation_period,json=rotationPeriod,proto3,oneof"`
  1108  }
  1109  
  1110  func (*CryptoKey_RotationPeriod) isCryptoKey_RotationSchedule() {}
  1111  
  1112  // A [CryptoKeyVersionTemplate][google.cloud.kms.v1.CryptoKeyVersionTemplate]
  1113  // specifies the properties to use when creating a new
  1114  // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion], either manually
  1115  // with
  1116  // [CreateCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.CreateCryptoKeyVersion]
  1117  // or automatically as a result of auto-rotation.
  1118  type CryptoKeyVersionTemplate struct {
  1119  	state         protoimpl.MessageState
  1120  	sizeCache     protoimpl.SizeCache
  1121  	unknownFields protoimpl.UnknownFields
  1122  
  1123  	// [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] to use when creating
  1124  	// a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this
  1125  	// template. Immutable. Defaults to
  1126  	// [SOFTWARE][google.cloud.kms.v1.ProtectionLevel.SOFTWARE].
  1127  	ProtectionLevel ProtectionLevel `protobuf:"varint,1,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
  1128  	// Required.
  1129  	// [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
  1130  	// to use when creating a
  1131  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] based on this
  1132  	// template.
  1133  	//
  1134  	// For backwards compatibility, GOOGLE_SYMMETRIC_ENCRYPTION is implied if both
  1135  	// this field is omitted and
  1136  	// [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] is
  1137  	// [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
  1138  	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,3,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
  1139  }
  1140  
  1141  func (x *CryptoKeyVersionTemplate) Reset() {
  1142  	*x = CryptoKeyVersionTemplate{}
  1143  	if protoimpl.UnsafeEnabled {
  1144  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[2]
  1145  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1146  		ms.StoreMessageInfo(mi)
  1147  	}
  1148  }
  1149  
  1150  func (x *CryptoKeyVersionTemplate) String() string {
  1151  	return protoimpl.X.MessageStringOf(x)
  1152  }
  1153  
  1154  func (*CryptoKeyVersionTemplate) ProtoMessage() {}
  1155  
  1156  func (x *CryptoKeyVersionTemplate) ProtoReflect() protoreflect.Message {
  1157  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[2]
  1158  	if protoimpl.UnsafeEnabled && x != nil {
  1159  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1160  		if ms.LoadMessageInfo() == nil {
  1161  			ms.StoreMessageInfo(mi)
  1162  		}
  1163  		return ms
  1164  	}
  1165  	return mi.MessageOf(x)
  1166  }
  1167  
  1168  // Deprecated: Use CryptoKeyVersionTemplate.ProtoReflect.Descriptor instead.
  1169  func (*CryptoKeyVersionTemplate) Descriptor() ([]byte, []int) {
  1170  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{2}
  1171  }
  1172  
  1173  func (x *CryptoKeyVersionTemplate) GetProtectionLevel() ProtectionLevel {
  1174  	if x != nil {
  1175  		return x.ProtectionLevel
  1176  	}
  1177  	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
  1178  }
  1179  
  1180  func (x *CryptoKeyVersionTemplate) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
  1181  	if x != nil {
  1182  		return x.Algorithm
  1183  	}
  1184  	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
  1185  }
  1186  
  1187  // Contains an HSM-generated attestation about a key operation. For more
  1188  // information, see [Verifying attestations]
  1189  // (https://cloud.google.com/kms/docs/attest-key).
  1190  type KeyOperationAttestation struct {
  1191  	state         protoimpl.MessageState
  1192  	sizeCache     protoimpl.SizeCache
  1193  	unknownFields protoimpl.UnknownFields
  1194  
  1195  	// Output only. The format of the attestation data.
  1196  	Format KeyOperationAttestation_AttestationFormat `protobuf:"varint,4,opt,name=format,proto3,enum=google.cloud.kms.v1.KeyOperationAttestation_AttestationFormat" json:"format,omitempty"`
  1197  	// Output only. The attestation data provided by the HSM when the key
  1198  	// operation was performed.
  1199  	Content []byte `protobuf:"bytes,5,opt,name=content,proto3" json:"content,omitempty"`
  1200  	// Output only. The certificate chains needed to validate the attestation
  1201  	CertChains *KeyOperationAttestation_CertificateChains `protobuf:"bytes,6,opt,name=cert_chains,json=certChains,proto3" json:"cert_chains,omitempty"`
  1202  }
  1203  
  1204  func (x *KeyOperationAttestation) Reset() {
  1205  	*x = KeyOperationAttestation{}
  1206  	if protoimpl.UnsafeEnabled {
  1207  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[3]
  1208  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1209  		ms.StoreMessageInfo(mi)
  1210  	}
  1211  }
  1212  
  1213  func (x *KeyOperationAttestation) String() string {
  1214  	return protoimpl.X.MessageStringOf(x)
  1215  }
  1216  
  1217  func (*KeyOperationAttestation) ProtoMessage() {}
  1218  
  1219  func (x *KeyOperationAttestation) ProtoReflect() protoreflect.Message {
  1220  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[3]
  1221  	if protoimpl.UnsafeEnabled && x != nil {
  1222  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1223  		if ms.LoadMessageInfo() == nil {
  1224  			ms.StoreMessageInfo(mi)
  1225  		}
  1226  		return ms
  1227  	}
  1228  	return mi.MessageOf(x)
  1229  }
  1230  
  1231  // Deprecated: Use KeyOperationAttestation.ProtoReflect.Descriptor instead.
  1232  func (*KeyOperationAttestation) Descriptor() ([]byte, []int) {
  1233  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3}
  1234  }
  1235  
  1236  func (x *KeyOperationAttestation) GetFormat() KeyOperationAttestation_AttestationFormat {
  1237  	if x != nil {
  1238  		return x.Format
  1239  	}
  1240  	return KeyOperationAttestation_ATTESTATION_FORMAT_UNSPECIFIED
  1241  }
  1242  
  1243  func (x *KeyOperationAttestation) GetContent() []byte {
  1244  	if x != nil {
  1245  		return x.Content
  1246  	}
  1247  	return nil
  1248  }
  1249  
  1250  func (x *KeyOperationAttestation) GetCertChains() *KeyOperationAttestation_CertificateChains {
  1251  	if x != nil {
  1252  		return x.CertChains
  1253  	}
  1254  	return nil
  1255  }
  1256  
  1257  // A [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents an
  1258  // individual cryptographic key, and the associated key material.
  1259  //
  1260  // An
  1261  // [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED]
  1262  // version can be used for cryptographic operations.
  1263  //
  1264  // For security reasons, the raw cryptographic key material represented by a
  1265  // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] can never be viewed
  1266  // or exported. It can only be used to encrypt, decrypt, or sign data when an
  1267  // authorized user or application invokes Cloud KMS.
  1268  type CryptoKeyVersion struct {
  1269  	state         protoimpl.MessageState
  1270  	sizeCache     protoimpl.SizeCache
  1271  	unknownFields protoimpl.UnknownFields
  1272  
  1273  	// Output only. The resource name for this
  1274  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the format
  1275  	// `projects/*/locations/*/keyRings/*/cryptoKeys/*/cryptoKeyVersions/*`.
  1276  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1277  	// The current state of the
  1278  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
  1279  	State CryptoKeyVersion_CryptoKeyVersionState `protobuf:"varint,3,opt,name=state,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionState" json:"state,omitempty"`
  1280  	// Output only. The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel]
  1281  	// describing how crypto operations are performed with this
  1282  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
  1283  	ProtectionLevel ProtectionLevel `protobuf:"varint,7,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
  1284  	// Output only. The
  1285  	// [CryptoKeyVersionAlgorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
  1286  	// that this [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]
  1287  	// supports.
  1288  	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,10,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
  1289  	// Output only. Statement that was generated and signed by the HSM at key
  1290  	// creation time. Use this statement to verify attributes of the key as stored
  1291  	// on the HSM, independently of Google. Only provided for key versions with
  1292  	// [protection_level][google.cloud.kms.v1.CryptoKeyVersion.protection_level]
  1293  	// [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
  1294  	Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
  1295  	// Output only. The time at which this
  1296  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] was created.
  1297  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
  1298  	// Output only. The time this
  1299  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was
  1300  	// generated.
  1301  	GenerateTime *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
  1302  	// Output only. The time this
  1303  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material is
  1304  	// scheduled for destruction. Only present if
  1305  	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
  1306  	// [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED].
  1307  	DestroyTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=destroy_time,json=destroyTime,proto3" json:"destroy_time,omitempty"`
  1308  	// Output only. The time this CryptoKeyVersion's key material was
  1309  	// destroyed. Only present if
  1310  	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
  1311  	// [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED].
  1312  	DestroyEventTime *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=destroy_event_time,json=destroyEventTime,proto3" json:"destroy_event_time,omitempty"`
  1313  	// Output only. The name of the [ImportJob][google.cloud.kms.v1.ImportJob]
  1314  	// used in the most recent import of this
  1315  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Only present if
  1316  	// the underlying key material was imported.
  1317  	ImportJob string `protobuf:"bytes,14,opt,name=import_job,json=importJob,proto3" json:"import_job,omitempty"`
  1318  	// Output only. The time at which this
  1319  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s key material was
  1320  	// most recently imported.
  1321  	ImportTime *timestamppb.Timestamp `protobuf:"bytes,15,opt,name=import_time,json=importTime,proto3" json:"import_time,omitempty"`
  1322  	// Output only. The root cause of the most recent import failure. Only present
  1323  	// if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
  1324  	// [IMPORT_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.IMPORT_FAILED].
  1325  	ImportFailureReason string `protobuf:"bytes,16,opt,name=import_failure_reason,json=importFailureReason,proto3" json:"import_failure_reason,omitempty"`
  1326  	// Output only. The root cause of the most recent generation failure. Only
  1327  	// present if [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
  1328  	// [GENERATION_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.GENERATION_FAILED].
  1329  	GenerationFailureReason string `protobuf:"bytes,19,opt,name=generation_failure_reason,json=generationFailureReason,proto3" json:"generation_failure_reason,omitempty"`
  1330  	// Output only. The root cause of the most recent external destruction
  1331  	// failure. Only present if
  1332  	// [state][google.cloud.kms.v1.CryptoKeyVersion.state] is
  1333  	// [EXTERNAL_DESTRUCTION_FAILED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.EXTERNAL_DESTRUCTION_FAILED].
  1334  	ExternalDestructionFailureReason string `protobuf:"bytes,20,opt,name=external_destruction_failure_reason,json=externalDestructionFailureReason,proto3" json:"external_destruction_failure_reason,omitempty"`
  1335  	// ExternalProtectionLevelOptions stores a group of additional fields for
  1336  	// configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that
  1337  	// are specific to the
  1338  	// [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL] protection level
  1339  	// and [EXTERNAL_VPC][google.cloud.kms.v1.ProtectionLevel.EXTERNAL_VPC]
  1340  	// protection levels.
  1341  	ExternalProtectionLevelOptions *ExternalProtectionLevelOptions `protobuf:"bytes,17,opt,name=external_protection_level_options,json=externalProtectionLevelOptions,proto3" json:"external_protection_level_options,omitempty"`
  1342  	// Output only. Whether or not this key version is eligible for reimport, by
  1343  	// being specified as a target in
  1344  	// [ImportCryptoKeyVersionRequest.crypto_key_version][google.cloud.kms.v1.ImportCryptoKeyVersionRequest.crypto_key_version].
  1345  	ReimportEligible bool `protobuf:"varint,18,opt,name=reimport_eligible,json=reimportEligible,proto3" json:"reimport_eligible,omitempty"`
  1346  }
  1347  
  1348  func (x *CryptoKeyVersion) Reset() {
  1349  	*x = CryptoKeyVersion{}
  1350  	if protoimpl.UnsafeEnabled {
  1351  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[4]
  1352  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1353  		ms.StoreMessageInfo(mi)
  1354  	}
  1355  }
  1356  
  1357  func (x *CryptoKeyVersion) String() string {
  1358  	return protoimpl.X.MessageStringOf(x)
  1359  }
  1360  
  1361  func (*CryptoKeyVersion) ProtoMessage() {}
  1362  
  1363  func (x *CryptoKeyVersion) ProtoReflect() protoreflect.Message {
  1364  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[4]
  1365  	if protoimpl.UnsafeEnabled && x != nil {
  1366  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1367  		if ms.LoadMessageInfo() == nil {
  1368  			ms.StoreMessageInfo(mi)
  1369  		}
  1370  		return ms
  1371  	}
  1372  	return mi.MessageOf(x)
  1373  }
  1374  
  1375  // Deprecated: Use CryptoKeyVersion.ProtoReflect.Descriptor instead.
  1376  func (*CryptoKeyVersion) Descriptor() ([]byte, []int) {
  1377  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{4}
  1378  }
  1379  
  1380  func (x *CryptoKeyVersion) GetName() string {
  1381  	if x != nil {
  1382  		return x.Name
  1383  	}
  1384  	return ""
  1385  }
  1386  
  1387  func (x *CryptoKeyVersion) GetState() CryptoKeyVersion_CryptoKeyVersionState {
  1388  	if x != nil {
  1389  		return x.State
  1390  	}
  1391  	return CryptoKeyVersion_CRYPTO_KEY_VERSION_STATE_UNSPECIFIED
  1392  }
  1393  
  1394  func (x *CryptoKeyVersion) GetProtectionLevel() ProtectionLevel {
  1395  	if x != nil {
  1396  		return x.ProtectionLevel
  1397  	}
  1398  	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
  1399  }
  1400  
  1401  func (x *CryptoKeyVersion) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
  1402  	if x != nil {
  1403  		return x.Algorithm
  1404  	}
  1405  	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
  1406  }
  1407  
  1408  func (x *CryptoKeyVersion) GetAttestation() *KeyOperationAttestation {
  1409  	if x != nil {
  1410  		return x.Attestation
  1411  	}
  1412  	return nil
  1413  }
  1414  
  1415  func (x *CryptoKeyVersion) GetCreateTime() *timestamppb.Timestamp {
  1416  	if x != nil {
  1417  		return x.CreateTime
  1418  	}
  1419  	return nil
  1420  }
  1421  
  1422  func (x *CryptoKeyVersion) GetGenerateTime() *timestamppb.Timestamp {
  1423  	if x != nil {
  1424  		return x.GenerateTime
  1425  	}
  1426  	return nil
  1427  }
  1428  
  1429  func (x *CryptoKeyVersion) GetDestroyTime() *timestamppb.Timestamp {
  1430  	if x != nil {
  1431  		return x.DestroyTime
  1432  	}
  1433  	return nil
  1434  }
  1435  
  1436  func (x *CryptoKeyVersion) GetDestroyEventTime() *timestamppb.Timestamp {
  1437  	if x != nil {
  1438  		return x.DestroyEventTime
  1439  	}
  1440  	return nil
  1441  }
  1442  
  1443  func (x *CryptoKeyVersion) GetImportJob() string {
  1444  	if x != nil {
  1445  		return x.ImportJob
  1446  	}
  1447  	return ""
  1448  }
  1449  
  1450  func (x *CryptoKeyVersion) GetImportTime() *timestamppb.Timestamp {
  1451  	if x != nil {
  1452  		return x.ImportTime
  1453  	}
  1454  	return nil
  1455  }
  1456  
  1457  func (x *CryptoKeyVersion) GetImportFailureReason() string {
  1458  	if x != nil {
  1459  		return x.ImportFailureReason
  1460  	}
  1461  	return ""
  1462  }
  1463  
  1464  func (x *CryptoKeyVersion) GetGenerationFailureReason() string {
  1465  	if x != nil {
  1466  		return x.GenerationFailureReason
  1467  	}
  1468  	return ""
  1469  }
  1470  
  1471  func (x *CryptoKeyVersion) GetExternalDestructionFailureReason() string {
  1472  	if x != nil {
  1473  		return x.ExternalDestructionFailureReason
  1474  	}
  1475  	return ""
  1476  }
  1477  
  1478  func (x *CryptoKeyVersion) GetExternalProtectionLevelOptions() *ExternalProtectionLevelOptions {
  1479  	if x != nil {
  1480  		return x.ExternalProtectionLevelOptions
  1481  	}
  1482  	return nil
  1483  }
  1484  
  1485  func (x *CryptoKeyVersion) GetReimportEligible() bool {
  1486  	if x != nil {
  1487  		return x.ReimportEligible
  1488  	}
  1489  	return false
  1490  }
  1491  
  1492  // The public keys for a given
  1493  // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. Obtained via
  1494  // [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
  1495  type PublicKey struct {
  1496  	state         protoimpl.MessageState
  1497  	sizeCache     protoimpl.SizeCache
  1498  	unknownFields protoimpl.UnknownFields
  1499  
  1500  	// The public key, encoded in PEM format. For more information, see the
  1501  	// [RFC 7468](https://tools.ietf.org/html/rfc7468) sections for
  1502  	// [General Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  1503  	// [Textual Encoding of Subject Public Key Info]
  1504  	// (https://tools.ietf.org/html/rfc7468#section-13).
  1505  	Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
  1506  	// The
  1507  	// [Algorithm][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm]
  1508  	// associated with this key.
  1509  	Algorithm CryptoKeyVersion_CryptoKeyVersionAlgorithm `protobuf:"varint,2,opt,name=algorithm,proto3,enum=google.cloud.kms.v1.CryptoKeyVersion_CryptoKeyVersionAlgorithm" json:"algorithm,omitempty"`
  1510  	// Integrity verification field. A CRC32C checksum of the returned
  1511  	// [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem]. An integrity check of
  1512  	// [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] can be performed by
  1513  	// computing the CRC32C checksum of
  1514  	// [PublicKey.pem][google.cloud.kms.v1.PublicKey.pem] and comparing your
  1515  	// results to this field. Discard the response in case of non-matching
  1516  	// checksum values, and perform a limited number of retries. A persistent
  1517  	// mismatch may indicate an issue in your computation of the CRC32C checksum.
  1518  	// Note: This field is defined as int64 for reasons of compatibility across
  1519  	// different languages. However, it is a non-negative integer, which will
  1520  	// never exceed 2^32-1, and can be safely downconverted to uint32 in languages
  1521  	// that support this type.
  1522  	//
  1523  	// NOTE: This field is in Beta.
  1524  	PemCrc32C *wrapperspb.Int64Value `protobuf:"bytes,3,opt,name=pem_crc32c,json=pemCrc32c,proto3" json:"pem_crc32c,omitempty"`
  1525  	// The [name][google.cloud.kms.v1.CryptoKeyVersion.name] of the
  1526  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key.
  1527  	// Provided here for verification.
  1528  	//
  1529  	// NOTE: This field is in Beta.
  1530  	Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"`
  1531  	// The [ProtectionLevel][google.cloud.kms.v1.ProtectionLevel] of the
  1532  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] public key.
  1533  	ProtectionLevel ProtectionLevel `protobuf:"varint,5,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
  1534  }
  1535  
  1536  func (x *PublicKey) Reset() {
  1537  	*x = PublicKey{}
  1538  	if protoimpl.UnsafeEnabled {
  1539  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[5]
  1540  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1541  		ms.StoreMessageInfo(mi)
  1542  	}
  1543  }
  1544  
  1545  func (x *PublicKey) String() string {
  1546  	return protoimpl.X.MessageStringOf(x)
  1547  }
  1548  
  1549  func (*PublicKey) ProtoMessage() {}
  1550  
  1551  func (x *PublicKey) ProtoReflect() protoreflect.Message {
  1552  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[5]
  1553  	if protoimpl.UnsafeEnabled && x != nil {
  1554  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1555  		if ms.LoadMessageInfo() == nil {
  1556  			ms.StoreMessageInfo(mi)
  1557  		}
  1558  		return ms
  1559  	}
  1560  	return mi.MessageOf(x)
  1561  }
  1562  
  1563  // Deprecated: Use PublicKey.ProtoReflect.Descriptor instead.
  1564  func (*PublicKey) Descriptor() ([]byte, []int) {
  1565  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{5}
  1566  }
  1567  
  1568  func (x *PublicKey) GetPem() string {
  1569  	if x != nil {
  1570  		return x.Pem
  1571  	}
  1572  	return ""
  1573  }
  1574  
  1575  func (x *PublicKey) GetAlgorithm() CryptoKeyVersion_CryptoKeyVersionAlgorithm {
  1576  	if x != nil {
  1577  		return x.Algorithm
  1578  	}
  1579  	return CryptoKeyVersion_CRYPTO_KEY_VERSION_ALGORITHM_UNSPECIFIED
  1580  }
  1581  
  1582  func (x *PublicKey) GetPemCrc32C() *wrapperspb.Int64Value {
  1583  	if x != nil {
  1584  		return x.PemCrc32C
  1585  	}
  1586  	return nil
  1587  }
  1588  
  1589  func (x *PublicKey) GetName() string {
  1590  	if x != nil {
  1591  		return x.Name
  1592  	}
  1593  	return ""
  1594  }
  1595  
  1596  func (x *PublicKey) GetProtectionLevel() ProtectionLevel {
  1597  	if x != nil {
  1598  		return x.ProtectionLevel
  1599  	}
  1600  	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
  1601  }
  1602  
  1603  // An [ImportJob][google.cloud.kms.v1.ImportJob] can be used to create
  1604  // [CryptoKeys][google.cloud.kms.v1.CryptoKey] and
  1605  // [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] using pre-existing
  1606  // key material, generated outside of Cloud KMS.
  1607  //
  1608  // When an [ImportJob][google.cloud.kms.v1.ImportJob] is created, Cloud KMS will
  1609  // generate a "wrapping key", which is a public/private key pair. You use the
  1610  // wrapping key to encrypt (also known as wrap) the pre-existing key material to
  1611  // protect it during the import process. The nature of the wrapping key depends
  1612  // on the choice of
  1613  // [import_method][google.cloud.kms.v1.ImportJob.import_method]. When the
  1614  // wrapping key generation is complete, the
  1615  // [state][google.cloud.kms.v1.ImportJob.state] will be set to
  1616  // [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE] and the
  1617  // [public_key][google.cloud.kms.v1.ImportJob.public_key] can be fetched. The
  1618  // fetched public key can then be used to wrap your pre-existing key material.
  1619  //
  1620  // Once the key material is wrapped, it can be imported into a new
  1621  // [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in an existing
  1622  // [CryptoKey][google.cloud.kms.v1.CryptoKey] by calling
  1623  // [ImportCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.ImportCryptoKeyVersion].
  1624  // Multiple [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion] can be
  1625  // imported with a single [ImportJob][google.cloud.kms.v1.ImportJob]. Cloud KMS
  1626  // uses the private key portion of the wrapping key to unwrap the key material.
  1627  // Only Cloud KMS has access to the private key.
  1628  //
  1629  // An [ImportJob][google.cloud.kms.v1.ImportJob] expires 3 days after it is
  1630  // created. Once expired, Cloud KMS will no longer be able to import or unwrap
  1631  // any key material that was wrapped with the
  1632  // [ImportJob][google.cloud.kms.v1.ImportJob]'s public key.
  1633  //
  1634  // For more information, see
  1635  // [Importing a key](https://cloud.google.com/kms/docs/importing-a-key).
  1636  type ImportJob struct {
  1637  	state         protoimpl.MessageState
  1638  	sizeCache     protoimpl.SizeCache
  1639  	unknownFields protoimpl.UnknownFields
  1640  
  1641  	// Output only. The resource name for this
  1642  	// [ImportJob][google.cloud.kms.v1.ImportJob] in the format
  1643  	// `projects/*/locations/*/keyRings/*/importJobs/*`.
  1644  	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
  1645  	// Required. Immutable. The wrapping method to be used for incoming key
  1646  	// material.
  1647  	ImportMethod ImportJob_ImportMethod `protobuf:"varint,2,opt,name=import_method,json=importMethod,proto3,enum=google.cloud.kms.v1.ImportJob_ImportMethod" json:"import_method,omitempty"`
  1648  	// Required. Immutable. The protection level of the
  1649  	// [ImportJob][google.cloud.kms.v1.ImportJob]. This must match the
  1650  	// [protection_level][google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level]
  1651  	// of the [version_template][google.cloud.kms.v1.CryptoKey.version_template]
  1652  	// on the [CryptoKey][google.cloud.kms.v1.CryptoKey] you attempt to import
  1653  	// into.
  1654  	ProtectionLevel ProtectionLevel `protobuf:"varint,9,opt,name=protection_level,json=protectionLevel,proto3,enum=google.cloud.kms.v1.ProtectionLevel" json:"protection_level,omitempty"`
  1655  	// Output only. The time at which this
  1656  	// [ImportJob][google.cloud.kms.v1.ImportJob] was created.
  1657  	CreateTime *timestamppb.Timestamp `protobuf:"bytes,3,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
  1658  	// Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]'s key
  1659  	// material was generated.
  1660  	GenerateTime *timestamppb.Timestamp `protobuf:"bytes,4,opt,name=generate_time,json=generateTime,proto3" json:"generate_time,omitempty"`
  1661  	// Output only. The time at which this
  1662  	// [ImportJob][google.cloud.kms.v1.ImportJob] is scheduled for expiration and
  1663  	// can no longer be used to import key material.
  1664  	ExpireTime *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=expire_time,json=expireTime,proto3" json:"expire_time,omitempty"`
  1665  	// Output only. The time this [ImportJob][google.cloud.kms.v1.ImportJob]
  1666  	// expired. Only present if [state][google.cloud.kms.v1.ImportJob.state] is
  1667  	// [EXPIRED][google.cloud.kms.v1.ImportJob.ImportJobState.EXPIRED].
  1668  	ExpireEventTime *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=expire_event_time,json=expireEventTime,proto3" json:"expire_event_time,omitempty"`
  1669  	// Output only. The current state of the
  1670  	// [ImportJob][google.cloud.kms.v1.ImportJob], indicating if it can be used.
  1671  	State ImportJob_ImportJobState `protobuf:"varint,6,opt,name=state,proto3,enum=google.cloud.kms.v1.ImportJob_ImportJobState" json:"state,omitempty"`
  1672  	// Output only. The public key with which to wrap key material prior to
  1673  	// import. Only returned if [state][google.cloud.kms.v1.ImportJob.state] is
  1674  	// [ACTIVE][google.cloud.kms.v1.ImportJob.ImportJobState.ACTIVE].
  1675  	PublicKey *ImportJob_WrappingPublicKey `protobuf:"bytes,7,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
  1676  	// Output only. Statement that was generated and signed by the key creator
  1677  	// (for example, an HSM) at key creation time. Use this statement to verify
  1678  	// attributes of the key as stored on the HSM, independently of Google.
  1679  	// Only present if the chosen
  1680  	// [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod] is one with a
  1681  	// protection level of [HSM][google.cloud.kms.v1.ProtectionLevel.HSM].
  1682  	Attestation *KeyOperationAttestation `protobuf:"bytes,8,opt,name=attestation,proto3" json:"attestation,omitempty"`
  1683  }
  1684  
  1685  func (x *ImportJob) Reset() {
  1686  	*x = ImportJob{}
  1687  	if protoimpl.UnsafeEnabled {
  1688  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[6]
  1689  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1690  		ms.StoreMessageInfo(mi)
  1691  	}
  1692  }
  1693  
  1694  func (x *ImportJob) String() string {
  1695  	return protoimpl.X.MessageStringOf(x)
  1696  }
  1697  
  1698  func (*ImportJob) ProtoMessage() {}
  1699  
  1700  func (x *ImportJob) ProtoReflect() protoreflect.Message {
  1701  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[6]
  1702  	if protoimpl.UnsafeEnabled && x != nil {
  1703  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1704  		if ms.LoadMessageInfo() == nil {
  1705  			ms.StoreMessageInfo(mi)
  1706  		}
  1707  		return ms
  1708  	}
  1709  	return mi.MessageOf(x)
  1710  }
  1711  
  1712  // Deprecated: Use ImportJob.ProtoReflect.Descriptor instead.
  1713  func (*ImportJob) Descriptor() ([]byte, []int) {
  1714  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6}
  1715  }
  1716  
  1717  func (x *ImportJob) GetName() string {
  1718  	if x != nil {
  1719  		return x.Name
  1720  	}
  1721  	return ""
  1722  }
  1723  
  1724  func (x *ImportJob) GetImportMethod() ImportJob_ImportMethod {
  1725  	if x != nil {
  1726  		return x.ImportMethod
  1727  	}
  1728  	return ImportJob_IMPORT_METHOD_UNSPECIFIED
  1729  }
  1730  
  1731  func (x *ImportJob) GetProtectionLevel() ProtectionLevel {
  1732  	if x != nil {
  1733  		return x.ProtectionLevel
  1734  	}
  1735  	return ProtectionLevel_PROTECTION_LEVEL_UNSPECIFIED
  1736  }
  1737  
  1738  func (x *ImportJob) GetCreateTime() *timestamppb.Timestamp {
  1739  	if x != nil {
  1740  		return x.CreateTime
  1741  	}
  1742  	return nil
  1743  }
  1744  
  1745  func (x *ImportJob) GetGenerateTime() *timestamppb.Timestamp {
  1746  	if x != nil {
  1747  		return x.GenerateTime
  1748  	}
  1749  	return nil
  1750  }
  1751  
  1752  func (x *ImportJob) GetExpireTime() *timestamppb.Timestamp {
  1753  	if x != nil {
  1754  		return x.ExpireTime
  1755  	}
  1756  	return nil
  1757  }
  1758  
  1759  func (x *ImportJob) GetExpireEventTime() *timestamppb.Timestamp {
  1760  	if x != nil {
  1761  		return x.ExpireEventTime
  1762  	}
  1763  	return nil
  1764  }
  1765  
  1766  func (x *ImportJob) GetState() ImportJob_ImportJobState {
  1767  	if x != nil {
  1768  		return x.State
  1769  	}
  1770  	return ImportJob_IMPORT_JOB_STATE_UNSPECIFIED
  1771  }
  1772  
  1773  func (x *ImportJob) GetPublicKey() *ImportJob_WrappingPublicKey {
  1774  	if x != nil {
  1775  		return x.PublicKey
  1776  	}
  1777  	return nil
  1778  }
  1779  
  1780  func (x *ImportJob) GetAttestation() *KeyOperationAttestation {
  1781  	if x != nil {
  1782  		return x.Attestation
  1783  	}
  1784  	return nil
  1785  }
  1786  
  1787  // ExternalProtectionLevelOptions stores a group of additional fields for
  1788  // configuring a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] that
  1789  // are specific to the [EXTERNAL][google.cloud.kms.v1.ProtectionLevel.EXTERNAL]
  1790  // protection level and
  1791  // [EXTERNAL_VPC][google.cloud.kms.v1.ProtectionLevel.EXTERNAL_VPC] protection
  1792  // levels.
  1793  type ExternalProtectionLevelOptions struct {
  1794  	state         protoimpl.MessageState
  1795  	sizeCache     protoimpl.SizeCache
  1796  	unknownFields protoimpl.UnknownFields
  1797  
  1798  	// The URI for an external resource that this
  1799  	// [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] represents.
  1800  	ExternalKeyUri string `protobuf:"bytes,1,opt,name=external_key_uri,json=externalKeyUri,proto3" json:"external_key_uri,omitempty"`
  1801  	// The path to the external key material on the EKM when using
  1802  	// [EkmConnection][google.cloud.kms.v1.EkmConnection] e.g., "v0/my/key". Set
  1803  	// this field instead of external_key_uri when using an
  1804  	// [EkmConnection][google.cloud.kms.v1.EkmConnection].
  1805  	EkmConnectionKeyPath string `protobuf:"bytes,2,opt,name=ekm_connection_key_path,json=ekmConnectionKeyPath,proto3" json:"ekm_connection_key_path,omitempty"`
  1806  }
  1807  
  1808  func (x *ExternalProtectionLevelOptions) Reset() {
  1809  	*x = ExternalProtectionLevelOptions{}
  1810  	if protoimpl.UnsafeEnabled {
  1811  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[7]
  1812  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1813  		ms.StoreMessageInfo(mi)
  1814  	}
  1815  }
  1816  
  1817  func (x *ExternalProtectionLevelOptions) String() string {
  1818  	return protoimpl.X.MessageStringOf(x)
  1819  }
  1820  
  1821  func (*ExternalProtectionLevelOptions) ProtoMessage() {}
  1822  
  1823  func (x *ExternalProtectionLevelOptions) ProtoReflect() protoreflect.Message {
  1824  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[7]
  1825  	if protoimpl.UnsafeEnabled && x != nil {
  1826  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1827  		if ms.LoadMessageInfo() == nil {
  1828  			ms.StoreMessageInfo(mi)
  1829  		}
  1830  		return ms
  1831  	}
  1832  	return mi.MessageOf(x)
  1833  }
  1834  
  1835  // Deprecated: Use ExternalProtectionLevelOptions.ProtoReflect.Descriptor instead.
  1836  func (*ExternalProtectionLevelOptions) Descriptor() ([]byte, []int) {
  1837  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{7}
  1838  }
  1839  
  1840  func (x *ExternalProtectionLevelOptions) GetExternalKeyUri() string {
  1841  	if x != nil {
  1842  		return x.ExternalKeyUri
  1843  	}
  1844  	return ""
  1845  }
  1846  
  1847  func (x *ExternalProtectionLevelOptions) GetEkmConnectionKeyPath() string {
  1848  	if x != nil {
  1849  		return x.EkmConnectionKeyPath
  1850  	}
  1851  	return ""
  1852  }
  1853  
  1854  // Certificate chains needed to verify the attestation.
  1855  // Certificates in chains are PEM-encoded and are ordered based on
  1856  // https://tools.ietf.org/html/rfc5246#section-7.4.2.
  1857  type KeyOperationAttestation_CertificateChains struct {
  1858  	state         protoimpl.MessageState
  1859  	sizeCache     protoimpl.SizeCache
  1860  	unknownFields protoimpl.UnknownFields
  1861  
  1862  	// Cavium certificate chain corresponding to the attestation.
  1863  	CaviumCerts []string `protobuf:"bytes,1,rep,name=cavium_certs,json=caviumCerts,proto3" json:"cavium_certs,omitempty"`
  1864  	// Google card certificate chain corresponding to the attestation.
  1865  	GoogleCardCerts []string `protobuf:"bytes,2,rep,name=google_card_certs,json=googleCardCerts,proto3" json:"google_card_certs,omitempty"`
  1866  	// Google partition certificate chain corresponding to the attestation.
  1867  	GooglePartitionCerts []string `protobuf:"bytes,3,rep,name=google_partition_certs,json=googlePartitionCerts,proto3" json:"google_partition_certs,omitempty"`
  1868  }
  1869  
  1870  func (x *KeyOperationAttestation_CertificateChains) Reset() {
  1871  	*x = KeyOperationAttestation_CertificateChains{}
  1872  	if protoimpl.UnsafeEnabled {
  1873  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[9]
  1874  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1875  		ms.StoreMessageInfo(mi)
  1876  	}
  1877  }
  1878  
  1879  func (x *KeyOperationAttestation_CertificateChains) String() string {
  1880  	return protoimpl.X.MessageStringOf(x)
  1881  }
  1882  
  1883  func (*KeyOperationAttestation_CertificateChains) ProtoMessage() {}
  1884  
  1885  func (x *KeyOperationAttestation_CertificateChains) ProtoReflect() protoreflect.Message {
  1886  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[9]
  1887  	if protoimpl.UnsafeEnabled && x != nil {
  1888  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1889  		if ms.LoadMessageInfo() == nil {
  1890  			ms.StoreMessageInfo(mi)
  1891  		}
  1892  		return ms
  1893  	}
  1894  	return mi.MessageOf(x)
  1895  }
  1896  
  1897  // Deprecated: Use KeyOperationAttestation_CertificateChains.ProtoReflect.Descriptor instead.
  1898  func (*KeyOperationAttestation_CertificateChains) Descriptor() ([]byte, []int) {
  1899  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{3, 0}
  1900  }
  1901  
  1902  func (x *KeyOperationAttestation_CertificateChains) GetCaviumCerts() []string {
  1903  	if x != nil {
  1904  		return x.CaviumCerts
  1905  	}
  1906  	return nil
  1907  }
  1908  
  1909  func (x *KeyOperationAttestation_CertificateChains) GetGoogleCardCerts() []string {
  1910  	if x != nil {
  1911  		return x.GoogleCardCerts
  1912  	}
  1913  	return nil
  1914  }
  1915  
  1916  func (x *KeyOperationAttestation_CertificateChains) GetGooglePartitionCerts() []string {
  1917  	if x != nil {
  1918  		return x.GooglePartitionCerts
  1919  	}
  1920  	return nil
  1921  }
  1922  
  1923  // The public key component of the wrapping key. For details of the type of
  1924  // key this public key corresponds to, see the
  1925  // [ImportMethod][google.cloud.kms.v1.ImportJob.ImportMethod].
  1926  type ImportJob_WrappingPublicKey struct {
  1927  	state         protoimpl.MessageState
  1928  	sizeCache     protoimpl.SizeCache
  1929  	unknownFields protoimpl.UnknownFields
  1930  
  1931  	// The public key, encoded in PEM format. For more information, see the [RFC
  1932  	// 7468](https://tools.ietf.org/html/rfc7468) sections for [General
  1933  	// Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  1934  	// [Textual Encoding of Subject Public Key Info]
  1935  	// (https://tools.ietf.org/html/rfc7468#section-13).
  1936  	Pem string `protobuf:"bytes,1,opt,name=pem,proto3" json:"pem,omitempty"`
  1937  }
  1938  
  1939  func (x *ImportJob_WrappingPublicKey) Reset() {
  1940  	*x = ImportJob_WrappingPublicKey{}
  1941  	if protoimpl.UnsafeEnabled {
  1942  		mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[10]
  1943  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1944  		ms.StoreMessageInfo(mi)
  1945  	}
  1946  }
  1947  
  1948  func (x *ImportJob_WrappingPublicKey) String() string {
  1949  	return protoimpl.X.MessageStringOf(x)
  1950  }
  1951  
  1952  func (*ImportJob_WrappingPublicKey) ProtoMessage() {}
  1953  
  1954  func (x *ImportJob_WrappingPublicKey) ProtoReflect() protoreflect.Message {
  1955  	mi := &file_google_cloud_kms_v1_resources_proto_msgTypes[10]
  1956  	if protoimpl.UnsafeEnabled && x != nil {
  1957  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  1958  		if ms.LoadMessageInfo() == nil {
  1959  			ms.StoreMessageInfo(mi)
  1960  		}
  1961  		return ms
  1962  	}
  1963  	return mi.MessageOf(x)
  1964  }
  1965  
  1966  // Deprecated: Use ImportJob_WrappingPublicKey.ProtoReflect.Descriptor instead.
  1967  func (*ImportJob_WrappingPublicKey) Descriptor() ([]byte, []int) {
  1968  	return file_google_cloud_kms_v1_resources_proto_rawDescGZIP(), []int{6, 0}
  1969  }
  1970  
  1971  func (x *ImportJob_WrappingPublicKey) GetPem() string {
  1972  	if x != nil {
  1973  		return x.Pem
  1974  	}
  1975  	return ""
  1976  }
  1977  
  1978  var File_google_cloud_kms_v1_resources_proto protoreflect.FileDescriptor
  1979  
  1980  var file_google_cloud_kms_v1_resources_proto_rawDesc = []byte{
  1981  	0x0a, 0x23, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x6b,
  1982  	0x6d, 0x73, 0x2f, 0x76, 0x31, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x2e,
  1983  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
  1984  	0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67,
  1985  	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68,
  1986  	0x61, 0x76, 0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f,
  1987  	0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
  1988  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  1989  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  1990  	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
  1991  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
  1992  	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
  1993  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72,
  1994  	0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc7, 0x01, 0x0a, 0x07, 0x4b, 0x65, 0x79, 0x52,
  1995  	0x69, 0x6e, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
  1996  	0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
  1997  	0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
  1998  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  1999  	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
  2000  	0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x61,
  2001  	0xea, 0x41, 0x5e, 0x0a, 0x1f, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f,
  2002  	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x4b, 0x65, 0x79,
  2003  	0x52, 0x69, 0x6e, 0x67, 0x12, 0x3b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b,
  2004  	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
  2005  	0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65,
  2006  	0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67,
  2007  	0x7d, 0x22, 0xd1, 0x08, 0x0a, 0x09, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12,
  2008  	0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
  2009  	0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d,
  2010  	0x61, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2011  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  2012  	0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
  2013  	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x4e,
  2014  	0x0a, 0x07, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32,
  2015  	0x2f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b,
  2016  	0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x2e,
  2017  	0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65,
  2018  	0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x07, 0x70, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x40,
  2019  	0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20,
  2020  	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  2021  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42,
  2022  	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
  2023  	0x12, 0x48, 0x0a, 0x12, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
  2024  	0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67,
  2025  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54,
  2026  	0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x6f,
  2027  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x72, 0x6f,
  2028  	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x70, 0x65, 0x72, 0x69, 0x6f, 0x64, 0x18, 0x08, 0x20,
  2029  	0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
  2030  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00,
  2031  	0x52, 0x0e, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x69, 0x6f, 0x64,
  2032  	0x12, 0x58, 0x0a, 0x10, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, 0x6d, 0x70,
  2033  	0x6c, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f,
  2034  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31,
  2035  	0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
  2036  	0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x0f, 0x76, 0x65, 0x72, 0x73, 0x69,
  2037  	0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x42, 0x0a, 0x06, 0x6c, 0x61,
  2038  	0x62, 0x65, 0x6c, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x67, 0x6f, 0x6f,
  2039  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31,
  2040  	0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c,
  2041  	0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x24,
  2042  	0x0a, 0x0b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x18, 0x0d, 0x20,
  2043  	0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
  2044  	0x4f, 0x6e, 0x6c, 0x79, 0x12, 0x5c, 0x0a, 0x1a, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x5f,
  2045  	0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69,
  2046  	0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2047  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74,
  2048  	0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x05, 0x52, 0x18, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f,
  2049  	0x79, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69,
  2050  	0x6f, 0x6e, 0x12, 0x37, 0x0a, 0x12, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79,
  2051  	0x5f, 0x62, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x42, 0x09,
  2052  	0xe0, 0x41, 0x05, 0xfa, 0x41, 0x03, 0x0a, 0x01, 0x2a, 0x52, 0x10, 0x63, 0x72, 0x79, 0x70, 0x74,
  2053  	0x6f, 0x4b, 0x65, 0x79, 0x42, 0x61, 0x63, 0x6b, 0x65, 0x6e, 0x64, 0x1a, 0x39, 0x0a, 0x0b, 0x4c,
  2054  	0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
  2055  	0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05,
  2056  	0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c,
  2057  	0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x9a, 0x01, 0x0a, 0x10, 0x43, 0x72, 0x79, 0x70, 0x74,
  2058  	0x6f, 0x4b, 0x65, 0x79, 0x50, 0x75, 0x72, 0x70, 0x6f, 0x73, 0x65, 0x12, 0x22, 0x0a, 0x1e, 0x43,
  2059  	0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x55, 0x52, 0x50, 0x4f, 0x53,
  2060  	0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12,
  2061  	0x13, 0x0a, 0x0f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59,
  2062  	0x50, 0x54, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52,
  2063  	0x49, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x53, 0x59,
  2064  	0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10,
  2065  	0x06, 0x12, 0x17, 0x0a, 0x13, 0x52, 0x41, 0x57, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54,
  2066  	0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41,
  2067  	0x43, 0x10, 0x09, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b,
  2068  	0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f,
  2069  	0x6d, 0x2f, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x70, 0x72, 0x6f,
  2070  	0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f,
  2071  	0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74,
  2072  	0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b,
  2073  	0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b,
  2074  	0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d,
  2075  	0x42, 0x13, 0x0a, 0x11, 0x72, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x63, 0x68,
  2076  	0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xcf, 0x01, 0x0a, 0x18, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f,
  2077  	0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
  2078  	0x74, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  2079  	0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67,
  2080  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e,
  2081  	0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76,
  2082  	0x65, 0x6c, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65,
  2083  	0x76, 0x65, 0x6c, 0x12, 0x62, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d,
  2084  	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2085  	0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x79,
  2086  	0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72,
  2087  	0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c,
  2088  	0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x61, 0x6c,
  2089  	0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x22, 0x83, 0x04, 0x0a, 0x17, 0x4b, 0x65, 0x79, 0x4f,
  2090  	0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74,
  2091  	0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x04, 0x20,
  2092  	0x01, 0x28, 0x0e, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f,
  2093  	0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65,
  2094  	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f,
  2095  	0x6e, 0x2e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x72,
  2096  	0x6d, 0x61, 0x74, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x06, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74,
  2097  	0x12, 0x1d, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28,
  2098  	0x0c, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12,
  2099  	0x64, 0x0a, 0x0b, 0x63, 0x65, 0x72, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x18, 0x06,
  2100  	0x20, 0x01, 0x28, 0x0b, 0x32, 0x3e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c,
  2101  	0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x4f, 0x70,
  2102  	0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69,
  2103  	0x6f, 0x6e, 0x2e, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68,
  2104  	0x61, 0x69, 0x6e, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x65, 0x72, 0x74, 0x43,
  2105  	0x68, 0x61, 0x69, 0x6e, 0x73, 0x1a, 0x98, 0x01, 0x0a, 0x11, 0x43, 0x65, 0x72, 0x74, 0x69, 0x66,
  2106  	0x69, 0x63, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x69, 0x6e, 0x73, 0x12, 0x21, 0x0a, 0x0c, 0x63,
  2107  	0x61, 0x76, 0x69, 0x75, 0x6d, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
  2108  	0x09, 0x52, 0x0b, 0x63, 0x61, 0x76, 0x69, 0x75, 0x6d, 0x43, 0x65, 0x72, 0x74, 0x73, 0x12, 0x2a,
  2109  	0x0a, 0x11, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x65,
  2110  	0x72, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2111  	0x65, 0x43, 0x61, 0x72, 0x64, 0x43, 0x65, 0x72, 0x74, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x67, 0x6f,
  2112  	0x6f, 0x67, 0x6c, 0x65, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63,
  2113  	0x65, 0x72, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x14, 0x67, 0x6f, 0x6f, 0x67,
  2114  	0x6c, 0x65, 0x50, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x65, 0x72, 0x74, 0x73,
  2115  	0x22, 0x6b, 0x0a, 0x11, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46,
  2116  	0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x54, 0x54, 0x45, 0x53, 0x54, 0x41,
  2117  	0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x4f, 0x52, 0x4d, 0x41, 0x54, 0x5f, 0x55, 0x4e, 0x53, 0x50,
  2118  	0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x56,
  2119  	0x49, 0x55, 0x4d, 0x5f, 0x56, 0x31, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45,
  2120  	0x44, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x41, 0x56, 0x49, 0x55, 0x4d, 0x5f, 0x56, 0x32,
  2121  	0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x52, 0x45, 0x53, 0x53, 0x45, 0x44, 0x10, 0x04, 0x22, 0x89, 0x15,
  2122  	0x0a, 0x10, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69,
  2123  	0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
  2124  	0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x51, 0x0a, 0x05, 0x73,
  2125  	0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x67, 0x6f, 0x6f,
  2126  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31,
  2127  	0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
  2128  	0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69,
  2129  	0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54,
  2130  	0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76,
  2131  	0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2132  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50,
  2133  	0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x03,
  2134  	0xe0, 0x41, 0x03, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
  2135  	0x65, 0x76, 0x65, 0x6c, 0x12, 0x62, 0x0a, 0x09, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68,
  2136  	0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2137  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72,
  2138  	0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43,
  2139  	0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x41,
  2140  	0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x09, 0x61,
  2141  	0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x53, 0x0a, 0x0b, 0x61, 0x74, 0x74, 0x65,
  2142  	0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
  2143  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73,
  2144  	0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  2145  	0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x03,
  2146  	0x52, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a,
  2147  	0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
  2148  	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
  2149  	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
  2150  	0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12,
  2151  	0x44, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65,
  2152  	0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
  2153  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61,
  2154  	0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74,
  2155  	0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x0c, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79,
  2156  	0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f,
  2157  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69,
  2158  	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0b, 0x64, 0x65,
  2159  	0x73, 0x74, 0x72, 0x6f, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4d, 0x0a, 0x12, 0x64, 0x65, 0x73,
  2160  	0x74, 0x72, 0x6f, 0x79, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
  2161  	0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
  2162  	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
  2163  	0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x64, 0x65, 0x73, 0x74, 0x72, 0x6f, 0x79, 0x45,
  2164  	0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0a, 0x69, 0x6d, 0x70, 0x6f,
  2165  	0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41,
  2166  	0x03, 0x52, 0x09, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x40, 0x0a, 0x0b,
  2167  	0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28,
  2168  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2169  	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
  2170  	0x41, 0x03, 0x52, 0x0a, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x37,
  2171  	0x0a, 0x15, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65,
  2172  	0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0,
  2173  	0x41, 0x03, 0x52, 0x13, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
  2174  	0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x3f, 0x0a, 0x19, 0x67, 0x65, 0x6e, 0x65, 0x72,
  2175  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65,
  2176  	0x61, 0x73, 0x6f, 0x6e, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
  2177  	0x17, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75,
  2178  	0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x23, 0x65, 0x78, 0x74, 0x65,
  2179  	0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  2180  	0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18,
  2181  	0x14, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x20, 0x65, 0x78, 0x74, 0x65,
  2182  	0x72, 0x6e, 0x61, 0x6c, 0x44, 0x65, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x46,
  2183  	0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x7e, 0x0a, 0x21,
  2184  	0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
  2185  	0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
  2186  	0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2187  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78,
  2188  	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  2189  	0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x1e, 0x65, 0x78,
  2190  	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  2191  	0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x30, 0x0a, 0x11,
  2192  	0x72, 0x65, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c,
  2193  	0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x08, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x10, 0x72, 0x65,
  2194  	0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x45, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x22, 0xe2,
  2195  	0x07, 0x0a, 0x19, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73,
  2196  	0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x2c, 0x0a, 0x28,
  2197  	0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49,
  2198  	0x4f, 0x4e, 0x5f, 0x41, 0x4c, 0x47, 0x4f, 0x52, 0x49, 0x54, 0x48, 0x4d, 0x5f, 0x55, 0x4e, 0x53,
  2199  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x47, 0x4f,
  2200  	0x4f, 0x47, 0x4c, 0x45, 0x5f, 0x53, 0x59, 0x4d, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x45,
  2201  	0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x41,
  2202  	0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x47, 0x43, 0x4d, 0x10, 0x29, 0x12, 0x0f, 0x0a, 0x0b,
  2203  	0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x47, 0x43, 0x4d, 0x10, 0x13, 0x12, 0x0f, 0x0a,
  2204  	0x0b, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x42, 0x43, 0x10, 0x2a, 0x12, 0x0f,
  2205  	0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, 0x42, 0x43, 0x10, 0x2b, 0x12,
  2206  	0x0f, 0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x31, 0x32, 0x38, 0x5f, 0x43, 0x54, 0x52, 0x10, 0x2c,
  2207  	0x12, 0x0f, 0x0a, 0x0b, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x5f, 0x43, 0x54, 0x52, 0x10,
  2208  	0x2d, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53,
  2209  	0x53, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12,
  2210  	0x1c, 0x0a, 0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f,
  2211  	0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x1c, 0x0a,
  2212  	0x18, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x34, 0x30,
  2213  	0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x52,
  2214  	0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x53, 0x53, 0x5f, 0x34, 0x30, 0x39, 0x36,
  2215  	0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x0f, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
  2216  	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x32, 0x30, 0x34, 0x38,
  2217  	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
  2218  	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x33, 0x30, 0x37, 0x32,
  2219  	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x06, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
  2220  	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36,
  2221  	0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x07, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41,
  2222  	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36,
  2223  	0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x10, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x53, 0x41,
  2224  	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x52, 0x41, 0x57, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f,
  2225  	0x32, 0x30, 0x34, 0x38, 0x10, 0x1c, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49,
  2226  	0x47, 0x4e, 0x5f, 0x52, 0x41, 0x57, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x33, 0x30, 0x37,
  2227  	0x32, 0x10, 0x1d, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x53, 0x41, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f,
  2228  	0x52, 0x41, 0x57, 0x5f, 0x50, 0x4b, 0x43, 0x53, 0x31, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x10, 0x1e,
  2229  	0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f,
  2230  	0x4f, 0x41, 0x45, 0x50, 0x5f, 0x32, 0x30, 0x34, 0x38, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36,
  2231  	0x10, 0x08, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52, 0x59, 0x50,
  2232  	0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32,
  2233  	0x35, 0x36, 0x10, 0x09, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45, 0x43, 0x52,
  2234  	0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48,
  2235  	0x41, 0x32, 0x35, 0x36, 0x10, 0x0a, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x44, 0x45,
  2236  	0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f,
  2237  	0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x11, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f,
  2238  	0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x32, 0x30, 0x34,
  2239  	0x38, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x25, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f,
  2240  	0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37,
  2241  	0x32, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x26, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f,
  2242  	0x44, 0x45, 0x43, 0x52, 0x59, 0x50, 0x54, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39,
  2243  	0x36, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x27, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 0x5f, 0x53,
  2244  	0x49, 0x47, 0x4e, 0x5f, 0x50, 0x32, 0x35, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10,
  2245  	0x0c, 0x12, 0x17, 0x0a, 0x13, 0x45, 0x43, 0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x50, 0x33, 0x38,
  2246  	0x34, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x0d, 0x12, 0x1c, 0x0a, 0x18, 0x45, 0x43,
  2247  	0x5f, 0x53, 0x49, 0x47, 0x4e, 0x5f, 0x53, 0x45, 0x43, 0x50, 0x32, 0x35, 0x36, 0x4b, 0x31, 0x5f,
  2248  	0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x1f, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x43, 0x5f, 0x53,
  2249  	0x49, 0x47, 0x4e, 0x5f, 0x45, 0x44, 0x32, 0x35, 0x35, 0x31, 0x39, 0x10, 0x28, 0x12, 0x0f, 0x0a,
  2250  	0x0b, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x20, 0x12, 0x0d,
  2251  	0x0a, 0x09, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x10, 0x21, 0x12, 0x0f, 0x0a,
  2252  	0x0b, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x33, 0x38, 0x34, 0x10, 0x22, 0x12, 0x0f,
  2253  	0x0a, 0x0b, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x35, 0x31, 0x32, 0x10, 0x23, 0x12,
  2254  	0x0f, 0x0a, 0x0b, 0x48, 0x4d, 0x41, 0x43, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x32, 0x34, 0x10, 0x24,
  2255  	0x12, 0x21, 0x0a, 0x1d, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x53, 0x59, 0x4d,
  2256  	0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x5f, 0x45, 0x4e, 0x43, 0x52, 0x59, 0x50, 0x54, 0x49, 0x4f,
  2257  	0x4e, 0x10, 0x12, 0x22, 0x9b, 0x02, 0x0a, 0x15, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65,
  2258  	0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x28, 0x0a,
  2259  	0x24, 0x43, 0x52, 0x59, 0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x53,
  2260  	0x49, 0x4f, 0x4e, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  2261  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4e, 0x44, 0x49,
  2262  	0x4e, 0x47, 0x5f, 0x47, 0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x05, 0x12,
  2263  	0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08,
  2264  	0x44, 0x49, 0x53, 0x41, 0x42, 0x4c, 0x45, 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45,
  2265  	0x53, 0x54, 0x52, 0x4f, 0x59, 0x45, 0x44, 0x10, 0x03, 0x12, 0x15, 0x0a, 0x11, 0x44, 0x45, 0x53,
  2266  	0x54, 0x52, 0x4f, 0x59, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x04,
  2267  	0x12, 0x12, 0x0a, 0x0e, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x49, 0x4d, 0x50, 0x4f,
  2268  	0x52, 0x54, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x46,
  2269  	0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x45, 0x4e, 0x45, 0x52,
  2270  	0x41, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x20,
  2271  	0x0a, 0x1c, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e,
  2272  	0x41, 0x4c, 0x5f, 0x44, 0x45, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09,
  2273  	0x12, 0x1f, 0x0a, 0x1b, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x44, 0x45, 0x53,
  2274  	0x54, 0x52, 0x55, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10,
  2275  	0x0a, 0x22, 0x49, 0x0a, 0x14, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65,
  2276  	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x56, 0x69, 0x65, 0x77, 0x12, 0x27, 0x0a, 0x23, 0x43, 0x52, 0x59,
  2277  	0x50, 0x54, 0x4f, 0x5f, 0x4b, 0x45, 0x59, 0x5f, 0x56, 0x45, 0x52, 0x53, 0x49, 0x4f, 0x4e, 0x5f,
  2278  	0x56, 0x49, 0x45, 0x57, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44,
  2279  	0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x46, 0x55, 0x4c, 0x4c, 0x10, 0x01, 0x3a, 0xaa, 0x01, 0xea,
  2280  	0x41, 0xa6, 0x01, 0x0a, 0x28, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f,
  2281  	0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x43, 0x72, 0x79,
  2282  	0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x7a, 0x70,
  2283  	0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74,
  2284  	0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63,
  2285  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f,
  2286  	0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74,
  2287  	0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65,
  2288  	0x79, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73,
  2289  	0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79,
  2290  	0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d, 0x22, 0xce, 0x03, 0x0a, 0x09, 0x50, 0x75,
  2291  	0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01,
  2292  	0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x70, 0x65, 0x6d, 0x12, 0x5d, 0x0a, 0x09, 0x61, 0x6c, 0x67,
  2293  	0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3f, 0x2e, 0x67,
  2294  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e,
  2295  	0x76, 0x31, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73,
  2296  	0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x56, 0x65, 0x72,
  2297  	0x73, 0x69, 0x6f, 0x6e, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x09, 0x61,
  2298  	0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x3a, 0x0a, 0x0a, 0x70, 0x65, 0x6d, 0x5f,
  2299  	0x63, 0x72, 0x63, 0x33, 0x32, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x67,
  2300  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x49,
  2301  	0x6e, 0x74, 0x36, 0x34, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x09, 0x70, 0x65, 0x6d, 0x43, 0x72,
  2302  	0x63, 0x33, 0x32, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01,
  2303  	0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x70, 0x72, 0x6f, 0x74,
  2304  	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x05, 0x20, 0x01,
  2305  	0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75,
  2306  	0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
  2307  	0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63,
  2308  	0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x3a, 0xae, 0x01, 0xea, 0x41, 0xaa, 0x01,
  2309  	0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2310  	0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63,
  2311  	0x4b, 0x65, 0x79, 0x12, 0x84, 0x01, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b,
  2312  	0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d, 0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f,
  2313  	0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65,
  2314  	0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b, 0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67,
  2315  	0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f, 0x4b, 0x65, 0x79, 0x73, 0x2f, 0x7b, 0x63, 0x72,
  2316  	0x79, 0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x7d, 0x2f, 0x63, 0x72, 0x79, 0x70, 0x74, 0x6f,
  2317  	0x4b, 0x65, 0x79, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x63, 0x72, 0x79,
  2318  	0x70, 0x74, 0x6f, 0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x7d,
  2319  	0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x22, 0xd4, 0x09, 0x0a, 0x09, 0x49,
  2320  	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
  2321  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x04, 0x6e, 0x61, 0x6d,
  2322  	0x65, 0x12, 0x58, 0x0a, 0x0d, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x68,
  2323  	0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
  2324  	0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x49,
  2325  	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d,
  2326  	0x65, 0x74, 0x68, 0x6f, 0x64, 0x42, 0x06, 0xe0, 0x41, 0x02, 0xe0, 0x41, 0x05, 0x52, 0x0c, 0x69,
  2327  	0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x57, 0x0a, 0x10, 0x70,
  2328  	0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18,
  2329  	0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63,
  2330  	0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x72, 0x6f, 0x74,
  2331  	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x42, 0x06, 0xe0, 0x41, 0x02,
  2332  	0xe0, 0x41, 0x05, 0x52, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c,
  2333  	0x65, 0x76, 0x65, 0x6c, 0x12, 0x40, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74,
  2334  	0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2335  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
  2336  	0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61,
  2337  	0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0d, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61,
  2338  	0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
  2339  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
  2340  	0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0c,
  2341  	0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0b,
  2342  	0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
  2343  	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
  2344  	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0,
  2345  	0x41, 0x03, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4b,
  2346  	0x0a, 0x11, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x74,
  2347  	0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2348  	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
  2349  	0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x0f, 0x65, 0x78, 0x70, 0x69,
  2350  	0x72, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x48, 0x0a, 0x05, 0x73,
  2351  	0x74, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x67, 0x6f, 0x6f,
  2352  	0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31,
  2353  	0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72,
  2354  	0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52, 0x05,
  2355  	0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x54, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f,
  2356  	0x6b, 0x65, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
  2357  	0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e,
  2358  	0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x2e, 0x57, 0x72, 0x61, 0x70, 0x70, 0x69,
  2359  	0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x42, 0x03, 0xe0, 0x41, 0x03,
  2360  	0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x53, 0x0a, 0x0b, 0x61,
  2361  	0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b,
  2362  	0x32, 0x2c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  2363  	0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x2e, 0x4b, 0x65, 0x79, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74,
  2364  	0x69, 0x6f, 0x6e, 0x41, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03,
  2365  	0xe0, 0x41, 0x03, 0x52, 0x0b, 0x61, 0x74, 0x74, 0x65, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
  2366  	0x1a, 0x25, 0x0a, 0x11, 0x57, 0x72, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x67, 0x50, 0x75, 0x62, 0x6c,
  2367  	0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x70, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01,
  2368  	0x28, 0x09, 0x52, 0x03, 0x70, 0x65, 0x6d, 0x22, 0xe5, 0x01, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f,
  2369  	0x72, 0x74, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1d, 0x0a, 0x19, 0x49, 0x4d, 0x50, 0x4f,
  2370  	0x52, 0x54, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43,
  2371  	0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f, 0x4f,
  2372  	0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x5f, 0x41, 0x45,
  2373  	0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x53, 0x41, 0x5f, 0x4f,
  2374  	0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x31, 0x5f, 0x41, 0x45,
  2375  	0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x02, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41, 0x5f, 0x4f,
  2376  	0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x5f,
  2377  	0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x03, 0x12, 0x20, 0x0a, 0x1c, 0x52, 0x53, 0x41,
  2378  	0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35,
  2379  	0x36, 0x5f, 0x41, 0x45, 0x53, 0x5f, 0x32, 0x35, 0x36, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x52,
  2380  	0x53, 0x41, 0x5f, 0x4f, 0x41, 0x45, 0x50, 0x5f, 0x33, 0x30, 0x37, 0x32, 0x5f, 0x53, 0x48, 0x41,
  2381  	0x32, 0x35, 0x36, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x52, 0x53, 0x41, 0x5f, 0x4f, 0x41, 0x45,
  2382  	0x50, 0x5f, 0x34, 0x30, 0x39, 0x36, 0x5f, 0x53, 0x48, 0x41, 0x32, 0x35, 0x36, 0x10, 0x06, 0x22,
  2383  	0x63, 0x0a, 0x0e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74,
  2384  	0x65, 0x12, 0x20, 0x0a, 0x1c, 0x49, 0x4d, 0x50, 0x4f, 0x52, 0x54, 0x5f, 0x4a, 0x4f, 0x42, 0x5f,
  2385  	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
  2386  	0x44, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x5f, 0x47,
  2387  	0x45, 0x4e, 0x45, 0x52, 0x41, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x41,
  2388  	0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x58, 0x50, 0x49, 0x52,
  2389  	0x45, 0x44, 0x10, 0x03, 0x3a, 0x7b, 0xea, 0x41, 0x78, 0x0a, 0x21, 0x63, 0x6c, 0x6f, 0x75, 0x64,
  2390  	0x6b, 0x6d, 0x73, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63,
  2391  	0x6f, 0x6d, 0x2f, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x53, 0x70, 0x72,
  2392  	0x6f, 0x6a, 0x65, 0x63, 0x74, 0x73, 0x2f, 0x7b, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x7d,
  2393  	0x2f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x7b, 0x6c, 0x6f, 0x63, 0x61,
  2394  	0x74, 0x69, 0x6f, 0x6e, 0x7d, 0x2f, 0x6b, 0x65, 0x79, 0x52, 0x69, 0x6e, 0x67, 0x73, 0x2f, 0x7b,
  2395  	0x6b, 0x65, 0x79, 0x5f, 0x72, 0x69, 0x6e, 0x67, 0x7d, 0x2f, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74,
  2396  	0x4a, 0x6f, 0x62, 0x73, 0x2f, 0x7b, 0x69, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6a, 0x6f, 0x62,
  2397  	0x7d, 0x22, 0x81, 0x01, 0x0a, 0x1e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x72,
  2398  	0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4f, 0x70, 0x74,
  2399  	0x69, 0x6f, 0x6e, 0x73, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c,
  2400  	0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x75, 0x72, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e,
  2401  	0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x4b, 0x65, 0x79, 0x55, 0x72, 0x69, 0x12, 0x35,
  2402  	0x0a, 0x17, 0x65, 0x6b, 0x6d, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e,
  2403  	0x5f, 0x6b, 0x65, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
  2404  	0x14, 0x65, 0x6b, 0x6d, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4b, 0x65,
  2405  	0x79, 0x50, 0x61, 0x74, 0x68, 0x2a, 0x6a, 0x0a, 0x0f, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74,
  2406  	0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x1c, 0x50, 0x52, 0x4f, 0x54,
  2407  	0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4c, 0x45, 0x56, 0x45, 0x4c, 0x5f, 0x55, 0x4e, 0x53,
  2408  	0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x4f,
  2409  	0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x48, 0x53, 0x4d, 0x10,
  2410  	0x02, 0x12, 0x0c, 0x0a, 0x08, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x10, 0x03, 0x12,
  2411  	0x10, 0x0a, 0x0c, 0x45, 0x58, 0x54, 0x45, 0x52, 0x4e, 0x41, 0x4c, 0x5f, 0x56, 0x50, 0x43, 0x10,
  2412  	0x04, 0x42, 0x88, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2413  	0x2e, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x6b, 0x6d, 0x73, 0x2e, 0x76, 0x31, 0x42, 0x11, 0x4b,
  2414  	0x6d, 0x73, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f,
  2415  	0x50, 0x01, 0x5a, 0x29, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
  2416  	0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x6f, 0x2f, 0x6b, 0x6d, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x76,
  2417  	0x31, 0x2f, 0x6b, 0x6d, 0x73, 0x70, 0x62, 0x3b, 0x6b, 0x6d, 0x73, 0x70, 0x62, 0xf8, 0x01, 0x01,
  2418  	0xaa, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x43, 0x6c, 0x6f, 0x75, 0x64, 0x2e,
  2419  	0x4b, 0x6d, 0x73, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x5c,
  2420  	0x43, 0x6c, 0x6f, 0x75, 0x64, 0x5c, 0x4b, 0x6d, 0x73, 0x5c, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72,
  2421  	0x6f, 0x74, 0x6f, 0x33,
  2422  }
  2423  
  2424  var (
  2425  	file_google_cloud_kms_v1_resources_proto_rawDescOnce sync.Once
  2426  	file_google_cloud_kms_v1_resources_proto_rawDescData = file_google_cloud_kms_v1_resources_proto_rawDesc
  2427  )
  2428  
  2429  func file_google_cloud_kms_v1_resources_proto_rawDescGZIP() []byte {
  2430  	file_google_cloud_kms_v1_resources_proto_rawDescOnce.Do(func() {
  2431  		file_google_cloud_kms_v1_resources_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_cloud_kms_v1_resources_proto_rawDescData)
  2432  	})
  2433  	return file_google_cloud_kms_v1_resources_proto_rawDescData
  2434  }
  2435  
  2436  var file_google_cloud_kms_v1_resources_proto_enumTypes = make([]protoimpl.EnumInfo, 8)
  2437  var file_google_cloud_kms_v1_resources_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
  2438  var file_google_cloud_kms_v1_resources_proto_goTypes = []interface{}{
  2439  	(ProtectionLevel)(0),                              // 0: google.cloud.kms.v1.ProtectionLevel
  2440  	(CryptoKey_CryptoKeyPurpose)(0),                   // 1: google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose
  2441  	(KeyOperationAttestation_AttestationFormat)(0),    // 2: google.cloud.kms.v1.KeyOperationAttestation.AttestationFormat
  2442  	(CryptoKeyVersion_CryptoKeyVersionAlgorithm)(0),   // 3: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
  2443  	(CryptoKeyVersion_CryptoKeyVersionState)(0),       // 4: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState
  2444  	(CryptoKeyVersion_CryptoKeyVersionView)(0),        // 5: google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionView
  2445  	(ImportJob_ImportMethod)(0),                       // 6: google.cloud.kms.v1.ImportJob.ImportMethod
  2446  	(ImportJob_ImportJobState)(0),                     // 7: google.cloud.kms.v1.ImportJob.ImportJobState
  2447  	(*KeyRing)(nil),                                   // 8: google.cloud.kms.v1.KeyRing
  2448  	(*CryptoKey)(nil),                                 // 9: google.cloud.kms.v1.CryptoKey
  2449  	(*CryptoKeyVersionTemplate)(nil),                  // 10: google.cloud.kms.v1.CryptoKeyVersionTemplate
  2450  	(*KeyOperationAttestation)(nil),                   // 11: google.cloud.kms.v1.KeyOperationAttestation
  2451  	(*CryptoKeyVersion)(nil),                          // 12: google.cloud.kms.v1.CryptoKeyVersion
  2452  	(*PublicKey)(nil),                                 // 13: google.cloud.kms.v1.PublicKey
  2453  	(*ImportJob)(nil),                                 // 14: google.cloud.kms.v1.ImportJob
  2454  	(*ExternalProtectionLevelOptions)(nil),            // 15: google.cloud.kms.v1.ExternalProtectionLevelOptions
  2455  	nil,                                               // 16: google.cloud.kms.v1.CryptoKey.LabelsEntry
  2456  	(*KeyOperationAttestation_CertificateChains)(nil), // 17: google.cloud.kms.v1.KeyOperationAttestation.CertificateChains
  2457  	(*ImportJob_WrappingPublicKey)(nil),               // 18: google.cloud.kms.v1.ImportJob.WrappingPublicKey
  2458  	(*timestamppb.Timestamp)(nil),                     // 19: google.protobuf.Timestamp
  2459  	(*durationpb.Duration)(nil),                       // 20: google.protobuf.Duration
  2460  	(*wrapperspb.Int64Value)(nil),                     // 21: google.protobuf.Int64Value
  2461  }
  2462  var file_google_cloud_kms_v1_resources_proto_depIdxs = []int32{
  2463  	19, // 0: google.cloud.kms.v1.KeyRing.create_time:type_name -> google.protobuf.Timestamp
  2464  	12, // 1: google.cloud.kms.v1.CryptoKey.primary:type_name -> google.cloud.kms.v1.CryptoKeyVersion
  2465  	1,  // 2: google.cloud.kms.v1.CryptoKey.purpose:type_name -> google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose
  2466  	19, // 3: google.cloud.kms.v1.CryptoKey.create_time:type_name -> google.protobuf.Timestamp
  2467  	19, // 4: google.cloud.kms.v1.CryptoKey.next_rotation_time:type_name -> google.protobuf.Timestamp
  2468  	20, // 5: google.cloud.kms.v1.CryptoKey.rotation_period:type_name -> google.protobuf.Duration
  2469  	10, // 6: google.cloud.kms.v1.CryptoKey.version_template:type_name -> google.cloud.kms.v1.CryptoKeyVersionTemplate
  2470  	16, // 7: google.cloud.kms.v1.CryptoKey.labels:type_name -> google.cloud.kms.v1.CryptoKey.LabelsEntry
  2471  	20, // 8: google.cloud.kms.v1.CryptoKey.destroy_scheduled_duration:type_name -> google.protobuf.Duration
  2472  	0,  // 9: google.cloud.kms.v1.CryptoKeyVersionTemplate.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
  2473  	3,  // 10: google.cloud.kms.v1.CryptoKeyVersionTemplate.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
  2474  	2,  // 11: google.cloud.kms.v1.KeyOperationAttestation.format:type_name -> google.cloud.kms.v1.KeyOperationAttestation.AttestationFormat
  2475  	17, // 12: google.cloud.kms.v1.KeyOperationAttestation.cert_chains:type_name -> google.cloud.kms.v1.KeyOperationAttestation.CertificateChains
  2476  	4,  // 13: google.cloud.kms.v1.CryptoKeyVersion.state:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState
  2477  	0,  // 14: google.cloud.kms.v1.CryptoKeyVersion.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
  2478  	3,  // 15: google.cloud.kms.v1.CryptoKeyVersion.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
  2479  	11, // 16: google.cloud.kms.v1.CryptoKeyVersion.attestation:type_name -> google.cloud.kms.v1.KeyOperationAttestation
  2480  	19, // 17: google.cloud.kms.v1.CryptoKeyVersion.create_time:type_name -> google.protobuf.Timestamp
  2481  	19, // 18: google.cloud.kms.v1.CryptoKeyVersion.generate_time:type_name -> google.protobuf.Timestamp
  2482  	19, // 19: google.cloud.kms.v1.CryptoKeyVersion.destroy_time:type_name -> google.protobuf.Timestamp
  2483  	19, // 20: google.cloud.kms.v1.CryptoKeyVersion.destroy_event_time:type_name -> google.protobuf.Timestamp
  2484  	19, // 21: google.cloud.kms.v1.CryptoKeyVersion.import_time:type_name -> google.protobuf.Timestamp
  2485  	15, // 22: google.cloud.kms.v1.CryptoKeyVersion.external_protection_level_options:type_name -> google.cloud.kms.v1.ExternalProtectionLevelOptions
  2486  	3,  // 23: google.cloud.kms.v1.PublicKey.algorithm:type_name -> google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionAlgorithm
  2487  	21, // 24: google.cloud.kms.v1.PublicKey.pem_crc32c:type_name -> google.protobuf.Int64Value
  2488  	0,  // 25: google.cloud.kms.v1.PublicKey.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
  2489  	6,  // 26: google.cloud.kms.v1.ImportJob.import_method:type_name -> google.cloud.kms.v1.ImportJob.ImportMethod
  2490  	0,  // 27: google.cloud.kms.v1.ImportJob.protection_level:type_name -> google.cloud.kms.v1.ProtectionLevel
  2491  	19, // 28: google.cloud.kms.v1.ImportJob.create_time:type_name -> google.protobuf.Timestamp
  2492  	19, // 29: google.cloud.kms.v1.ImportJob.generate_time:type_name -> google.protobuf.Timestamp
  2493  	19, // 30: google.cloud.kms.v1.ImportJob.expire_time:type_name -> google.protobuf.Timestamp
  2494  	19, // 31: google.cloud.kms.v1.ImportJob.expire_event_time:type_name -> google.protobuf.Timestamp
  2495  	7,  // 32: google.cloud.kms.v1.ImportJob.state:type_name -> google.cloud.kms.v1.ImportJob.ImportJobState
  2496  	18, // 33: google.cloud.kms.v1.ImportJob.public_key:type_name -> google.cloud.kms.v1.ImportJob.WrappingPublicKey
  2497  	11, // 34: google.cloud.kms.v1.ImportJob.attestation:type_name -> google.cloud.kms.v1.KeyOperationAttestation
  2498  	35, // [35:35] is the sub-list for method output_type
  2499  	35, // [35:35] is the sub-list for method input_type
  2500  	35, // [35:35] is the sub-list for extension type_name
  2501  	35, // [35:35] is the sub-list for extension extendee
  2502  	0,  // [0:35] is the sub-list for field type_name
  2503  }
  2504  
  2505  func init() { file_google_cloud_kms_v1_resources_proto_init() }
  2506  func file_google_cloud_kms_v1_resources_proto_init() {
  2507  	if File_google_cloud_kms_v1_resources_proto != nil {
  2508  		return
  2509  	}
  2510  	if !protoimpl.UnsafeEnabled {
  2511  		file_google_cloud_kms_v1_resources_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
  2512  			switch v := v.(*KeyRing); i {
  2513  			case 0:
  2514  				return &v.state
  2515  			case 1:
  2516  				return &v.sizeCache
  2517  			case 2:
  2518  				return &v.unknownFields
  2519  			default:
  2520  				return nil
  2521  			}
  2522  		}
  2523  		file_google_cloud_kms_v1_resources_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
  2524  			switch v := v.(*CryptoKey); i {
  2525  			case 0:
  2526  				return &v.state
  2527  			case 1:
  2528  				return &v.sizeCache
  2529  			case 2:
  2530  				return &v.unknownFields
  2531  			default:
  2532  				return nil
  2533  			}
  2534  		}
  2535  		file_google_cloud_kms_v1_resources_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
  2536  			switch v := v.(*CryptoKeyVersionTemplate); i {
  2537  			case 0:
  2538  				return &v.state
  2539  			case 1:
  2540  				return &v.sizeCache
  2541  			case 2:
  2542  				return &v.unknownFields
  2543  			default:
  2544  				return nil
  2545  			}
  2546  		}
  2547  		file_google_cloud_kms_v1_resources_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
  2548  			switch v := v.(*KeyOperationAttestation); i {
  2549  			case 0:
  2550  				return &v.state
  2551  			case 1:
  2552  				return &v.sizeCache
  2553  			case 2:
  2554  				return &v.unknownFields
  2555  			default:
  2556  				return nil
  2557  			}
  2558  		}
  2559  		file_google_cloud_kms_v1_resources_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
  2560  			switch v := v.(*CryptoKeyVersion); i {
  2561  			case 0:
  2562  				return &v.state
  2563  			case 1:
  2564  				return &v.sizeCache
  2565  			case 2:
  2566  				return &v.unknownFields
  2567  			default:
  2568  				return nil
  2569  			}
  2570  		}
  2571  		file_google_cloud_kms_v1_resources_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
  2572  			switch v := v.(*PublicKey); i {
  2573  			case 0:
  2574  				return &v.state
  2575  			case 1:
  2576  				return &v.sizeCache
  2577  			case 2:
  2578  				return &v.unknownFields
  2579  			default:
  2580  				return nil
  2581  			}
  2582  		}
  2583  		file_google_cloud_kms_v1_resources_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
  2584  			switch v := v.(*ImportJob); i {
  2585  			case 0:
  2586  				return &v.state
  2587  			case 1:
  2588  				return &v.sizeCache
  2589  			case 2:
  2590  				return &v.unknownFields
  2591  			default:
  2592  				return nil
  2593  			}
  2594  		}
  2595  		file_google_cloud_kms_v1_resources_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
  2596  			switch v := v.(*ExternalProtectionLevelOptions); i {
  2597  			case 0:
  2598  				return &v.state
  2599  			case 1:
  2600  				return &v.sizeCache
  2601  			case 2:
  2602  				return &v.unknownFields
  2603  			default:
  2604  				return nil
  2605  			}
  2606  		}
  2607  		file_google_cloud_kms_v1_resources_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
  2608  			switch v := v.(*KeyOperationAttestation_CertificateChains); i {
  2609  			case 0:
  2610  				return &v.state
  2611  			case 1:
  2612  				return &v.sizeCache
  2613  			case 2:
  2614  				return &v.unknownFields
  2615  			default:
  2616  				return nil
  2617  			}
  2618  		}
  2619  		file_google_cloud_kms_v1_resources_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
  2620  			switch v := v.(*ImportJob_WrappingPublicKey); i {
  2621  			case 0:
  2622  				return &v.state
  2623  			case 1:
  2624  				return &v.sizeCache
  2625  			case 2:
  2626  				return &v.unknownFields
  2627  			default:
  2628  				return nil
  2629  			}
  2630  		}
  2631  	}
  2632  	file_google_cloud_kms_v1_resources_proto_msgTypes[1].OneofWrappers = []interface{}{
  2633  		(*CryptoKey_RotationPeriod)(nil),
  2634  	}
  2635  	type x struct{}
  2636  	out := protoimpl.TypeBuilder{
  2637  		File: protoimpl.DescBuilder{
  2638  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
  2639  			RawDescriptor: file_google_cloud_kms_v1_resources_proto_rawDesc,
  2640  			NumEnums:      8,
  2641  			NumMessages:   11,
  2642  			NumExtensions: 0,
  2643  			NumServices:   0,
  2644  		},
  2645  		GoTypes:           file_google_cloud_kms_v1_resources_proto_goTypes,
  2646  		DependencyIndexes: file_google_cloud_kms_v1_resources_proto_depIdxs,
  2647  		EnumInfos:         file_google_cloud_kms_v1_resources_proto_enumTypes,
  2648  		MessageInfos:      file_google_cloud_kms_v1_resources_proto_msgTypes,
  2649  	}.Build()
  2650  	File_google_cloud_kms_v1_resources_proto = out.File
  2651  	file_google_cloud_kms_v1_resources_proto_rawDesc = nil
  2652  	file_google_cloud_kms_v1_resources_proto_goTypes = nil
  2653  	file_google_cloud_kms_v1_resources_proto_depIdxs = nil
  2654  }
  2655  

View as plain text