Class: Google::Cloud::Kms::V1::ImportJob

Inherits:
Object
  • Object
show all
Extended by:
Protobuf::MessageExts::ClassMethods
Includes:
Protobuf::MessageExts
Defined in:
proto_docs/google/cloud/kms/v1/resources.rb

Overview

An ImportJob can be used to create CryptoKeys and CryptoKeyVersions using pre-existing key material, generated outside of Cloud KMS.

When an ImportJob is created, Cloud KMS will generate a "wrapping key", which is a public/private key pair. You use the wrapping key to encrypt (also known as wrap) the pre-existing key material to protect it during the import process. The nature of the wrapping key depends on the choice of import_method. When the wrapping key generation is complete, the state will be set to ACTIVE and the public_key can be fetched. The fetched public key can then be used to wrap your pre-existing key material.

Once the key material is wrapped, it can be imported into a new CryptoKeyVersion in an existing CryptoKey by calling ImportCryptoKeyVersion. Multiple CryptoKeyVersions can be imported with a single ImportJob. Cloud KMS uses the private key portion of the wrapping key to unwrap the key material. Only Cloud KMS has access to the private key.

An ImportJob expires 3 days after it is created. Once expired, Cloud KMS will no longer be able to import or unwrap any key material that was wrapped with the ImportJob's public key.

For more information, see Importing a key.

Defined Under Namespace

Modules: ImportJobState, ImportMethod Classes: WrappingPublicKey

Instance Attribute Summary collapse

Instance Attribute Details

#attestation::Google::Cloud::Kms::V1::KeyOperationAttestation (readonly)

Returns Output only. Statement that was generated and signed by the key creator (for example, an HSM) at key creation time. Use this statement to verify attributes of the key as stored on the HSM, independently of Google. Only present if the chosen ImportMethod is one with a protection level of HSM.

Returns:

  • (::Google::Cloud::Kms::V1::KeyOperationAttestation)

    Output only. Statement that was generated and signed by the key creator (for example, an HSM) at key creation time. Use this statement to verify attributes of the key as stored on the HSM, independently of Google. Only present if the chosen ImportMethod is one with a protection level of HSM.



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#create_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The time at which this ImportJob was created.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#crypto_key_backend::String

Returns Immutable. The resource name of the backend environment where the key material for the wrapping key resides and where all related cryptographic operations are performed. Currently, this field is only populated for keys stored in HSM_SINGLE_TENANT. Note, this list is non-exhaustive and may apply to additional ProtectionLevels in the future. Supported resources:

  • "projects/*/locations/*/singleTenantHsmInstances/*".

Returns:

  • (::String)

    Immutable. The resource name of the backend environment where the key material for the wrapping key resides and where all related cryptographic operations are performed. Currently, this field is only populated for keys stored in HSM_SINGLE_TENANT. Note, this list is non-exhaustive and may apply to additional ProtectionLevels in the future. Supported resources:

    • "projects/*/locations/*/singleTenantHsmInstances/*"


922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#expire_event_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The time this ImportJob expired. Only present if state is EXPIRED.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#expire_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The time at which this ImportJob is scheduled for expiration and can no longer be used to import key material.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#generate_time::Google::Protobuf::Timestamp (readonly)

Returns Output only. The time this ImportJob's key material was generated.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#import_method::Google::Cloud::Kms::V1::ImportJob::ImportMethod

Returns Required. Immutable. The wrapping method to be used for incoming key material.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#name::String (readonly)

Returns Output only. The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.

Returns:

  • (::String)

    Output only. The resource name for this ImportJob in the format projects/*/locations/*/keyRings/*/importJobs/*.



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#protection_level::Google::Cloud::Kms::V1::ProtectionLevel

Returns Required. Immutable. The protection level of the ImportJob. This must match the protection_level of the version_template on the CryptoKey you attempt to import into.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#public_key::Google::Cloud::Kms::V1::ImportJob::WrappingPublicKey (readonly)

Returns Output only. The public key with which to wrap key material prior to import. Only returned if state is ACTIVE.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#public_key_format::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat (readonly)

Returns Output only. Specifies the WrappingPublicKey format provided by the customer in the KeyManagementService.GetImportJob request.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end

#state::Google::Cloud::Kms::V1::ImportJob::ImportJobState (readonly)

Returns Output only. The current state of the ImportJob, indicating if it can be used.

Returns:



922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
# File 'proto_docs/google/cloud/kms/v1/resources.rb', line 922

class ImportJob
  include ::Google::Protobuf::MessageExts
  extend ::Google::Protobuf::MessageExts::ClassMethods

  # The public key component of the wrapping key. For details of the type of
  # key this public key corresponds to, see the
  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod}.
  # @!attribute [rw] pem
  #   @return [::String]
  #     The public key, encoded in PEM format. For more information, see the [RFC
  #     7468](https://tools.ietf.org/html/rfc7468) sections for [General
  #     Considerations](https://tools.ietf.org/html/rfc7468#section-2) and
  #     [Textual Encoding of Subject Public Key Info]
  #     (https://tools.ietf.org/html/rfc7468#section-13).
  #     This field gets populated by default for RSA-based import methods, if no
  #     public_key_format is specified in the request.
  #     If you want to retrieve the wrapping key of an
  #     {::Google::Cloud::Kms::V1::ImportJob ImportJob} in some other format, use
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     and set the public_key_format to the desired public key format.
  # @!attribute [r] data
  #   @return [::String]
  #     Output only. Contains the public key, formatted according to the
  #     {::Google::Cloud::Kms::V1::PublicKey::PublicKeyFormat PublicKey.PublicKeyFormat}
  #     specified in the
  #     {::Google::Cloud::Kms::V1::KeyManagementService::Client#get_import_job KeyManagementService.GetImportJob}
  #     request.
  class WrappingPublicKey
    include ::Google::Protobuf::MessageExts
    extend ::Google::Protobuf::MessageExts::ClassMethods
  end

  # {::Google::Cloud::Kms::V1::ImportJob::ImportMethod ImportMethod} describes the
  # key wrapping method chosen for this
  # {::Google::Cloud::Kms::V1::ImportJob ImportJob}.
  module ImportMethod
    # Not specified.
    IMPORT_METHOD_UNSPECIFIED = 0

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA1_AES_256 = 1

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA1_AES_256 = 2

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 3072 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_3072_SHA256_AES_256 = 3

    # This ImportMethod represents the CKM_RSA_AES_KEY_WRAP key wrapping
    # scheme defined in the PKCS #11 standard. In summary, this involves
    # wrapping the raw key with an ephemeral AES key, and wrapping the
    # ephemeral AES key with a 4096 bit RSA key. For more details, see
    # [RSA AES key wrap
    # mechanism](http://docs.oasis-open.org/pkcs11/pkcs11-curr/v2.40/cos01/pkcs11-curr-v2.40-cos01.html#_Toc408226908).
    RSA_OAEP_4096_SHA256_AES_256 = 4

    # This ImportMethod represents RSAES-OAEP with a 3072 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_3072_SHA256 = 5

    # This ImportMethod represents RSAES-OAEP with a 4096 bit RSA key. The
    # key material to be imported is wrapped directly with the RSA key. Due
    # to technical limitations of RSA wrapping, this method cannot be used to
    # wrap RSA keys for import.
    RSA_OAEP_4096_SHA256 = 6

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-768 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_768_HKDF_SHA256_AES_256_GCM = 8

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the ML-KEM-1024 KEM. For more
    # details, see the [ML-KEM HPKE
    # standard](http://datatracker.ietf.org/doc/draft-ietf-hpke-pq/01/).
    HPKE_KEM_ML_KEM_1024_HKDF_SHA256_AES_256_GCM = 9

    # Represents the Hybrid Public Key Encryption (HPKE) Scheme originally
    # defined in [RFC 9180](https://www.rfc-editor.org/rfc/rfc9180). It
    # involves wrapping the raw key with an ephemeral AES key, derived with
    # HKDF-SHA256 from an encryption context, that is, in turn obtained from
    # the receiver’s public key with the help of the X-Wing hybrid KEM. For
    # more details, see the [X-Wing
    # standard](http://datatracker.ietf.org/doc/draft-connolly-cfrg-xwing-kem/09/).
    HPKE_KEM_XWING_HKDF_SHA256_AES_256_GCM = 10
  end

  # The state of the {::Google::Cloud::Kms::V1::ImportJob ImportJob}, indicating if
  # it can be used.
  module ImportJobState
    # Not specified.
    IMPORT_JOB_STATE_UNSPECIFIED = 0

    # The wrapping key for this job is still being generated. It may not be
    # used. Cloud KMS will automatically mark this job as
    # {::Google::Cloud::Kms::V1::ImportJob::ImportJobState::ACTIVE ACTIVE} as soon as
    # the wrapping key is generated.
    PENDING_GENERATION = 1

    # This job may be used in
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key CreateCryptoKey}
    # and
    # {::Google::Cloud::Kms::V1::KeyManagementService::Client#create_crypto_key_version CreateCryptoKeyVersion}
    # requests.
    ACTIVE = 2

    # This job can no longer be used and may not leave this state once entered.
    EXPIRED = 3
  end
end