# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: github_com/TheThingsNetwork/api/broker/broker.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from ttn.github_com.gogo.protobuf.gogoproto import gogo_pb2 as github__com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2
from ttn.github_com.TheThingsNetwork.api import api_pb2 as github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2
from ttn.github_com.TheThingsNetwork.api.protocol import protocol_pb2 as github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2
from ttn.github_com.TheThingsNetwork.api.gateway import gateway_pb2 as github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2
from ttn.github_com.TheThingsNetwork.api.trace import trace_pb2 as github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='github_com/TheThingsNetwork/api/broker/broker.proto',
  package='broker',
  syntax='proto3',
  serialized_pb=_b('\n3github_com/TheThingsNetwork/api/broker/broker.proto\x12\x06\x62roker\x1a\x1bgoogle/protobuf/empty.proto\x1a-github_com/gogo/protobuf/gogoproto/gogo.proto\x1a)github_com/TheThingsNetwork/api/api.proto\x1a\x37github_com/TheThingsNetwork/api/protocol/protocol.proto\x1a\x35github_com/TheThingsNetwork/api/gateway/gateway.proto\x1a\x31github_com/TheThingsNetwork/api/trace/trace.proto\"\xe8\x01\n\x0e\x44ownlinkOption\x12\x12\n\nidentifier\x18\x01 \x01(\t\x12!\n\ngateway_id\x18\x02 \x01(\tB\r\xe2\xde\x1f\tGatewayID\x12\r\n\x05score\x18\x03 \x01(\r\x12\x10\n\x08\x64\x65\x61\x64line\x18\x04 \x01(\x03\x12?\n\x16protocol_configuration\x18\x05 \x01(\x0b\x32\x19.protocol.TxConfigurationB\x04\xc8\xde\x1f\x00\x12=\n\x15gateway_configuration\x18\x06 \x01(\x0b\x32\x18.gateway.TxConfigurationB\x04\xc8\xde\x1f\x00\"\xd9\x03\n\rUplinkMessage\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12P\n\x07\x64\x65v_eui\x18\x0b \x01(\x0c\x42?\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12P\n\x07\x61pp_eui\x18\x0c \x01(\x0c\x42?\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12\x19\n\x06\x61pp_id\x18\r \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\x12\x19\n\x06\x64\x65v_id\x18\x0e \x01(\tB\t\xe2\xde\x1f\x05\x44\x65vID\x12\x35\n\x11protocol_metadata\x18\x15 \x01(\x0b\x32\x14.protocol.RxMetadataB\x04\xc8\xde\x1f\x00\x12\x33\n\x10gateway_metadata\x18\x16 \x01(\x0b\x32\x13.gateway.RxMetadataB\x04\xc8\xde\x1f\x00\x12\x30\n\x10\x64ownlink_options\x18\x1f \x03(\x0b\x32\x16.broker.DownlinkOption\x12\x1b\n\x05trace\x18) \x01(\x0b\x32\x0c.trace.Trace\"\xf6\x02\n\x0f\x44ownlinkMessage\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12T\n\x07\x64\x65v_eui\x18\x0b \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12T\n\x07\x61pp_eui\x18\x0c \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12\x19\n\x06\x61pp_id\x18\r \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\x12\x19\n\x06\x64\x65v_id\x18\x0e \x01(\tB\t\xe2\xde\x1f\x05\x44\x65vID\x12/\n\x0f\x64ownlink_option\x18\x15 \x01(\x0b\x32\x16.broker.DownlinkOption\x12\x1b\n\x05trace\x18\x1f \x01(\x0b\x32\x0c.trace.Trace\"\x9d\x01\n\x18\x44\x65viceActivationResponse\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12/\n\x0f\x64ownlink_option\x18\x0b \x01(\x0b\x32\x16.broker.DownlinkOption\x12\x1b\n\x05trace\x18\x15 \x01(\x0b\x32\x0c.trace.Trace\"\xf6\x03\n\x19\x44\x65\x64uplicatedUplinkMessage\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12P\n\x07\x64\x65v_eui\x18\x0b \x01(\x0c\x42?\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12P\n\x07\x61pp_eui\x18\x0c \x01(\x0c\x42?\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12\x19\n\x06\x61pp_id\x18\r \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\x12\x19\n\x06\x64\x65v_id\x18\x0e \x01(\tB\t\xe2\xde\x1f\x05\x44\x65vID\x12\x35\n\x11protocol_metadata\x18\x15 \x01(\x0b\x32\x14.protocol.RxMetadataB\x04\xc8\xde\x1f\x00\x12-\n\x10gateway_metadata\x18\x16 \x03(\x0b\x32\x13.gateway.RxMetadata\x12\x13\n\x0bserver_time\x18\x17 \x01(\x03\x12\x32\n\x11response_template\x18\x1f \x01(\x0b\x32\x17.broker.DownlinkMessage\x12\x1b\n\x05trace\x18) \x01(\x0b\x32\x0c.trace.Trace\"\xf0\x03\n\x17\x44\x65viceActivationRequest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12T\n\x07\x64\x65v_eui\x18\x0b \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12T\n\x07\x61pp_eui\x18\x0c \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12\x35\n\x11protocol_metadata\x18\x15 \x01(\x0b\x32\x14.protocol.RxMetadataB\x04\xc8\xde\x1f\x00\x12\x33\n\x10gateway_metadata\x18\x16 \x01(\x0b\x32\x13.gateway.RxMetadataB\x04\xc8\xde\x1f\x00\x12\x39\n\x13\x61\x63tivation_metadata\x18\x17 \x01(\x0b\x32\x1c.protocol.ActivationMetadata\x12\x30\n\x10\x64ownlink_options\x18\x1f \x03(\x0b\x32\x16.broker.DownlinkOption\x12\x1b\n\x05trace\x18) \x01(\x0b\x32\x0c.trace.Trace\"\xcc\x04\n#DeduplicatedDeviceActivationRequest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12T\n\x07\x64\x65v_eui\x18\x0b \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12T\n\x07\x61pp_eui\x18\x0c \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12\x19\n\x06\x61pp_id\x18\r \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\x12\x19\n\x06\x64\x65v_id\x18\x0e \x01(\tB\t\xe2\xde\x1f\x05\x44\x65vID\x12\x35\n\x11protocol_metadata\x18\x15 \x01(\x0b\x32\x14.protocol.RxMetadataB\x04\xc8\xde\x1f\x00\x12-\n\x10gateway_metadata\x18\x16 \x03(\x0b\x32\x13.gateway.RxMetadata\x12\x39\n\x13\x61\x63tivation_metadata\x18\x17 \x01(\x0b\x32\x1c.protocol.ActivationMetadata\x12\x13\n\x0bserver_time\x18\x18 \x01(\x03\x12;\n\x11response_template\x18\x1f \x01(\x0b\x32 .broker.DeviceActivationResponse\x12\x1b\n\x05trace\x18) \x01(\x0b\x32\x0c.trace.Trace\"\xb3\x02\n\x1a\x41\x63tivationChallengeRequest\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\x12T\n\x07\x64\x65v_eui\x18\x0b \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x44\x65vEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.DevEUI\x12T\n\x07\x61pp_eui\x18\x0c \x01(\x0c\x42\x43\xc8\xde\x1f\x00\xe2\xde\x1f\x06\x41ppEUI\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI\x12\x19\n\x06\x61pp_id\x18\r \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\x12\x19\n\x06\x64\x65v_id\x18\x0e \x01(\tB\t\xe2\xde\x1f\x05\x44\x65vID\"R\n\x1b\x41\x63tivationChallengeResponse\x12\x0f\n\x07payload\x18\x01 \x01(\x0c\x12\"\n\x07message\x18\x02 \x01(\x0b\x32\x11.protocol.Message\"\x12\n\x10SubscribeRequest\"\x0f\n\rStatusRequest\"\xe4\x02\n\x06Status\x12&\n\x06system\x18\x01 \x01(\x0b\x32\x10.api.SystemStatsB\x04\xc8\xde\x1f\x00\x12,\n\tcomponent\x18\x02 \x01(\x0b\x32\x13.api.ComponentStatsB\x04\xc8\xde\x1f\x00\x12\x1a\n\x06uplink\x18\x0b \x01(\x0b\x32\n.api.Rates\x12!\n\ruplink_unique\x18\x0c \x01(\x0b\x32\n.api.Rates\x12\x1c\n\x08\x64ownlink\x18\r \x01(\x0b\x32\n.api.Rates\x12\x1f\n\x0b\x61\x63tivations\x18\x0e \x01(\x0b\x32\n.api.Rates\x12&\n\x12\x61\x63tivations_unique\x18\x0f \x01(\x0b\x32\n.api.Rates\x12\'\n\rdeduplication\x18\x10 \x01(\x0b\x32\x10.api.Percentiles\x12\x19\n\x11\x63onnected_routers\x18\x15 \x01(\r\x12\x1a\n\x12\x63onnected_handlers\x18\x16 \x01(\r\"^\n\x1e\x41pplicationHandlerRegistration\x12\x19\n\x06\x61pp_id\x18\x01 \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\x12!\n\nhandler_id\x18\x02 \x01(\tB\r\xe2\xde\x1f\tHandlerID2\xa2\x02\n\x06\x42roker\x12?\n\tAssociate\x12\x15.broker.UplinkMessage\x1a\x17.broker.DownlinkMessage(\x01\x30\x01\x12J\n\tSubscribe\x12\x18.broker.SubscribeRequest\x1a!.broker.DeduplicatedUplinkMessage0\x01\x12<\n\x07Publish\x12\x17.broker.DownlinkMessage\x1a\x16.google.protobuf.Empty(\x01\x12M\n\x08\x41\x63tivate\x12\x1f.broker.DeviceActivationRequest\x1a .broker.DeviceActivationResponse2\xa1\x01\n\rBrokerManager\x12\\\n\x1aRegisterApplicationHandler\x12&.broker.ApplicationHandlerRegistration\x1a\x16.google.protobuf.Empty\x12\x32\n\tGetStatus\x12\x15.broker.StatusRequest\x1a\x0e.broker.StatusBv\n\x1forg.thethingsnetwork.api.brokerB\x0b\x42rokerProtoP\x01Z&github_com/TheThingsNetwork/api/broker\xaa\x02\x1bTheThingsNetwork.API.Brokerb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,github__com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2.DESCRIPTOR,github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2.DESCRIPTOR,github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2.DESCRIPTOR,github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2.DESCRIPTOR,github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2.DESCRIPTOR,])




_DOWNLINKOPTION = _descriptor.Descriptor(
  name='DownlinkOption',
  full_name='broker.DownlinkOption',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='identifier', full_name='broker.DownlinkOption.identifier', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='gateway_id', full_name='broker.DownlinkOption.gateway_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tGatewayID'))),
    _descriptor.FieldDescriptor(
      name='score', full_name='broker.DownlinkOption.score', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='deadline', full_name='broker.DownlinkOption.deadline', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='protocol_configuration', full_name='broker.DownlinkOption.protocol_configuration', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='gateway_configuration', full_name='broker.DownlinkOption.gateway_configuration', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=346,
  serialized_end=578,
)


_UPLINKMESSAGE = _descriptor.Descriptor(
  name='UplinkMessage',
  full_name='broker.UplinkMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.UplinkMessage.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.UplinkMessage.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='broker.UplinkMessage.dev_eui', index=2,
      number=11, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='broker.UplinkMessage.app_eui', index=3,
      number=12, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='app_id', full_name='broker.UplinkMessage.app_id', index=4,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='dev_id', full_name='broker.UplinkMessage.dev_id', index=5,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))),
    _descriptor.FieldDescriptor(
      name='protocol_metadata', full_name='broker.UplinkMessage.protocol_metadata', index=6,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='gateway_metadata', full_name='broker.UplinkMessage.gateway_metadata', index=7,
      number=22, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='downlink_options', full_name='broker.UplinkMessage.downlink_options', index=8,
      number=31, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='trace', full_name='broker.UplinkMessage.trace', index=9,
      number=41, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=581,
  serialized_end=1054,
)


_DOWNLINKMESSAGE = _descriptor.Descriptor(
  name='DownlinkMessage',
  full_name='broker.DownlinkMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.DownlinkMessage.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.DownlinkMessage.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='broker.DownlinkMessage.dev_eui', index=2,
      number=11, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='broker.DownlinkMessage.app_eui', index=3,
      number=12, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='app_id', full_name='broker.DownlinkMessage.app_id', index=4,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='dev_id', full_name='broker.DownlinkMessage.dev_id', index=5,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))),
    _descriptor.FieldDescriptor(
      name='downlink_option', full_name='broker.DownlinkMessage.downlink_option', index=6,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='trace', full_name='broker.DownlinkMessage.trace', index=7,
      number=31, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1057,
  serialized_end=1431,
)


_DEVICEACTIVATIONRESPONSE = _descriptor.Descriptor(
  name='DeviceActivationResponse',
  full_name='broker.DeviceActivationResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.DeviceActivationResponse.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.DeviceActivationResponse.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='downlink_option', full_name='broker.DeviceActivationResponse.downlink_option', index=2,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='trace', full_name='broker.DeviceActivationResponse.trace', index=3,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1434,
  serialized_end=1591,
)


_DEDUPLICATEDUPLINKMESSAGE = _descriptor.Descriptor(
  name='DeduplicatedUplinkMessage',
  full_name='broker.DeduplicatedUplinkMessage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.DeduplicatedUplinkMessage.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.DeduplicatedUplinkMessage.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='broker.DeduplicatedUplinkMessage.dev_eui', index=2,
      number=11, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='broker.DeduplicatedUplinkMessage.app_eui', index=3,
      number=12, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='app_id', full_name='broker.DeduplicatedUplinkMessage.app_id', index=4,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='dev_id', full_name='broker.DeduplicatedUplinkMessage.dev_id', index=5,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))),
    _descriptor.FieldDescriptor(
      name='protocol_metadata', full_name='broker.DeduplicatedUplinkMessage.protocol_metadata', index=6,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='gateway_metadata', full_name='broker.DeduplicatedUplinkMessage.gateway_metadata', index=7,
      number=22, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='server_time', full_name='broker.DeduplicatedUplinkMessage.server_time', index=8,
      number=23, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='response_template', full_name='broker.DeduplicatedUplinkMessage.response_template', index=9,
      number=31, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='trace', full_name='broker.DeduplicatedUplinkMessage.trace', index=10,
      number=41, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1594,
  serialized_end=2096,
)


_DEVICEACTIVATIONREQUEST = _descriptor.Descriptor(
  name='DeviceActivationRequest',
  full_name='broker.DeviceActivationRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.DeviceActivationRequest.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.DeviceActivationRequest.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='broker.DeviceActivationRequest.dev_eui', index=2,
      number=11, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='broker.DeviceActivationRequest.app_eui', index=3,
      number=12, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='protocol_metadata', full_name='broker.DeviceActivationRequest.protocol_metadata', index=4,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='gateway_metadata', full_name='broker.DeviceActivationRequest.gateway_metadata', index=5,
      number=22, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='activation_metadata', full_name='broker.DeviceActivationRequest.activation_metadata', index=6,
      number=23, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='downlink_options', full_name='broker.DeviceActivationRequest.downlink_options', index=7,
      number=31, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='trace', full_name='broker.DeviceActivationRequest.trace', index=8,
      number=41, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2099,
  serialized_end=2595,
)


_DEDUPLICATEDDEVICEACTIVATIONREQUEST = _descriptor.Descriptor(
  name='DeduplicatedDeviceActivationRequest',
  full_name='broker.DeduplicatedDeviceActivationRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.DeduplicatedDeviceActivationRequest.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.DeduplicatedDeviceActivationRequest.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='broker.DeduplicatedDeviceActivationRequest.dev_eui', index=2,
      number=11, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='broker.DeduplicatedDeviceActivationRequest.app_eui', index=3,
      number=12, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='app_id', full_name='broker.DeduplicatedDeviceActivationRequest.app_id', index=4,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='dev_id', full_name='broker.DeduplicatedDeviceActivationRequest.dev_id', index=5,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))),
    _descriptor.FieldDescriptor(
      name='protocol_metadata', full_name='broker.DeduplicatedDeviceActivationRequest.protocol_metadata', index=6,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='gateway_metadata', full_name='broker.DeduplicatedDeviceActivationRequest.gateway_metadata', index=7,
      number=22, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='activation_metadata', full_name='broker.DeduplicatedDeviceActivationRequest.activation_metadata', index=8,
      number=23, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='server_time', full_name='broker.DeduplicatedDeviceActivationRequest.server_time', index=9,
      number=24, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='response_template', full_name='broker.DeduplicatedDeviceActivationRequest.response_template', index=10,
      number=31, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='trace', full_name='broker.DeduplicatedDeviceActivationRequest.trace', index=11,
      number=41, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2598,
  serialized_end=3186,
)


_ACTIVATIONCHALLENGEREQUEST = _descriptor.Descriptor(
  name='ActivationChallengeRequest',
  full_name='broker.ActivationChallengeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.ActivationChallengeRequest.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.ActivationChallengeRequest.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='dev_eui', full_name='broker.ActivationChallengeRequest.dev_eui', index=2,
      number=11, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='broker.ActivationChallengeRequest.app_eui', index=3,
      number=12, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
    _descriptor.FieldDescriptor(
      name='app_id', full_name='broker.ActivationChallengeRequest.app_id', index=4,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='dev_id', full_name='broker.ActivationChallengeRequest.dev_id', index=5,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3189,
  serialized_end=3496,
)


_ACTIVATIONCHALLENGERESPONSE = _descriptor.Descriptor(
  name='ActivationChallengeResponse',
  full_name='broker.ActivationChallengeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='payload', full_name='broker.ActivationChallengeResponse.payload', index=0,
      number=1, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='broker.ActivationChallengeResponse.message', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3498,
  serialized_end=3580,
)


_SUBSCRIBEREQUEST = _descriptor.Descriptor(
  name='SubscribeRequest',
  full_name='broker.SubscribeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3582,
  serialized_end=3600,
)


_STATUSREQUEST = _descriptor.Descriptor(
  name='StatusRequest',
  full_name='broker.StatusRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3602,
  serialized_end=3617,
)


_STATUS = _descriptor.Descriptor(
  name='Status',
  full_name='broker.Status',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='system', full_name='broker.Status.system', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='component', full_name='broker.Status.component', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
    _descriptor.FieldDescriptor(
      name='uplink', full_name='broker.Status.uplink', index=2,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='uplink_unique', full_name='broker.Status.uplink_unique', index=3,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='downlink', full_name='broker.Status.downlink', index=4,
      number=13, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='activations', full_name='broker.Status.activations', index=5,
      number=14, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='activations_unique', full_name='broker.Status.activations_unique', index=6,
      number=15, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='deduplication', full_name='broker.Status.deduplication', index=7,
      number=16, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='connected_routers', full_name='broker.Status.connected_routers', index=8,
      number=21, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='connected_handlers', full_name='broker.Status.connected_handlers', index=9,
      number=22, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3620,
  serialized_end=3976,
)


_APPLICATIONHANDLERREGISTRATION = _descriptor.Descriptor(
  name='ApplicationHandlerRegistration',
  full_name='broker.ApplicationHandlerRegistration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='app_id', full_name='broker.ApplicationHandlerRegistration.app_id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='handler_id', full_name='broker.ApplicationHandlerRegistration.handler_id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tHandlerID'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3978,
  serialized_end=4072,
)

_DOWNLINKOPTION.fields_by_name['protocol_configuration'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._TXCONFIGURATION
_DOWNLINKOPTION.fields_by_name['gateway_configuration'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2._TXCONFIGURATION
_UPLINKMESSAGE.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_UPLINKMESSAGE.fields_by_name['protocol_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._RXMETADATA
_UPLINKMESSAGE.fields_by_name['gateway_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2._RXMETADATA
_UPLINKMESSAGE.fields_by_name['downlink_options'].message_type = _DOWNLINKOPTION
_UPLINKMESSAGE.fields_by_name['trace'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2._TRACE
_DOWNLINKMESSAGE.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_DOWNLINKMESSAGE.fields_by_name['downlink_option'].message_type = _DOWNLINKOPTION
_DOWNLINKMESSAGE.fields_by_name['trace'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2._TRACE
_DEVICEACTIVATIONRESPONSE.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_DEVICEACTIVATIONRESPONSE.fields_by_name['downlink_option'].message_type = _DOWNLINKOPTION
_DEVICEACTIVATIONRESPONSE.fields_by_name['trace'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2._TRACE
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['protocol_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._RXMETADATA
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['gateway_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2._RXMETADATA
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['response_template'].message_type = _DOWNLINKMESSAGE
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['trace'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2._TRACE
_DEVICEACTIVATIONREQUEST.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_DEVICEACTIVATIONREQUEST.fields_by_name['protocol_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._RXMETADATA
_DEVICEACTIVATIONREQUEST.fields_by_name['gateway_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2._RXMETADATA
_DEVICEACTIVATIONREQUEST.fields_by_name['activation_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._ACTIVATIONMETADATA
_DEVICEACTIVATIONREQUEST.fields_by_name['downlink_options'].message_type = _DOWNLINKOPTION
_DEVICEACTIVATIONREQUEST.fields_by_name['trace'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2._TRACE
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['protocol_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._RXMETADATA
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['gateway_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_gateway_dot_gateway__pb2._RXMETADATA
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['activation_metadata'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._ACTIVATIONMETADATA
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['response_template'].message_type = _DEVICEACTIVATIONRESPONSE
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['trace'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_trace_dot_trace__pb2._TRACE
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_ACTIVATIONCHALLENGERESPONSE.fields_by_name['message'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_protocol_dot_protocol__pb2._MESSAGE
_STATUS.fields_by_name['system'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._SYSTEMSTATS
_STATUS.fields_by_name['component'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._COMPONENTSTATS
_STATUS.fields_by_name['uplink'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._RATES
_STATUS.fields_by_name['uplink_unique'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._RATES
_STATUS.fields_by_name['downlink'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._RATES
_STATUS.fields_by_name['activations'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._RATES
_STATUS.fields_by_name['activations_unique'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._RATES
_STATUS.fields_by_name['deduplication'].message_type = github__com_dot_TheThingsNetwork_dot_api_dot_api__pb2._PERCENTILES
DESCRIPTOR.message_types_by_name['DownlinkOption'] = _DOWNLINKOPTION
DESCRIPTOR.message_types_by_name['UplinkMessage'] = _UPLINKMESSAGE
DESCRIPTOR.message_types_by_name['DownlinkMessage'] = _DOWNLINKMESSAGE
DESCRIPTOR.message_types_by_name['DeviceActivationResponse'] = _DEVICEACTIVATIONRESPONSE
DESCRIPTOR.message_types_by_name['DeduplicatedUplinkMessage'] = _DEDUPLICATEDUPLINKMESSAGE
DESCRIPTOR.message_types_by_name['DeviceActivationRequest'] = _DEVICEACTIVATIONREQUEST
DESCRIPTOR.message_types_by_name['DeduplicatedDeviceActivationRequest'] = _DEDUPLICATEDDEVICEACTIVATIONREQUEST
DESCRIPTOR.message_types_by_name['ActivationChallengeRequest'] = _ACTIVATIONCHALLENGEREQUEST
DESCRIPTOR.message_types_by_name['ActivationChallengeResponse'] = _ACTIVATIONCHALLENGERESPONSE
DESCRIPTOR.message_types_by_name['SubscribeRequest'] = _SUBSCRIBEREQUEST
DESCRIPTOR.message_types_by_name['StatusRequest'] = _STATUSREQUEST
DESCRIPTOR.message_types_by_name['Status'] = _STATUS
DESCRIPTOR.message_types_by_name['ApplicationHandlerRegistration'] = _APPLICATIONHANDLERREGISTRATION
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

DownlinkOption = _reflection.GeneratedProtocolMessageType('DownlinkOption', (_message.Message,), dict(
  DESCRIPTOR = _DOWNLINKOPTION,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.DownlinkOption)
  ))
_sym_db.RegisterMessage(DownlinkOption)

UplinkMessage = _reflection.GeneratedProtocolMessageType('UplinkMessage', (_message.Message,), dict(
  DESCRIPTOR = _UPLINKMESSAGE,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.UplinkMessage)
  ))
_sym_db.RegisterMessage(UplinkMessage)

DownlinkMessage = _reflection.GeneratedProtocolMessageType('DownlinkMessage', (_message.Message,), dict(
  DESCRIPTOR = _DOWNLINKMESSAGE,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.DownlinkMessage)
  ))
_sym_db.RegisterMessage(DownlinkMessage)

DeviceActivationResponse = _reflection.GeneratedProtocolMessageType('DeviceActivationResponse', (_message.Message,), dict(
  DESCRIPTOR = _DEVICEACTIVATIONRESPONSE,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.DeviceActivationResponse)
  ))
_sym_db.RegisterMessage(DeviceActivationResponse)

DeduplicatedUplinkMessage = _reflection.GeneratedProtocolMessageType('DeduplicatedUplinkMessage', (_message.Message,), dict(
  DESCRIPTOR = _DEDUPLICATEDUPLINKMESSAGE,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.DeduplicatedUplinkMessage)
  ))
_sym_db.RegisterMessage(DeduplicatedUplinkMessage)

DeviceActivationRequest = _reflection.GeneratedProtocolMessageType('DeviceActivationRequest', (_message.Message,), dict(
  DESCRIPTOR = _DEVICEACTIVATIONREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.DeviceActivationRequest)
  ))
_sym_db.RegisterMessage(DeviceActivationRequest)

DeduplicatedDeviceActivationRequest = _reflection.GeneratedProtocolMessageType('DeduplicatedDeviceActivationRequest', (_message.Message,), dict(
  DESCRIPTOR = _DEDUPLICATEDDEVICEACTIVATIONREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.DeduplicatedDeviceActivationRequest)
  ))
_sym_db.RegisterMessage(DeduplicatedDeviceActivationRequest)

ActivationChallengeRequest = _reflection.GeneratedProtocolMessageType('ActivationChallengeRequest', (_message.Message,), dict(
  DESCRIPTOR = _ACTIVATIONCHALLENGEREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.ActivationChallengeRequest)
  ))
_sym_db.RegisterMessage(ActivationChallengeRequest)

ActivationChallengeResponse = _reflection.GeneratedProtocolMessageType('ActivationChallengeResponse', (_message.Message,), dict(
  DESCRIPTOR = _ACTIVATIONCHALLENGERESPONSE,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.ActivationChallengeResponse)
  ))
_sym_db.RegisterMessage(ActivationChallengeResponse)

SubscribeRequest = _reflection.GeneratedProtocolMessageType('SubscribeRequest', (_message.Message,), dict(
  DESCRIPTOR = _SUBSCRIBEREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.SubscribeRequest)
  ))
_sym_db.RegisterMessage(SubscribeRequest)

StatusRequest = _reflection.GeneratedProtocolMessageType('StatusRequest', (_message.Message,), dict(
  DESCRIPTOR = _STATUSREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.StatusRequest)
  ))
_sym_db.RegisterMessage(StatusRequest)

Status = _reflection.GeneratedProtocolMessageType('Status', (_message.Message,), dict(
  DESCRIPTOR = _STATUS,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.Status)
  ))
_sym_db.RegisterMessage(Status)

ApplicationHandlerRegistration = _reflection.GeneratedProtocolMessageType('ApplicationHandlerRegistration', (_message.Message,), dict(
  DESCRIPTOR = _APPLICATIONHANDLERREGISTRATION,
  __module__ = 'github_com.TheThingsNetwork.api.broker.broker_pb2'
  # @@protoc_insertion_point(class_scope:broker.ApplicationHandlerRegistration)
  ))
_sym_db.RegisterMessage(ApplicationHandlerRegistration)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\037org.thethingsnetwork.api.brokerB\013BrokerProtoP\001Z&github_com/TheThingsNetwork/api/broker\252\002\033TheThingsNetwork.API.Broker'))
_DOWNLINKOPTION.fields_by_name['gateway_id'].has_options = True
_DOWNLINKOPTION.fields_by_name['gateway_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tGatewayID'))
_DOWNLINKOPTION.fields_by_name['protocol_configuration'].has_options = True
_DOWNLINKOPTION.fields_by_name['protocol_configuration']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_DOWNLINKOPTION.fields_by_name['gateway_configuration'].has_options = True
_DOWNLINKOPTION.fields_by_name['gateway_configuration']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_UPLINKMESSAGE.fields_by_name['dev_eui'].has_options = True
_UPLINKMESSAGE.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_UPLINKMESSAGE.fields_by_name['app_eui'].has_options = True
_UPLINKMESSAGE.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_UPLINKMESSAGE.fields_by_name['app_id'].has_options = True
_UPLINKMESSAGE.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_UPLINKMESSAGE.fields_by_name['dev_id'].has_options = True
_UPLINKMESSAGE.fields_by_name['dev_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))
_UPLINKMESSAGE.fields_by_name['protocol_metadata'].has_options = True
_UPLINKMESSAGE.fields_by_name['protocol_metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_UPLINKMESSAGE.fields_by_name['gateway_metadata'].has_options = True
_UPLINKMESSAGE.fields_by_name['gateway_metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_DOWNLINKMESSAGE.fields_by_name['dev_eui'].has_options = True
_DOWNLINKMESSAGE.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_DOWNLINKMESSAGE.fields_by_name['app_eui'].has_options = True
_DOWNLINKMESSAGE.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_DOWNLINKMESSAGE.fields_by_name['app_id'].has_options = True
_DOWNLINKMESSAGE.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_DOWNLINKMESSAGE.fields_by_name['dev_id'].has_options = True
_DOWNLINKMESSAGE.fields_by_name['dev_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['dev_eui'].has_options = True
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['app_eui'].has_options = True
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['app_id'].has_options = True
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['dev_id'].has_options = True
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['dev_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['protocol_metadata'].has_options = True
_DEDUPLICATEDUPLINKMESSAGE.fields_by_name['protocol_metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_DEVICEACTIVATIONREQUEST.fields_by_name['dev_eui'].has_options = True
_DEVICEACTIVATIONREQUEST.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_DEVICEACTIVATIONREQUEST.fields_by_name['app_eui'].has_options = True
_DEVICEACTIVATIONREQUEST.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_DEVICEACTIVATIONREQUEST.fields_by_name['protocol_metadata'].has_options = True
_DEVICEACTIVATIONREQUEST.fields_by_name['protocol_metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_DEVICEACTIVATIONREQUEST.fields_by_name['gateway_metadata'].has_options = True
_DEVICEACTIVATIONREQUEST.fields_by_name['gateway_metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['dev_eui'].has_options = True
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['app_eui'].has_options = True
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['app_id'].has_options = True
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['dev_id'].has_options = True
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['dev_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['protocol_metadata'].has_options = True
_DEDUPLICATEDDEVICEACTIVATIONREQUEST.fields_by_name['protocol_metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['dev_eui'].has_options = True
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['dev_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006DevEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.DevEUI'))
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['app_eui'].has_options = True
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000\342\336\037\006AppEUI\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['app_id'].has_options = True
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['dev_id'].has_options = True
_ACTIVATIONCHALLENGEREQUEST.fields_by_name['dev_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005DevID'))
_STATUS.fields_by_name['system'].has_options = True
_STATUS.fields_by_name['system']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_STATUS.fields_by_name['component'].has_options = True
_STATUS.fields_by_name['component']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_APPLICATIONHANDLERREGISTRATION.fields_by_name['app_id'].has_options = True
_APPLICATIONHANDLERREGISTRATION.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_APPLICATIONHANDLERREGISTRATION.fields_by_name['handler_id'].has_options = True
_APPLICATIONHANDLERREGISTRATION.fields_by_name['handler_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tHandlerID'))

_BROKER = _descriptor.ServiceDescriptor(
  name='Broker',
  full_name='broker.Broker',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=4075,
  serialized_end=4365,
  methods=[
  _descriptor.MethodDescriptor(
    name='Associate',
    full_name='broker.Broker.Associate',
    index=0,
    containing_service=None,
    input_type=_UPLINKMESSAGE,
    output_type=_DOWNLINKMESSAGE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Subscribe',
    full_name='broker.Broker.Subscribe',
    index=1,
    containing_service=None,
    input_type=_SUBSCRIBEREQUEST,
    output_type=_DEDUPLICATEDUPLINKMESSAGE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Publish',
    full_name='broker.Broker.Publish',
    index=2,
    containing_service=None,
    input_type=_DOWNLINKMESSAGE,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Activate',
    full_name='broker.Broker.Activate',
    index=3,
    containing_service=None,
    input_type=_DEVICEACTIVATIONREQUEST,
    output_type=_DEVICEACTIVATIONRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_BROKER)

DESCRIPTOR.services_by_name['Broker'] = _BROKER


_BROKERMANAGER = _descriptor.ServiceDescriptor(
  name='BrokerManager',
  full_name='broker.BrokerManager',
  file=DESCRIPTOR,
  index=1,
  options=None,
  serialized_start=4368,
  serialized_end=4529,
  methods=[
  _descriptor.MethodDescriptor(
    name='RegisterApplicationHandler',
    full_name='broker.BrokerManager.RegisterApplicationHandler',
    index=0,
    containing_service=None,
    input_type=_APPLICATIONHANDLERREGISTRATION,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetStatus',
    full_name='broker.BrokerManager.GetStatus',
    index=1,
    containing_service=None,
    input_type=_STATUSREQUEST,
    output_type=_STATUS,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_BROKERMANAGER)

DESCRIPTOR.services_by_name['BrokerManager'] = _BROKERMANAGER

try:
  # THESE ELEMENTS WILL BE DEPRECATED.
  # Please use the generated *_pb2_grpc.py files instead.
  import grpc
  from grpc.beta import implementations as beta_implementations
  from grpc.beta import interfaces as beta_interfaces
  from grpc.framework.common import cardinality
  from grpc.framework.interfaces.face import utilities as face_utilities


  class BrokerStub(object):
    """The Broker service provides pure network functionality
    """

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

      Args:
        channel: A grpc.Channel.
      """
      self.Associate = channel.stream_stream(
          '/broker.Broker/Associate',
          request_serializer=UplinkMessage.SerializeToString,
          response_deserializer=DownlinkMessage.FromString,
          )
      self.Subscribe = channel.unary_stream(
          '/broker.Broker/Subscribe',
          request_serializer=SubscribeRequest.SerializeToString,
          response_deserializer=DeduplicatedUplinkMessage.FromString,
          )
      self.Publish = channel.stream_unary(
          '/broker.Broker/Publish',
          request_serializer=DownlinkMessage.SerializeToString,
          response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          )
      self.Activate = channel.unary_unary(
          '/broker.Broker/Activate',
          request_serializer=DeviceActivationRequest.SerializeToString,
          response_deserializer=DeviceActivationResponse.FromString,
          )


  class BrokerServicer(object):
    """The Broker service provides pure network functionality
    """

    def Associate(self, request_iterator, context):
      """Router initiates an Association with the Broker.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Subscribe(self, request, context):
      """Handler subscribes to uplink stream.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Publish(self, request_iterator, context):
      """Handler initiates downlink stream.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Activate(self, request, context):
      """Router requests device activation
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_BrokerServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Associate': grpc.stream_stream_rpc_method_handler(
            servicer.Associate,
            request_deserializer=UplinkMessage.FromString,
            response_serializer=DownlinkMessage.SerializeToString,
        ),
        'Subscribe': grpc.unary_stream_rpc_method_handler(
            servicer.Subscribe,
            request_deserializer=SubscribeRequest.FromString,
            response_serializer=DeduplicatedUplinkMessage.SerializeToString,
        ),
        'Publish': grpc.stream_unary_rpc_method_handler(
            servicer.Publish,
            request_deserializer=DownlinkMessage.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        'Activate': grpc.unary_unary_rpc_method_handler(
            servicer.Activate,
            request_deserializer=DeviceActivationRequest.FromString,
            response_serializer=DeviceActivationResponse.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'broker.Broker', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class BrokerManagerStub(object):
    """The BrokerManager service provides configuration and monitoring functionality
    """

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

      Args:
        channel: A grpc.Channel.
      """
      self.RegisterApplicationHandler = channel.unary_unary(
          '/broker.BrokerManager/RegisterApplicationHandler',
          request_serializer=ApplicationHandlerRegistration.SerializeToString,
          response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          )
      self.GetStatus = channel.unary_unary(
          '/broker.BrokerManager/GetStatus',
          request_serializer=StatusRequest.SerializeToString,
          response_deserializer=Status.FromString,
          )


  class BrokerManagerServicer(object):
    """The BrokerManager service provides configuration and monitoring functionality
    """

    def RegisterApplicationHandler(self, request, context):
      """Handler announces a new application to Broker. This is a temporary method that will be removed
      when we can push updates from the Discovery service to the routing services.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetStatus(self, request, context):
      """Network operator requests Broker status
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_BrokerManagerServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'RegisterApplicationHandler': grpc.unary_unary_rpc_method_handler(
            servicer.RegisterApplicationHandler,
            request_deserializer=ApplicationHandlerRegistration.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        'GetStatus': grpc.unary_unary_rpc_method_handler(
            servicer.GetStatus,
            request_deserializer=StatusRequest.FromString,
            response_serializer=Status.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'broker.BrokerManager', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class BetaBrokerServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The Broker service provides pure network functionality
    """
    def Associate(self, request_iterator, context):
      """Router initiates an Association with the Broker.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Subscribe(self, request, context):
      """Handler subscribes to uplink stream.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Publish(self, request_iterator, context):
      """Handler initiates downlink stream.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Activate(self, request, context):
      """Router requests device activation
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaBrokerStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The Broker service provides pure network functionality
    """
    def Associate(self, request_iterator, timeout, metadata=None, with_call=False, protocol_options=None):
      """Router initiates an Association with the Broker.
      """
      raise NotImplementedError()
    def Subscribe(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Handler subscribes to uplink stream.
      """
      raise NotImplementedError()
    def Publish(self, request_iterator, timeout, metadata=None, with_call=False, protocol_options=None):
      """Handler initiates downlink stream.
      """
      raise NotImplementedError()
    Publish.future = None
    def Activate(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Router requests device activation
      """
      raise NotImplementedError()
    Activate.future = None


  def beta_create_Broker_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('broker.Broker', 'Activate'): DeviceActivationRequest.FromString,
      ('broker.Broker', 'Associate'): UplinkMessage.FromString,
      ('broker.Broker', 'Publish'): DownlinkMessage.FromString,
      ('broker.Broker', 'Subscribe'): SubscribeRequest.FromString,
    }
    response_serializers = {
      ('broker.Broker', 'Activate'): DeviceActivationResponse.SerializeToString,
      ('broker.Broker', 'Associate'): DownlinkMessage.SerializeToString,
      ('broker.Broker', 'Publish'): google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ('broker.Broker', 'Subscribe'): DeduplicatedUplinkMessage.SerializeToString,
    }
    method_implementations = {
      ('broker.Broker', 'Activate'): face_utilities.unary_unary_inline(servicer.Activate),
      ('broker.Broker', 'Associate'): face_utilities.stream_stream_inline(servicer.Associate),
      ('broker.Broker', 'Publish'): face_utilities.stream_unary_inline(servicer.Publish),
      ('broker.Broker', 'Subscribe'): face_utilities.unary_stream_inline(servicer.Subscribe),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_Broker_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('broker.Broker', 'Activate'): DeviceActivationRequest.SerializeToString,
      ('broker.Broker', 'Associate'): UplinkMessage.SerializeToString,
      ('broker.Broker', 'Publish'): DownlinkMessage.SerializeToString,
      ('broker.Broker', 'Subscribe'): SubscribeRequest.SerializeToString,
    }
    response_deserializers = {
      ('broker.Broker', 'Activate'): DeviceActivationResponse.FromString,
      ('broker.Broker', 'Associate'): DownlinkMessage.FromString,
      ('broker.Broker', 'Publish'): google_dot_protobuf_dot_empty__pb2.Empty.FromString,
      ('broker.Broker', 'Subscribe'): DeduplicatedUplinkMessage.FromString,
    }
    cardinalities = {
      'Activate': cardinality.Cardinality.UNARY_UNARY,
      'Associate': cardinality.Cardinality.STREAM_STREAM,
      'Publish': cardinality.Cardinality.STREAM_UNARY,
      'Subscribe': cardinality.Cardinality.UNARY_STREAM,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'broker.Broker', cardinalities, options=stub_options)


  class BetaBrokerManagerServicer(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The BrokerManager service provides configuration and monitoring functionality
    """
    def RegisterApplicationHandler(self, request, context):
      """Handler announces a new application to Broker. This is a temporary method that will be removed
      when we can push updates from the Discovery service to the routing services.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetStatus(self, request, context):
      """Network operator requests Broker status
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaBrokerManagerStub(object):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The BrokerManager service provides configuration and monitoring functionality
    """
    def RegisterApplicationHandler(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Handler announces a new application to Broker. This is a temporary method that will be removed
      when we can push updates from the Discovery service to the routing services.
      """
      raise NotImplementedError()
    RegisterApplicationHandler.future = None
    def GetStatus(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Network operator requests Broker status
      """
      raise NotImplementedError()
    GetStatus.future = None


  def beta_create_BrokerManager_server(servicer, pool=None, pool_size=None, default_timeout=None, maximum_timeout=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('broker.BrokerManager', 'GetStatus'): StatusRequest.FromString,
      ('broker.BrokerManager', 'RegisterApplicationHandler'): ApplicationHandlerRegistration.FromString,
    }
    response_serializers = {
      ('broker.BrokerManager', 'GetStatus'): Status.SerializeToString,
      ('broker.BrokerManager', 'RegisterApplicationHandler'): google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
    }
    method_implementations = {
      ('broker.BrokerManager', 'GetStatus'): face_utilities.unary_unary_inline(servicer.GetStatus),
      ('broker.BrokerManager', 'RegisterApplicationHandler'): face_utilities.unary_unary_inline(servicer.RegisterApplicationHandler),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


  def beta_create_BrokerManager_stub(channel, host=None, metadata_transformer=None, pool=None, pool_size=None):
    """The Beta API is deprecated for 0.15.0 and later.

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('broker.BrokerManager', 'GetStatus'): StatusRequest.SerializeToString,
      ('broker.BrokerManager', 'RegisterApplicationHandler'): ApplicationHandlerRegistration.SerializeToString,
    }
    response_deserializers = {
      ('broker.BrokerManager', 'GetStatus'): Status.FromString,
      ('broker.BrokerManager', 'RegisterApplicationHandler'): google_dot_protobuf_dot_empty__pb2.Empty.FromString,
    }
    cardinalities = {
      'GetStatus': cardinality.Cardinality.UNARY_UNARY,
      'RegisterApplicationHandler': cardinality.Cardinality.UNARY_UNARY,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'broker.BrokerManager', cardinalities, options=stub_options)
except ImportError:
  pass
# @@protoc_insertion_point(module_scope)
