# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
import grpc

from google.cloud.kms_v1.proto import (
    resources_pb2 as google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2,
)
from google.cloud.kms_v1.proto import (
    service_pb2 as google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2,
)


class KeyManagementServiceStub(object):
    """Google Cloud Key Management Service

  Manages cryptographic keys and operations using those keys. Implements a REST
  model with the following objects:

  * [KeyRing][google.cloud.kms.v1.KeyRing]
  * [CryptoKey][google.cloud.kms.v1.CryptoKey]
  * [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]

  If you are using manual gRPC libraries, see
  [Using gRPC with Cloud KMS](https://cloud.google.com/kms/docs/grpc).
  """

    def __init__(self, channel):
        """Constructor.

    Args:
      channel: A grpc.Channel.
    """
        self.ListKeyRings = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/ListKeyRings",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListKeyRingsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListKeyRingsResponse.FromString,
        )
        self.ListCryptoKeys = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/ListCryptoKeys",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeysRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeysResponse.FromString,
        )
        self.ListCryptoKeyVersions = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/ListCryptoKeyVersions",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeyVersionsRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeyVersionsResponse.FromString,
        )
        self.GetKeyRing = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/GetKeyRing",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetKeyRingRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.KeyRing.FromString,
        )
        self.GetCryptoKey = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/GetCryptoKey",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetCryptoKeyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.FromString,
        )
        self.GetCryptoKeyVersion = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/GetCryptoKeyVersion",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetCryptoKeyVersionRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.FromString,
        )
        self.GetPublicKey = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/GetPublicKey",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetPublicKeyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.PublicKey.FromString,
        )
        self.CreateKeyRing = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/CreateKeyRing",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.CreateKeyRingRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.KeyRing.FromString,
        )
        self.CreateCryptoKey = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/CreateCryptoKey",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.CreateCryptoKeyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.FromString,
        )
        self.CreateCryptoKeyVersion = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/CreateCryptoKeyVersion",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.CreateCryptoKeyVersionRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.FromString,
        )
        self.UpdateCryptoKey = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/UpdateCryptoKey",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.UpdateCryptoKeyRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.FromString,
        )
        self.UpdateCryptoKeyVersion = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/UpdateCryptoKeyVersion",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.UpdateCryptoKeyVersionRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.FromString,
        )
        self.Encrypt = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/Encrypt",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.EncryptRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.EncryptResponse.FromString,
        )
        self.Decrypt = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/Decrypt",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.DecryptRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.DecryptResponse.FromString,
        )
        self.AsymmetricSign = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/AsymmetricSign",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricSignRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricSignResponse.FromString,
        )
        self.AsymmetricDecrypt = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/AsymmetricDecrypt",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricDecryptRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricDecryptResponse.FromString,
        )
        self.UpdateCryptoKeyPrimaryVersion = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/UpdateCryptoKeyPrimaryVersion",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.UpdateCryptoKeyPrimaryVersionRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.FromString,
        )
        self.DestroyCryptoKeyVersion = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/DestroyCryptoKeyVersion",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.DestroyCryptoKeyVersionRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.FromString,
        )
        self.RestoreCryptoKeyVersion = channel.unary_unary(
            "/google.cloud.kms.v1.KeyManagementService/RestoreCryptoKeyVersion",
            request_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.RestoreCryptoKeyVersionRequest.SerializeToString,
            response_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.FromString,
        )


class KeyManagementServiceServicer(object):
    """Google Cloud Key Management Service

  Manages cryptographic keys and operations using those keys. Implements a REST
  model with the following objects:

  * [KeyRing][google.cloud.kms.v1.KeyRing]
  * [CryptoKey][google.cloud.kms.v1.CryptoKey]
  * [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]

  If you are using manual gRPC libraries, see
  [Using gRPC with Cloud KMS](https://cloud.google.com/kms/docs/grpc).
  """

    def ListKeyRings(self, request, context):
        """Lists [KeyRings][google.cloud.kms.v1.KeyRing].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ListCryptoKeys(self, request, context):
        """Lists [CryptoKeys][google.cloud.kms.v1.CryptoKey].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def ListCryptoKeyVersions(self, request, context):
        """Lists [CryptoKeyVersions][google.cloud.kms.v1.CryptoKeyVersion].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetKeyRing(self, request, context):
        """Returns metadata for a given [KeyRing][google.cloud.kms.v1.KeyRing].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetCryptoKey(self, request, context):
        """Returns metadata for a given [CryptoKey][google.cloud.kms.v1.CryptoKey], as well as its
    [primary][google.cloud.kms.v1.CryptoKey.primary] [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetCryptoKeyVersion(self, request, context):
        """Returns metadata for a given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def GetPublicKey(self, request, context):
        """Returns the public key for the given [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]. The
    [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] must be
    [ASYMMETRIC_SIGN][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_SIGN] or
    [ASYMMETRIC_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ASYMMETRIC_DECRYPT].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def CreateKeyRing(self, request, context):
        """Create a new [KeyRing][google.cloud.kms.v1.KeyRing] in a given Project and Location.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def CreateCryptoKey(self, request, context):
        """Create a new [CryptoKey][google.cloud.kms.v1.CryptoKey] within a [KeyRing][google.cloud.kms.v1.KeyRing].

    [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] and
    [CryptoKey.version_template.algorithm][google.cloud.kms.v1.CryptoKeyVersionTemplate.algorithm]
    are required.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def CreateCryptoKeyVersion(self, request, context):
        """Create a new [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in a [CryptoKey][google.cloud.kms.v1.CryptoKey].

    The server will assign the next sequential id. If unset,
    [state][google.cloud.kms.v1.CryptoKeyVersion.state] will be set to
    [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def UpdateCryptoKey(self, request, context):
        """Update a [CryptoKey][google.cloud.kms.v1.CryptoKey].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def UpdateCryptoKeyVersion(self, request, context):
        """Update a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion]'s metadata.

    [state][google.cloud.kms.v1.CryptoKeyVersion.state] may be changed between
    [ENABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.ENABLED] and
    [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED] using this
    method. See [DestroyCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.DestroyCryptoKeyVersion] and [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] to
    move between other states.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def Encrypt(self, request, context):
        """Encrypts data, so that it can only be recovered by a call to [Decrypt][google.cloud.kms.v1.KeyManagementService.Decrypt].
    The [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] must be
    [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def Decrypt(self, request, context):
        """Decrypts data that was protected by [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt]. The [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
    must be [ENCRYPT_DECRYPT][google.cloud.kms.v1.CryptoKey.CryptoKeyPurpose.ENCRYPT_DECRYPT].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def AsymmetricSign(self, request, context):
        """Signs data using a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose]
    ASYMMETRIC_SIGN, producing a signature that can be verified with the public
    key retrieved from [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey].
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def AsymmetricDecrypt(self, request, context):
        """Decrypts data that was encrypted with a public key retrieved from
    [GetPublicKey][google.cloud.kms.v1.KeyManagementService.GetPublicKey] corresponding to a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] with
    [CryptoKey.purpose][google.cloud.kms.v1.CryptoKey.purpose] ASYMMETRIC_DECRYPT.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def UpdateCryptoKeyPrimaryVersion(self, request, context):
        """Update the version of a [CryptoKey][google.cloud.kms.v1.CryptoKey] that will be used in [Encrypt][google.cloud.kms.v1.KeyManagementService.Encrypt].

    Returns an error if called on an asymmetric key.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def DestroyCryptoKeyVersion(self, request, context):
        """Schedule a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] for destruction.

    Upon calling this method, [CryptoKeyVersion.state][google.cloud.kms.v1.CryptoKeyVersion.state] will be set to
    [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]
    and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will be set to a time 24
    hours in the future, at which point the [state][google.cloud.kms.v1.CryptoKeyVersion.state]
    will be changed to
    [DESTROYED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROYED], and the key
    material will be irrevocably destroyed.

    Before the [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] is reached,
    [RestoreCryptoKeyVersion][google.cloud.kms.v1.KeyManagementService.RestoreCryptoKeyVersion] may be called to reverse the process.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")

    def RestoreCryptoKeyVersion(self, request, context):
        """Restore a [CryptoKeyVersion][google.cloud.kms.v1.CryptoKeyVersion] in the
    [DESTROY_SCHEDULED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DESTROY_SCHEDULED]
    state.

    Upon restoration of the CryptoKeyVersion, [state][google.cloud.kms.v1.CryptoKeyVersion.state]
    will be set to [DISABLED][google.cloud.kms.v1.CryptoKeyVersion.CryptoKeyVersionState.DISABLED],
    and [destroy_time][google.cloud.kms.v1.CryptoKeyVersion.destroy_time] will be cleared.
    """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details("Method not implemented!")
        raise NotImplementedError("Method not implemented!")


def add_KeyManagementServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
        "ListKeyRings": grpc.unary_unary_rpc_method_handler(
            servicer.ListKeyRings,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListKeyRingsRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListKeyRingsResponse.SerializeToString,
        ),
        "ListCryptoKeys": grpc.unary_unary_rpc_method_handler(
            servicer.ListCryptoKeys,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeysRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeysResponse.SerializeToString,
        ),
        "ListCryptoKeyVersions": grpc.unary_unary_rpc_method_handler(
            servicer.ListCryptoKeyVersions,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeyVersionsRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.ListCryptoKeyVersionsResponse.SerializeToString,
        ),
        "GetKeyRing": grpc.unary_unary_rpc_method_handler(
            servicer.GetKeyRing,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetKeyRingRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.KeyRing.SerializeToString,
        ),
        "GetCryptoKey": grpc.unary_unary_rpc_method_handler(
            servicer.GetCryptoKey,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetCryptoKeyRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.SerializeToString,
        ),
        "GetCryptoKeyVersion": grpc.unary_unary_rpc_method_handler(
            servicer.GetCryptoKeyVersion,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetCryptoKeyVersionRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.SerializeToString,
        ),
        "GetPublicKey": grpc.unary_unary_rpc_method_handler(
            servicer.GetPublicKey,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.GetPublicKeyRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.PublicKey.SerializeToString,
        ),
        "CreateKeyRing": grpc.unary_unary_rpc_method_handler(
            servicer.CreateKeyRing,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.CreateKeyRingRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.KeyRing.SerializeToString,
        ),
        "CreateCryptoKey": grpc.unary_unary_rpc_method_handler(
            servicer.CreateCryptoKey,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.CreateCryptoKeyRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.SerializeToString,
        ),
        "CreateCryptoKeyVersion": grpc.unary_unary_rpc_method_handler(
            servicer.CreateCryptoKeyVersion,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.CreateCryptoKeyVersionRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.SerializeToString,
        ),
        "UpdateCryptoKey": grpc.unary_unary_rpc_method_handler(
            servicer.UpdateCryptoKey,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.UpdateCryptoKeyRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.SerializeToString,
        ),
        "UpdateCryptoKeyVersion": grpc.unary_unary_rpc_method_handler(
            servicer.UpdateCryptoKeyVersion,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.UpdateCryptoKeyVersionRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.SerializeToString,
        ),
        "Encrypt": grpc.unary_unary_rpc_method_handler(
            servicer.Encrypt,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.EncryptRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.EncryptResponse.SerializeToString,
        ),
        "Decrypt": grpc.unary_unary_rpc_method_handler(
            servicer.Decrypt,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.DecryptRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.DecryptResponse.SerializeToString,
        ),
        "AsymmetricSign": grpc.unary_unary_rpc_method_handler(
            servicer.AsymmetricSign,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricSignRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricSignResponse.SerializeToString,
        ),
        "AsymmetricDecrypt": grpc.unary_unary_rpc_method_handler(
            servicer.AsymmetricDecrypt,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricDecryptRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.AsymmetricDecryptResponse.SerializeToString,
        ),
        "UpdateCryptoKeyPrimaryVersion": grpc.unary_unary_rpc_method_handler(
            servicer.UpdateCryptoKeyPrimaryVersion,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.UpdateCryptoKeyPrimaryVersionRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKey.SerializeToString,
        ),
        "DestroyCryptoKeyVersion": grpc.unary_unary_rpc_method_handler(
            servicer.DestroyCryptoKeyVersion,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.DestroyCryptoKeyVersionRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.SerializeToString,
        ),
        "RestoreCryptoKeyVersion": grpc.unary_unary_rpc_method_handler(
            servicer.RestoreCryptoKeyVersion,
            request_deserializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_service__pb2.RestoreCryptoKeyVersionRequest.FromString,
            response_serializer=google_dot_cloud_dot_kms__v1_dot_proto_dot_resources__pb2.CryptoKeyVersion.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        "google.cloud.kms.v1.KeyManagementService", rpc_method_handlers
    )
    server.add_generic_rpc_handlers((generic_handler,))
