# 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
import privateService_pb2 as privateService__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.GetBalances = channel.unary_unary(
                '/hft.PrivateService/GetBalances',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.BalancesResponse.FromString,
                )
        self.PlaceLimitOrder = channel.unary_unary(
                '/hft.PrivateService/PlaceLimitOrder',
                request_serializer=privateService__pb2.LimitOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.LimitOrderResponse.FromString,
                )
        self.PlaceBulkLimitOrder = channel.unary_unary(
                '/hft.PrivateService/PlaceBulkLimitOrder',
                request_serializer=privateService__pb2.BulkLimitOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.BulkLimitOrderResponse.FromString,
                )
        self.PlaceMarketOrder = channel.unary_unary(
                '/hft.PrivateService/PlaceMarketOrder',
                request_serializer=privateService__pb2.MarketOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.MarketOrderResponse.FromString,
                )
        self.GetOrder = channel.unary_unary(
                '/hft.PrivateService/GetOrder',
                request_serializer=privateService__pb2.OrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.OrderResponse.FromString,
                )
        self.GetActiveOrders = channel.unary_unary(
                '/hft.PrivateService/GetActiveOrders',
                request_serializer=privateService__pb2.OrdersRequest.SerializeToString,
                response_deserializer=privateService__pb2.OrdersResponse.FromString,
                )
        self.GetClosedOrders = channel.unary_unary(
                '/hft.PrivateService/GetClosedOrders',
                request_serializer=privateService__pb2.OrdersRequest.SerializeToString,
                response_deserializer=privateService__pb2.OrdersResponse.FromString,
                )
        self.CancelAllOrders = channel.unary_unary(
                '/hft.PrivateService/CancelAllOrders',
                request_serializer=privateService__pb2.CancelOrdersRequest.SerializeToString,
                response_deserializer=privateService__pb2.CancelOrderResponse.FromString,
                )
        self.CancelOrder = channel.unary_unary(
                '/hft.PrivateService/CancelOrder',
                request_serializer=privateService__pb2.CancelOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.CancelOrderResponse.FromString,
                )
        self.GetTrades = channel.unary_unary(
                '/hft.PrivateService/GetTrades',
                request_serializer=privateService__pb2.TradesRequest.SerializeToString,
                response_deserializer=privateService__pb2.TradesResponse.FromString,
                )
        self.GetOrderTrades = channel.unary_unary(
                '/hft.PrivateService/GetOrderTrades',
                request_serializer=privateService__pb2.OrderTradesRequest.SerializeToString,
                response_deserializer=privateService__pb2.TradesResponse.FromString,
                )
        self.GetBalanceUpdates = channel.unary_stream(
                '/hft.PrivateService/GetBalanceUpdates',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.BalanceUpdate.FromString,
                )
        self.GetTradeUpdates = channel.unary_stream(
                '/hft.PrivateService/GetTradeUpdates',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.TradeUpdate.FromString,
                )
        self.GetOperationsHistory = channel.unary_unary(
                '/hft.PrivateService/GetOperationsHistory',
                request_serializer=privateService__pb2.GetOperationsHistoryRequest.SerializeToString,
                response_deserializer=privateService__pb2.GetOperationsHistoryResponse.FromString,
                )
        self.CreateDepositAddresses = channel.unary_unary(
                '/hft.PrivateService/CreateDepositAddresses',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.CreateDepositAddressesResponse.FromString,
                )
        self.GetDepositAddress = channel.unary_unary(
                '/hft.PrivateService/GetDepositAddress',
                request_serializer=privateService__pb2.GetDepositAddressRequest.SerializeToString,
                response_deserializer=privateService__pb2.GetDepositAddressResponse.FromString,
                )
        self.CreateWithdrawal = channel.unary_unary(
                '/hft.PrivateService/CreateWithdrawal',
                request_serializer=privateService__pb2.CreateWithdrawalRequest.SerializeToString,
                response_deserializer=privateService__pb2.CreateWithdrawalResponse.FromString,
                )


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

    def GetBalances(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 PlaceLimitOrder(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 PlaceBulkLimitOrder(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 PlaceMarketOrder(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 GetOrder(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 GetActiveOrders(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 GetClosedOrders(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 CancelAllOrders(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 CancelOrder(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 GetTrades(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 GetOrderTrades(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 GetBalanceUpdates(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 GetTradeUpdates(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 GetOperationsHistory(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 CreateDepositAddresses(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 GetDepositAddress(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 CreateWithdrawal(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_PrivateServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetBalances': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBalances,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.BalancesResponse.SerializeToString,
            ),
            'PlaceLimitOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.PlaceLimitOrder,
                    request_deserializer=privateService__pb2.LimitOrderRequest.FromString,
                    response_serializer=privateService__pb2.LimitOrderResponse.SerializeToString,
            ),
            'PlaceBulkLimitOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.PlaceBulkLimitOrder,
                    request_deserializer=privateService__pb2.BulkLimitOrderRequest.FromString,
                    response_serializer=privateService__pb2.BulkLimitOrderResponse.SerializeToString,
            ),
            'PlaceMarketOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.PlaceMarketOrder,
                    request_deserializer=privateService__pb2.MarketOrderRequest.FromString,
                    response_serializer=privateService__pb2.MarketOrderResponse.SerializeToString,
            ),
            'GetOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOrder,
                    request_deserializer=privateService__pb2.OrderRequest.FromString,
                    response_serializer=privateService__pb2.OrderResponse.SerializeToString,
            ),
            'GetActiveOrders': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActiveOrders,
                    request_deserializer=privateService__pb2.OrdersRequest.FromString,
                    response_serializer=privateService__pb2.OrdersResponse.SerializeToString,
            ),
            'GetClosedOrders': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClosedOrders,
                    request_deserializer=privateService__pb2.OrdersRequest.FromString,
                    response_serializer=privateService__pb2.OrdersResponse.SerializeToString,
            ),
            'CancelAllOrders': grpc.unary_unary_rpc_method_handler(
                    servicer.CancelAllOrders,
                    request_deserializer=privateService__pb2.CancelOrdersRequest.FromString,
                    response_serializer=privateService__pb2.CancelOrderResponse.SerializeToString,
            ),
            'CancelOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.CancelOrder,
                    request_deserializer=privateService__pb2.CancelOrderRequest.FromString,
                    response_serializer=privateService__pb2.CancelOrderResponse.SerializeToString,
            ),
            'GetTrades': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTrades,
                    request_deserializer=privateService__pb2.TradesRequest.FromString,
                    response_serializer=privateService__pb2.TradesResponse.SerializeToString,
            ),
            'GetOrderTrades': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOrderTrades,
                    request_deserializer=privateService__pb2.OrderTradesRequest.FromString,
                    response_serializer=privateService__pb2.TradesResponse.SerializeToString,
            ),
            'GetBalanceUpdates': grpc.unary_stream_rpc_method_handler(
                    servicer.GetBalanceUpdates,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.BalanceUpdate.SerializeToString,
            ),
            'GetTradeUpdates': grpc.unary_stream_rpc_method_handler(
                    servicer.GetTradeUpdates,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.TradeUpdate.SerializeToString,
            ),
            'GetOperationsHistory': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOperationsHistory,
                    request_deserializer=privateService__pb2.GetOperationsHistoryRequest.FromString,
                    response_serializer=privateService__pb2.GetOperationsHistoryResponse.SerializeToString,
            ),
            'CreateDepositAddresses': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateDepositAddresses,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.CreateDepositAddressesResponse.SerializeToString,
            ),
            'GetDepositAddress': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDepositAddress,
                    request_deserializer=privateService__pb2.GetDepositAddressRequest.FromString,
                    response_serializer=privateService__pb2.GetDepositAddressResponse.SerializeToString,
            ),
            'CreateWithdrawal': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateWithdrawal,
                    request_deserializer=privateService__pb2.CreateWithdrawalRequest.FromString,
                    response_serializer=privateService__pb2.CreateWithdrawalResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'hft.PrivateService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def GetBalances(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, '/hft.PrivateService/GetBalances',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.BalancesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PlaceLimitOrder(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, '/hft.PrivateService/PlaceLimitOrder',
            privateService__pb2.LimitOrderRequest.SerializeToString,
            privateService__pb2.LimitOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PlaceBulkLimitOrder(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, '/hft.PrivateService/PlaceBulkLimitOrder',
            privateService__pb2.BulkLimitOrderRequest.SerializeToString,
            privateService__pb2.BulkLimitOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PlaceMarketOrder(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, '/hft.PrivateService/PlaceMarketOrder',
            privateService__pb2.MarketOrderRequest.SerializeToString,
            privateService__pb2.MarketOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOrder(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, '/hft.PrivateService/GetOrder',
            privateService__pb2.OrderRequest.SerializeToString,
            privateService__pb2.OrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActiveOrders(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, '/hft.PrivateService/GetActiveOrders',
            privateService__pb2.OrdersRequest.SerializeToString,
            privateService__pb2.OrdersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClosedOrders(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, '/hft.PrivateService/GetClosedOrders',
            privateService__pb2.OrdersRequest.SerializeToString,
            privateService__pb2.OrdersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CancelAllOrders(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, '/hft.PrivateService/CancelAllOrders',
            privateService__pb2.CancelOrdersRequest.SerializeToString,
            privateService__pb2.CancelOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CancelOrder(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, '/hft.PrivateService/CancelOrder',
            privateService__pb2.CancelOrderRequest.SerializeToString,
            privateService__pb2.CancelOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrades(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, '/hft.PrivateService/GetTrades',
            privateService__pb2.TradesRequest.SerializeToString,
            privateService__pb2.TradesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOrderTrades(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, '/hft.PrivateService/GetOrderTrades',
            privateService__pb2.OrderTradesRequest.SerializeToString,
            privateService__pb2.TradesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetBalanceUpdates(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, '/hft.PrivateService/GetBalanceUpdates',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.BalanceUpdate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTradeUpdates(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, '/hft.PrivateService/GetTradeUpdates',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.TradeUpdate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOperationsHistory(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, '/hft.PrivateService/GetOperationsHistory',
            privateService__pb2.GetOperationsHistoryRequest.SerializeToString,
            privateService__pb2.GetOperationsHistoryResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateDepositAddresses(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, '/hft.PrivateService/CreateDepositAddresses',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.CreateDepositAddressesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDepositAddress(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, '/hft.PrivateService/GetDepositAddress',
            privateService__pb2.GetDepositAddressRequest.SerializeToString,
            privateService__pb2.GetDepositAddressResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateWithdrawal(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, '/hft.PrivateService/CreateWithdrawal',
            privateService__pb2.CreateWithdrawalRequest.SerializeToString,
            privateService__pb2.CreateWithdrawalResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

# 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
import privateService_pb2 as privateService__pb2


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

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

        Args:
            channel: A grpc.Channel.
        """
        self.GetBalances = channel.unary_unary(
                '/hft.PrivateService/GetBalances',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.BalancesResponse.FromString,
                )
        self.PlaceLimitOrder = channel.unary_unary(
                '/hft.PrivateService/PlaceLimitOrder',
                request_serializer=privateService__pb2.LimitOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.LimitOrderResponse.FromString,
                )
        self.PlaceBulkLimitOrder = channel.unary_unary(
                '/hft.PrivateService/PlaceBulkLimitOrder',
                request_serializer=privateService__pb2.BulkLimitOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.BulkLimitOrderResponse.FromString,
                )
        self.PlaceMarketOrder = channel.unary_unary(
                '/hft.PrivateService/PlaceMarketOrder',
                request_serializer=privateService__pb2.MarketOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.MarketOrderResponse.FromString,
                )
        self.GetOrder = channel.unary_unary(
                '/hft.PrivateService/GetOrder',
                request_serializer=privateService__pb2.OrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.OrderResponse.FromString,
                )
        self.GetActiveOrders = channel.unary_unary(
                '/hft.PrivateService/GetActiveOrders',
                request_serializer=privateService__pb2.OrdersRequest.SerializeToString,
                response_deserializer=privateService__pb2.OrdersResponse.FromString,
                )
        self.GetClosedOrders = channel.unary_unary(
                '/hft.PrivateService/GetClosedOrders',
                request_serializer=privateService__pb2.OrdersRequest.SerializeToString,
                response_deserializer=privateService__pb2.OrdersResponse.FromString,
                )
        self.CancelAllOrders = channel.unary_unary(
                '/hft.PrivateService/CancelAllOrders',
                request_serializer=privateService__pb2.CancelOrdersRequest.SerializeToString,
                response_deserializer=privateService__pb2.CancelOrderResponse.FromString,
                )
        self.CancelOrder = channel.unary_unary(
                '/hft.PrivateService/CancelOrder',
                request_serializer=privateService__pb2.CancelOrderRequest.SerializeToString,
                response_deserializer=privateService__pb2.CancelOrderResponse.FromString,
                )
        self.GetTrades = channel.unary_unary(
                '/hft.PrivateService/GetTrades',
                request_serializer=privateService__pb2.TradesRequest.SerializeToString,
                response_deserializer=privateService__pb2.TradesResponse.FromString,
                )
        self.GetOrderTrades = channel.unary_unary(
                '/hft.PrivateService/GetOrderTrades',
                request_serializer=privateService__pb2.OrderTradesRequest.SerializeToString,
                response_deserializer=privateService__pb2.TradesResponse.FromString,
                )
        self.GetBalanceUpdates = channel.unary_stream(
                '/hft.PrivateService/GetBalanceUpdates',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.BalanceUpdate.FromString,
                )
        self.GetTradeUpdates = channel.unary_stream(
                '/hft.PrivateService/GetTradeUpdates',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.TradeUpdate.FromString,
                )
        self.GetOperationsHistory = channel.unary_unary(
                '/hft.PrivateService/GetOperationsHistory',
                request_serializer=privateService__pb2.GetOperationsHistoryRequest.SerializeToString,
                response_deserializer=privateService__pb2.GetOperationsHistoryResponse.FromString,
                )
        self.CreateDepositAddresses = channel.unary_unary(
                '/hft.PrivateService/CreateDepositAddresses',
                request_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
                response_deserializer=privateService__pb2.CreateDepositAddressesResponse.FromString,
                )
        self.GetDepositAddress = channel.unary_unary(
                '/hft.PrivateService/GetDepositAddress',
                request_serializer=privateService__pb2.GetDepositAddressRequest.SerializeToString,
                response_deserializer=privateService__pb2.GetDepositAddressResponse.FromString,
                )
        self.CreateWithdrawal = channel.unary_unary(
                '/hft.PrivateService/CreateWithdrawal',
                request_serializer=privateService__pb2.CreateWithdrawalRequest.SerializeToString,
                response_deserializer=privateService__pb2.CreateWithdrawalResponse.FromString,
                )


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

    def GetBalances(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 PlaceLimitOrder(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 PlaceBulkLimitOrder(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 PlaceMarketOrder(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 GetOrder(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 GetActiveOrders(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 GetClosedOrders(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 CancelAllOrders(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 CancelOrder(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 GetTrades(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 GetOrderTrades(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 GetBalanceUpdates(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 GetTradeUpdates(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 GetOperationsHistory(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 CreateDepositAddresses(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 GetDepositAddress(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 CreateWithdrawal(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_PrivateServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'GetBalances': grpc.unary_unary_rpc_method_handler(
                    servicer.GetBalances,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.BalancesResponse.SerializeToString,
            ),
            'PlaceLimitOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.PlaceLimitOrder,
                    request_deserializer=privateService__pb2.LimitOrderRequest.FromString,
                    response_serializer=privateService__pb2.LimitOrderResponse.SerializeToString,
            ),
            'PlaceBulkLimitOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.PlaceBulkLimitOrder,
                    request_deserializer=privateService__pb2.BulkLimitOrderRequest.FromString,
                    response_serializer=privateService__pb2.BulkLimitOrderResponse.SerializeToString,
            ),
            'PlaceMarketOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.PlaceMarketOrder,
                    request_deserializer=privateService__pb2.MarketOrderRequest.FromString,
                    response_serializer=privateService__pb2.MarketOrderResponse.SerializeToString,
            ),
            'GetOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOrder,
                    request_deserializer=privateService__pb2.OrderRequest.FromString,
                    response_serializer=privateService__pb2.OrderResponse.SerializeToString,
            ),
            'GetActiveOrders': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActiveOrders,
                    request_deserializer=privateService__pb2.OrdersRequest.FromString,
                    response_serializer=privateService__pb2.OrdersResponse.SerializeToString,
            ),
            'GetClosedOrders': grpc.unary_unary_rpc_method_handler(
                    servicer.GetClosedOrders,
                    request_deserializer=privateService__pb2.OrdersRequest.FromString,
                    response_serializer=privateService__pb2.OrdersResponse.SerializeToString,
            ),
            'CancelAllOrders': grpc.unary_unary_rpc_method_handler(
                    servicer.CancelAllOrders,
                    request_deserializer=privateService__pb2.CancelOrdersRequest.FromString,
                    response_serializer=privateService__pb2.CancelOrderResponse.SerializeToString,
            ),
            'CancelOrder': grpc.unary_unary_rpc_method_handler(
                    servicer.CancelOrder,
                    request_deserializer=privateService__pb2.CancelOrderRequest.FromString,
                    response_serializer=privateService__pb2.CancelOrderResponse.SerializeToString,
            ),
            'GetTrades': grpc.unary_unary_rpc_method_handler(
                    servicer.GetTrades,
                    request_deserializer=privateService__pb2.TradesRequest.FromString,
                    response_serializer=privateService__pb2.TradesResponse.SerializeToString,
            ),
            'GetOrderTrades': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOrderTrades,
                    request_deserializer=privateService__pb2.OrderTradesRequest.FromString,
                    response_serializer=privateService__pb2.TradesResponse.SerializeToString,
            ),
            'GetBalanceUpdates': grpc.unary_stream_rpc_method_handler(
                    servicer.GetBalanceUpdates,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.BalanceUpdate.SerializeToString,
            ),
            'GetTradeUpdates': grpc.unary_stream_rpc_method_handler(
                    servicer.GetTradeUpdates,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.TradeUpdate.SerializeToString,
            ),
            'GetOperationsHistory': grpc.unary_unary_rpc_method_handler(
                    servicer.GetOperationsHistory,
                    request_deserializer=privateService__pb2.GetOperationsHistoryRequest.FromString,
                    response_serializer=privateService__pb2.GetOperationsHistoryResponse.SerializeToString,
            ),
            'CreateDepositAddresses': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateDepositAddresses,
                    request_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                    response_serializer=privateService__pb2.CreateDepositAddressesResponse.SerializeToString,
            ),
            'GetDepositAddress': grpc.unary_unary_rpc_method_handler(
                    servicer.GetDepositAddress,
                    request_deserializer=privateService__pb2.GetDepositAddressRequest.FromString,
                    response_serializer=privateService__pb2.GetDepositAddressResponse.SerializeToString,
            ),
            'CreateWithdrawal': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateWithdrawal,
                    request_deserializer=privateService__pb2.CreateWithdrawalRequest.FromString,
                    response_serializer=privateService__pb2.CreateWithdrawalResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'hft.PrivateService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    @staticmethod
    def GetBalances(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, '/hft.PrivateService/GetBalances',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.BalancesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PlaceLimitOrder(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, '/hft.PrivateService/PlaceLimitOrder',
            privateService__pb2.LimitOrderRequest.SerializeToString,
            privateService__pb2.LimitOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PlaceBulkLimitOrder(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, '/hft.PrivateService/PlaceBulkLimitOrder',
            privateService__pb2.BulkLimitOrderRequest.SerializeToString,
            privateService__pb2.BulkLimitOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def PlaceMarketOrder(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, '/hft.PrivateService/PlaceMarketOrder',
            privateService__pb2.MarketOrderRequest.SerializeToString,
            privateService__pb2.MarketOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOrder(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, '/hft.PrivateService/GetOrder',
            privateService__pb2.OrderRequest.SerializeToString,
            privateService__pb2.OrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActiveOrders(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, '/hft.PrivateService/GetActiveOrders',
            privateService__pb2.OrdersRequest.SerializeToString,
            privateService__pb2.OrdersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetClosedOrders(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, '/hft.PrivateService/GetClosedOrders',
            privateService__pb2.OrdersRequest.SerializeToString,
            privateService__pb2.OrdersResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CancelAllOrders(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, '/hft.PrivateService/CancelAllOrders',
            privateService__pb2.CancelOrdersRequest.SerializeToString,
            privateService__pb2.CancelOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CancelOrder(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, '/hft.PrivateService/CancelOrder',
            privateService__pb2.CancelOrderRequest.SerializeToString,
            privateService__pb2.CancelOrderResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTrades(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, '/hft.PrivateService/GetTrades',
            privateService__pb2.TradesRequest.SerializeToString,
            privateService__pb2.TradesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOrderTrades(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, '/hft.PrivateService/GetOrderTrades',
            privateService__pb2.OrderTradesRequest.SerializeToString,
            privateService__pb2.TradesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetBalanceUpdates(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, '/hft.PrivateService/GetBalanceUpdates',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.BalanceUpdate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetTradeUpdates(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, '/hft.PrivateService/GetTradeUpdates',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.TradeUpdate.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetOperationsHistory(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, '/hft.PrivateService/GetOperationsHistory',
            privateService__pb2.GetOperationsHistoryRequest.SerializeToString,
            privateService__pb2.GetOperationsHistoryResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateDepositAddresses(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, '/hft.PrivateService/CreateDepositAddresses',
            google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            privateService__pb2.CreateDepositAddressesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetDepositAddress(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, '/hft.PrivateService/GetDepositAddress',
            privateService__pb2.GetDepositAddressRequest.SerializeToString,
            privateService__pb2.GetDepositAddressResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateWithdrawal(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, '/hft.PrivateService/CreateWithdrawal',
            privateService__pb2.CreateWithdrawalRequest.SerializeToString,
            privateService__pb2.CreateWithdrawalResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

# Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT! Client and server classes corresponding to protobuf-defined services. Missing associated documentation comment in .proto file. Constructor.          Args:             channel: A grpc.Channel. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. Missing associated documentation comment in .proto file. # This class is part of an EXPERIMENTAL API. Missing associated documentation comment in .proto file.