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

from chirpstack_api.api import device_pb2 as chirpstack__api_dot_api_dot_device__pb2
from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2


class DeviceServiceStub(object):
    """DeviceService is the service providing API methods for managing devices.
    """

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

        Args:
            channel: A grpc.Channel.
        """
        self.Create = channel.unary_unary(
                '/api.DeviceService/Create',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.CreateDeviceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.Get = channel.unary_unary(
                '/api.DeviceService/Get',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceResponse.FromString,
                )
        self.Update = channel.unary_unary(
                '/api.DeviceService/Update',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.UpdateDeviceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.Delete = channel.unary_unary(
                '/api.DeviceService/Delete',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.DeleteDeviceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.List = channel.unary_unary(
                '/api.DeviceService/List',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.ListDevicesRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.ListDevicesResponse.FromString,
                )
        self.CreateKeys = channel.unary_unary(
                '/api.DeviceService/CreateKeys',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.CreateDeviceKeysRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetKeys = channel.unary_unary(
                '/api.DeviceService/GetKeys',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceKeysRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceKeysResponse.FromString,
                )
        self.UpdateKeys = channel.unary_unary(
                '/api.DeviceService/UpdateKeys',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.UpdateDeviceKeysRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.DeleteKeys = channel.unary_unary(
                '/api.DeviceService/DeleteKeys',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.DeleteDeviceKeysRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.FlushDevNonces = channel.unary_unary(
                '/api.DeviceService/FlushDevNonces',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.FlushDevNoncesRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.Activate = channel.unary_unary(
                '/api.DeviceService/Activate',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.ActivateDeviceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.Deactivate = channel.unary_unary(
                '/api.DeviceService/Deactivate',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.DeactivateDeviceRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetActivation = channel.unary_unary(
                '/api.DeviceService/GetActivation',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceActivationRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceActivationResponse.FromString,
                )
        self.GetRandomDevAddr = channel.unary_unary(
                '/api.DeviceService/GetRandomDevAddr',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrResponse.FromString,
                )
        self.GetMetrics = channel.unary_unary(
                '/api.DeviceService/GetMetrics',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsResponse.FromString,
                )
        self.GetLinkMetrics = channel.unary_unary(
                '/api.DeviceService/GetLinkMetrics',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsResponse.FromString,
                )
        self.Enqueue = channel.unary_unary(
                '/api.DeviceService/Enqueue',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.EnqueueDeviceQueueItemRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.EnqueueDeviceQueueItemResponse.FromString,
                )
        self.FlushQueue = channel.unary_unary(
                '/api.DeviceService/FlushQueue',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.FlushDeviceQueueRequest.SerializeToString,
                response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
                )
        self.GetQueue = channel.unary_unary(
                '/api.DeviceService/GetQueue',
                request_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceQueueItemsRequest.SerializeToString,
                response_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceQueueItemsResponse.FromString,
                )


class DeviceServiceServicer(object):
    """DeviceService is the service providing API methods for managing devices.
    """

    def Create(self, request, context):
        """Create the given device.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Get(self, request, context):
        """Get returns the device for the given DevEUI.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Update(self, request, context):
        """Update the given device.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Delete(self, request, context):
        """Delete the device with the given DevEUI.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def List(self, request, context):
        """Get the list of devices.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def CreateKeys(self, request, context):
        """Create the given device-keys.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetKeys(self, request, context):
        """Get the device-keys for the given DevEUI.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def UpdateKeys(self, request, context):
        """Update the given device-keys.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def DeleteKeys(self, request, context):
        """Delete the device-keys for the given DevEUI.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def FlushDevNonces(self, request, context):
        """FlushDevNonces flushes the OTAA device nonces.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Activate(self, request, context):
        """Activate (re)activates the device with the given parameters (for ABP or for importing OTAA activations).
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Deactivate(self, request, context):
        """Deactivate de-activates the device.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetActivation(self, request, context):
        """GetActivation returns the current activation details of the device (OTAA or ABP).
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetRandomDevAddr(self, request, context):
        """GetRandomDevAddr returns a random DevAddr taking the NwkID prefix into account.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetMetrics(self, request, context):
        """GetMetrics returns the device metrics.
        Note that this requires a device-profile with codec and measurements configured.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetLinkMetrics(self, request, context):
        """GetLinkMetrics returns the device link metrics.
        This includes uplinks, downlinks, RSSI, SNR, etc...
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def Enqueue(self, request, context):
        """Enqueue adds the given item to the downlink queue.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def FlushQueue(self, request, context):
        """FlushQueue flushes the downlink device-queue.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')

    def GetQueue(self, request, context):
        """GetQueue returns the downlink device-queue.
        """
        context.set_code(grpc.StatusCode.UNIMPLEMENTED)
        context.set_details('Method not implemented!')
        raise NotImplementedError('Method not implemented!')


def add_DeviceServiceServicer_to_server(servicer, server):
    rpc_method_handlers = {
            'Create': grpc.unary_unary_rpc_method_handler(
                    servicer.Create,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.CreateDeviceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'Get': grpc.unary_unary_rpc_method_handler(
                    servicer.Get,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceResponse.SerializeToString,
            ),
            'Update': grpc.unary_unary_rpc_method_handler(
                    servicer.Update,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.UpdateDeviceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'Delete': grpc.unary_unary_rpc_method_handler(
                    servicer.Delete,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.DeleteDeviceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'List': grpc.unary_unary_rpc_method_handler(
                    servicer.List,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.ListDevicesRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.ListDevicesResponse.SerializeToString,
            ),
            'CreateKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.CreateKeys,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.CreateDeviceKeysRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.GetKeys,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceKeysRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceKeysResponse.SerializeToString,
            ),
            'UpdateKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.UpdateKeys,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.UpdateDeviceKeysRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'DeleteKeys': grpc.unary_unary_rpc_method_handler(
                    servicer.DeleteKeys,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.DeleteDeviceKeysRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'FlushDevNonces': grpc.unary_unary_rpc_method_handler(
                    servicer.FlushDevNonces,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.FlushDevNoncesRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'Activate': grpc.unary_unary_rpc_method_handler(
                    servicer.Activate,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.ActivateDeviceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'Deactivate': grpc.unary_unary_rpc_method_handler(
                    servicer.Deactivate,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.DeactivateDeviceRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetActivation': grpc.unary_unary_rpc_method_handler(
                    servicer.GetActivation,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceActivationRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceActivationResponse.SerializeToString,
            ),
            'GetRandomDevAddr': grpc.unary_unary_rpc_method_handler(
                    servicer.GetRandomDevAddr,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrResponse.SerializeToString,
            ),
            'GetMetrics': grpc.unary_unary_rpc_method_handler(
                    servicer.GetMetrics,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsResponse.SerializeToString,
            ),
            'GetLinkMetrics': grpc.unary_unary_rpc_method_handler(
                    servicer.GetLinkMetrics,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsResponse.SerializeToString,
            ),
            'Enqueue': grpc.unary_unary_rpc_method_handler(
                    servicer.Enqueue,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.EnqueueDeviceQueueItemRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.EnqueueDeviceQueueItemResponse.SerializeToString,
            ),
            'FlushQueue': grpc.unary_unary_rpc_method_handler(
                    servicer.FlushQueue,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.FlushDeviceQueueRequest.FromString,
                    response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
            ),
            'GetQueue': grpc.unary_unary_rpc_method_handler(
                    servicer.GetQueue,
                    request_deserializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceQueueItemsRequest.FromString,
                    response_serializer=chirpstack__api_dot_api_dot_device__pb2.GetDeviceQueueItemsResponse.SerializeToString,
            ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
            'api.DeviceService', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


 # This class is part of an EXPERIMENTAL API.
class DeviceService(object):
    """DeviceService is the service providing API methods for managing devices.
    """

    @staticmethod
    def Create(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, '/api.DeviceService/Create',
            chirpstack__api_dot_api_dot_device__pb2.CreateDeviceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Get(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, '/api.DeviceService/Get',
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Update(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, '/api.DeviceService/Update',
            chirpstack__api_dot_api_dot_device__pb2.UpdateDeviceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Delete(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, '/api.DeviceService/Delete',
            chirpstack__api_dot_api_dot_device__pb2.DeleteDeviceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def List(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, '/api.DeviceService/List',
            chirpstack__api_dot_api_dot_device__pb2.ListDevicesRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.ListDevicesResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def CreateKeys(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, '/api.DeviceService/CreateKeys',
            chirpstack__api_dot_api_dot_device__pb2.CreateDeviceKeysRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetKeys(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, '/api.DeviceService/GetKeys',
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceKeysRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceKeysResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def UpdateKeys(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, '/api.DeviceService/UpdateKeys',
            chirpstack__api_dot_api_dot_device__pb2.UpdateDeviceKeysRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def DeleteKeys(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, '/api.DeviceService/DeleteKeys',
            chirpstack__api_dot_api_dot_device__pb2.DeleteDeviceKeysRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def FlushDevNonces(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, '/api.DeviceService/FlushDevNonces',
            chirpstack__api_dot_api_dot_device__pb2.FlushDevNoncesRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Activate(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, '/api.DeviceService/Activate',
            chirpstack__api_dot_api_dot_device__pb2.ActivateDeviceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Deactivate(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, '/api.DeviceService/Deactivate',
            chirpstack__api_dot_api_dot_device__pb2.DeactivateDeviceRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetActivation(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, '/api.DeviceService/GetActivation',
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceActivationRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceActivationResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetRandomDevAddr(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, '/api.DeviceService/GetRandomDevAddr',
            chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetRandomDevAddrResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetMetrics(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, '/api.DeviceService/GetMetrics',
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceMetricsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetLinkMetrics(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, '/api.DeviceService/GetLinkMetrics',
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceLinkMetricsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def Enqueue(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, '/api.DeviceService/Enqueue',
            chirpstack__api_dot_api_dot_device__pb2.EnqueueDeviceQueueItemRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.EnqueueDeviceQueueItemResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def FlushQueue(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, '/api.DeviceService/FlushQueue',
            chirpstack__api_dot_api_dot_device__pb2.FlushDeviceQueueRequest.SerializeToString,
            google_dot_protobuf_dot_empty__pb2.Empty.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)

    @staticmethod
    def GetQueue(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, '/api.DeviceService/GetQueue',
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceQueueItemsRequest.SerializeToString,
            chirpstack__api_dot_api_dot_device__pb2.GetDeviceQueueItemsResponse.FromString,
            options, channel_credentials,
            insecure, call_credentials, compression, wait_for_ready, timeout, metadata)
