# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
"""Client and server classes corresponding to protobuf-defined services."""
import grpc

from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from spounge.polykey.v2 import auth_pb2 as polykey_dot_v2_dot_auth__pb2
from spounge.polykey.v2 import batch_operations_pb2 as polykey_dot_v2_dot_batch__operations__pb2
from spounge.polykey.v2 import metrics_pb2 as polykey_dot_v2_dot_metrics__pb2
from spounge.polykey.v2 import single_operations_pb2 as polykey_dot_v2_dot_single__operations__pb2
from spounge.polykey.v2 import stream_operations_pb2 as polykey_dot_v2_dot_stream__operations__pb2


class PolykeyServiceStub(object):
    """Missing associated documentation comment in .proto file."""

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

        Args:
            channel: A grpc.Channel.
        """
        self.HealthCheck = channel.unary_unary(
                '/polykey.v2.PolykeyService/HealthCheck',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_metrics__pb2.HealthCheckResponse.FromString,
                _registered_method=True)
        self.GetKey = channel.unary_unary(
                '/polykey.v2.PolykeyService/GetKey',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyResponse.FromString,
                _registered_method=True)
        self.ListKeys = channel.unary_unary(
                '/polykey.v2.PolykeyService/ListKeys',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.ListKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_single__operations__pb2.ListKeysResponse.FromString,
                _registered_method=True)
        self.CreateKey = channel.unary_unary(
                '/polykey.v2.PolykeyService/CreateKey',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.CreateKeyRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_single__operations__pb2.CreateKeyResponse.FromString,
                _registered_method=True)
        self.RotateKey = channel.unary_unary(
                '/polykey.v2.PolykeyService/RotateKey',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.RotateKeyRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_single__operations__pb2.RotateKeyResponse.FromString,
                _registered_method=True)
        self.RevokeKey = channel.unary_unary(
                '/polykey.v2.PolykeyService/RevokeKey',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.RevokeKeyRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.UpdateKeyMetadata = channel.unary_unary(
                '/polykey.v2.PolykeyService/UpdateKeyMetadata',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.UpdateKeyMetadataRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                _registered_method=True)
        self.GetKeyMetadata = channel.unary_unary(
                '/polykey.v2.PolykeyService/GetKeyMetadata',
                request_serializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyMetadataRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyMetadataResponse.FromString,
                _registered_method=True)
        self.BatchGetKeys = channel.unary_unary(
                '/polykey.v2.PolykeyService/BatchGetKeys',
                request_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeysResponse.FromString,
                _registered_method=True)
        self.BatchCreateKeys = channel.unary_unary(
                '/polykey.v2.PolykeyService/BatchCreateKeys',
                request_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchCreateKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchCreateKeysResponse.FromString,
                _registered_method=True)
        self.BatchRotateKeys = channel.unary_unary(
                '/polykey.v2.PolykeyService/BatchRotateKeys',
                request_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRotateKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRotateKeysResponse.FromString,
                _registered_method=True)
        self.BatchRevokeKeys = channel.unary_unary(
                '/polykey.v2.PolykeyService/BatchRevokeKeys',
                request_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRevokeKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRevokeKeysResponse.FromString,
                _registered_method=True)
        self.BatchUpdateKeyMetadata = channel.unary_unary(
                '/polykey.v2.PolykeyService/BatchUpdateKeyMetadata',
                request_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchUpdateKeyMetadataRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchUpdateKeyMetadataResponse.FromString,
                _registered_method=True)
        self.BatchGetKeyMetadata = channel.unary_unary(
                '/polykey.v2.PolykeyService/BatchGetKeyMetadata',
                request_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeyMetadataRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeyMetadataResponse.FromString,
                _registered_method=True)
        self.StreamGetKeys = channel.unary_stream(
                '/polykey.v2.PolykeyService/StreamGetKeys',
                request_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeysResponse.FromString,
                _registered_method=True)
        self.StreamCreateKeys = channel.stream_stream(
                '/polykey.v2.PolykeyService/StreamCreateKeys',
                request_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamCreateKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamCreateKeysResponse.FromString,
                _registered_method=True)
        self.StreamRotateKeys = channel.stream_stream(
                '/polykey.v2.PolykeyService/StreamRotateKeys',
                request_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRotateKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRotateKeysResponse.FromString,
                _registered_method=True)
        self.StreamRevokeKeys = channel.stream_stream(
                '/polykey.v2.PolykeyService/StreamRevokeKeys',
                request_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRevokeKeysRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRevokeKeysResponse.FromString,
                _registered_method=True)
        self.StreamUpdateKeyMetadata = channel.stream_stream(
                '/polykey.v2.PolykeyService/StreamUpdateKeyMetadata',
                request_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamUpdateKeyMetadataRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamUpdateKeyMetadataResponse.FromString,
                _registered_method=True)
        self.StreamGetKeyMetadata = channel.stream_stream(
                '/polykey.v2.PolykeyService/StreamGetKeyMetadata',
                request_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeyMetadataRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeyMetadataResponse.FromString,
                _registered_method=True)
        self.Authenticate = channel.unary_unary(
                '/polykey.v2.PolykeyService/Authenticate',
                request_serializer=polykey_dot_v2_dot_auth__pb2.AuthenticateRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_auth__pb2.AuthenticateResponse.FromString,
                _registered_method=True)
        self.RefreshToken = channel.unary_unary(
                '/polykey.v2.PolykeyService/RefreshToken',
                request_serializer=polykey_dot_v2_dot_auth__pb2.RefreshTokenRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_auth__pb2.RefreshTokenResponse.FromString,
                _registered_method=True)
        self.RevokeToken = channel.unary_unary(
                '/polykey.v2.PolykeyService/RevokeToken',
                request_serializer=polykey_dot_v2_dot_auth__pb2.RevokeTokenRequest.SerializeToString,
                response_deserializer=polykey_dot_v2_dot_auth__pb2.RevokeTokenResponse.FromString,
                _registered_method=True)


class PolykeyServiceServicer(object):
    """Missing associated documentation comment in .proto file."""

    def HealthCheck(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetKey(self, request, context):
        """1-5, few nodes
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def ListKeys(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateKey(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RotateKey(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RevokeKey(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateKeyMetadata(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetKeyMetadata(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchGetKeys(self, request, context):
        """Batch operations (5-50 keys)
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchCreateKeys(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchRotateKeys(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchRevokeKeys(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchUpdateKeyMetadata(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def BatchGetKeyMetadata(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamGetKeys(self, request, context):
        """Streaming operations (50+ keys) unlikely right now, but in-case
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamCreateKeys(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamRotateKeys(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamRevokeKeys(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamUpdateKeyMetadata(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def StreamGetKeyMetadata(self, request_iterator, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Authenticate(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RefreshToken(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def RevokeToken(self, request, context):
        """Missing associated documentation comment in .proto file."""
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_PolykeyServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'HealthCheck': grpc.unary_unary_rpc_method_handler(
                    servicer.HealthCheck,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=polykey_dot_v2_dot_metrics__pb2.HealthCheckResponse.SerializeToString,
            ),
            'GetKey': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKey,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyResponse.SerializeToString,
            ),
            'ListKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.ListKeys,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.ListKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_single__operations__pb2.ListKeysResponse.SerializeToString,
            ),
            'CreateKey': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateKey,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.CreateKeyRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_single__operations__pb2.CreateKeyResponse.SerializeToString,
            ),
            'RotateKey': grpc.unary_unary_rpc_method_handler(
                    servicer.RotateKey,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.RotateKeyRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_single__operations__pb2.RotateKeyResponse.SerializeToString,
            ),
            'RevokeKey': grpc.unary_unary_rpc_method_handler(
                    servicer.RevokeKey,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.RevokeKeyRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'UpdateKeyMetadata': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateKeyMetadata,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.UpdateKeyMetadataRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetKeyMetadata': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeyMetadata,
                    request_deserializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyMetadataRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_single__operations__pb2.GetKeyMetadataResponse.SerializeToString,
            ),
            'BatchGetKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchGetKeys,
                    request_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeysResponse.SerializeToString,
            ),
            'BatchCreateKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchCreateKeys,
                    request_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchCreateKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchCreateKeysResponse.SerializeToString,
            ),
            'BatchRotateKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchRotateKeys,
                    request_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRotateKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRotateKeysResponse.SerializeToString,
            ),
            'BatchRevokeKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchRevokeKeys,
                    request_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRevokeKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchRevokeKeysResponse.SerializeToString,
            ),
            'BatchUpdateKeyMetadata': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchUpdateKeyMetadata,
                    request_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchUpdateKeyMetadataRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchUpdateKeyMetadataResponse.SerializeToString,
            ),
            'BatchGetKeyMetadata': grpc.unary_unary_rpc_method_handler(
                    servicer.BatchGetKeyMetadata,
                    request_deserializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeyMetadataRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeyMetadataResponse.SerializeToString,
            ),
            'StreamGetKeys': grpc.unary_stream_rpc_method_handler(
                    servicer.StreamGetKeys,
                    request_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeysResponse.SerializeToString,
            ),
            'StreamCreateKeys': grpc.stream_stream_rpc_method_handler(
                    servicer.StreamCreateKeys,
                    request_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamCreateKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamCreateKeysResponse.SerializeToString,
            ),
            'StreamRotateKeys': grpc.stream_stream_rpc_method_handler(
                    servicer.StreamRotateKeys,
                    request_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRotateKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRotateKeysResponse.SerializeToString,
            ),
            'StreamRevokeKeys': grpc.stream_stream_rpc_method_handler(
                    servicer.StreamRevokeKeys,
                    request_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRevokeKeysRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamRevokeKeysResponse.SerializeToString,
            ),
            'StreamUpdateKeyMetadata': grpc.stream_stream_rpc_method_handler(
                    servicer.StreamUpdateKeyMetadata,
                    request_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamUpdateKeyMetadataRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamUpdateKeyMetadataResponse.SerializeToString,
            ),
            'StreamGetKeyMetadata': grpc.stream_stream_rpc_method_handler(
                    servicer.StreamGetKeyMetadata,
                    request_deserializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeyMetadataRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeyMetadataResponse.SerializeToString,
            ),
            'Authenticate': grpc.unary_unary_rpc_method_handler(
                    servicer.Authenticate,
                    request_deserializer=polykey_dot_v2_dot_auth__pb2.AuthenticateRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_auth__pb2.AuthenticateResponse.SerializeToString,
            ),
            'RefreshToken': grpc.unary_unary_rpc_method_handler(
                    servicer.RefreshToken,
                    request_deserializer=polykey_dot_v2_dot_auth__pb2.RefreshTokenRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_auth__pb2.RefreshTokenResponse.SerializeToString,
            ),
            'RevokeToken': grpc.unary_unary_rpc_method_handler(
                    servicer.RevokeToken,
                    request_deserializer=polykey_dot_v2_dot_auth__pb2.RevokeTokenRequest.FromString,
                    response_serializer=polykey_dot_v2_dot_auth__pb2.RevokeTokenResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'polykey.v2.PolykeyService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))
    server.add_registered_method_handlers('polykey.v2.PolykeyService', rpc_method_handlers)


 # This class is part of an EXPERIMENTAL API.
class PolykeyService(object):
    """Missing associated documentation comment in .proto file."""

    @staticmethod
    def HealthCheck(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/HealthCheck',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            polykey_dot_v2_dot_metrics__pb2.HealthCheckResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/GetKey',
            polykey_dot_v2_dot_single__operations__pb2.GetKeyRequest.SerializeToString,
            polykey_dot_v2_dot_single__operations__pb2.GetKeyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def ListKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/ListKeys',
            polykey_dot_v2_dot_single__operations__pb2.ListKeysRequest.SerializeToString,
            polykey_dot_v2_dot_single__operations__pb2.ListKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def CreateKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/CreateKey',
            polykey_dot_v2_dot_single__operations__pb2.CreateKeyRequest.SerializeToString,
            polykey_dot_v2_dot_single__operations__pb2.CreateKeyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RotateKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/RotateKey',
            polykey_dot_v2_dot_single__operations__pb2.RotateKeyRequest.SerializeToString,
            polykey_dot_v2_dot_single__operations__pb2.RotateKeyResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RevokeKey(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/RevokeKey',
            polykey_dot_v2_dot_single__operations__pb2.RevokeKeyRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def UpdateKeyMetadata(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/UpdateKeyMetadata',
            polykey_dot_v2_dot_single__operations__pb2.UpdateKeyMetadataRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def GetKeyMetadata(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/GetKeyMetadata',
            polykey_dot_v2_dot_single__operations__pb2.GetKeyMetadataRequest.SerializeToString,
            polykey_dot_v2_dot_single__operations__pb2.GetKeyMetadataResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchGetKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/BatchGetKeys',
            polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeysRequest.SerializeToString,
            polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchCreateKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/BatchCreateKeys',
            polykey_dot_v2_dot_batch__operations__pb2.BatchCreateKeysRequest.SerializeToString,
            polykey_dot_v2_dot_batch__operations__pb2.BatchCreateKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchRotateKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/BatchRotateKeys',
            polykey_dot_v2_dot_batch__operations__pb2.BatchRotateKeysRequest.SerializeToString,
            polykey_dot_v2_dot_batch__operations__pb2.BatchRotateKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchRevokeKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/BatchRevokeKeys',
            polykey_dot_v2_dot_batch__operations__pb2.BatchRevokeKeysRequest.SerializeToString,
            polykey_dot_v2_dot_batch__operations__pb2.BatchRevokeKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchUpdateKeyMetadata(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/BatchUpdateKeyMetadata',
            polykey_dot_v2_dot_batch__operations__pb2.BatchUpdateKeyMetadataRequest.SerializeToString,
            polykey_dot_v2_dot_batch__operations__pb2.BatchUpdateKeyMetadataResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def BatchGetKeyMetadata(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/BatchGetKeyMetadata',
            polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeyMetadataRequest.SerializeToString,
            polykey_dot_v2_dot_batch__operations__pb2.BatchGetKeyMetadataResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamGetKeys(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_stream(
            request,
            target,
            '/polykey.v2.PolykeyService/StreamGetKeys',
            polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeysRequest.SerializeToString,
            polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamCreateKeys(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/polykey.v2.PolykeyService/StreamCreateKeys',
            polykey_dot_v2_dot_stream__operations__pb2.StreamCreateKeysRequest.SerializeToString,
            polykey_dot_v2_dot_stream__operations__pb2.StreamCreateKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamRotateKeys(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/polykey.v2.PolykeyService/StreamRotateKeys',
            polykey_dot_v2_dot_stream__operations__pb2.StreamRotateKeysRequest.SerializeToString,
            polykey_dot_v2_dot_stream__operations__pb2.StreamRotateKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamRevokeKeys(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/polykey.v2.PolykeyService/StreamRevokeKeys',
            polykey_dot_v2_dot_stream__operations__pb2.StreamRevokeKeysRequest.SerializeToString,
            polykey_dot_v2_dot_stream__operations__pb2.StreamRevokeKeysResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamUpdateKeyMetadata(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/polykey.v2.PolykeyService/StreamUpdateKeyMetadata',
            polykey_dot_v2_dot_stream__operations__pb2.StreamUpdateKeyMetadataRequest.SerializeToString,
            polykey_dot_v2_dot_stream__operations__pb2.StreamUpdateKeyMetadataResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def StreamGetKeyMetadata(request_iterator,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.stream_stream(
            request_iterator,
            target,
            '/polykey.v2.PolykeyService/StreamGetKeyMetadata',
            polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeyMetadataRequest.SerializeToString,
            polykey_dot_v2_dot_stream__operations__pb2.StreamGetKeyMetadataResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def Authenticate(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/Authenticate',
            polykey_dot_v2_dot_auth__pb2.AuthenticateRequest.SerializeToString,
            polykey_dot_v2_dot_auth__pb2.AuthenticateResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RefreshToken(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/RefreshToken',
            polykey_dot_v2_dot_auth__pb2.RefreshTokenRequest.SerializeToString,
            polykey_dot_v2_dot_auth__pb2.RefreshTokenResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)

    @staticmethod
    def RevokeToken(request,
            target,
            options=(),
            channel_credentials=None,
            call_credentials=None,
            insecure=False,
            compression=None,
            wait_for_ready=None,
            timeout=None,
            metadata=None):
        return grpc.experimental.unary_unary(
            request,
            target,
            '/polykey.v2.PolykeyService/RevokeToken',
            polykey_dot_v2_dot_auth__pb2.RevokeTokenRequest.SerializeToString,
            polykey_dot_v2_dot_auth__pb2.RevokeTokenResponse.FromString,
            options,
            channel_credentials,
            insecure,
            call_credentials,
            compression,
            wait_for_ready,
            timeout,
            metadata,
            _registered_method=True)
