text: # -*- coding: utf-8 -*-
  # Generated by the protocol buffer compiler.  DO NOT EDIT!
  # source: chirpstack-api/gw/gw.proto
  
  from google.protobuf.internal import enum_type_wrapper
  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
  # @@protoc_insertion_point(imports)
  
  _sym_db = _symbol_database.Default()
  
  
  from chirpstack_api.common import common_pb2 as chirpstack__api_dot_common_dot_common__pb2
  from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
  from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
  
  
  DESCRIPTOR = _descriptor.FileDescriptor(
    name='chirpstack-api/gw/gw.proto',
    package='gw',
    syntax='proto3',
    serialized_options=b'Z*github.com/brocaar/chirpstack-api/go/v3/gw',
    create_key=_descriptor._internal_create_key,
    serialized_pb=b'\n\x1a\x63hirpstack-api/gw/gw.proto\x12\x02gw\x1a\"chirpstack-api/common/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/duration.proto\"\xde\x01\n\x0cUplinkTXInfo\x12\x11\n\tfrequency\x18\x01 \x01(\r\x12&\n\nmodulation\x18\x02 \x01(\x0e\x32\x12.common.Modulation\x12J\n\x14lora_modulation_info\x18\x03 \x01(\x0b\x32\x16.gw.LoRaModulationInfoH\x00R\x12loRaModulationInfo\x12\x34\n\x13\x66sk_modulation_info\x18\x04 \x01(\x0b\x32\x15.gw.FSKModulationInfoH\x00\x42\x11\n\x0fmodulation_info\"t\n\x12LoRaModulationInfo\x12\x11\n\tbandwidth\x18\x01 \x01(\r\x12\x18\n\x10spreading_factor\x18\x02 \x01(\r\x12\x11\n\tcode_rate\x18\x03 \x01(\t\x12\x1e\n\x16polarization_inversion\x18\x04 \x01(\x08\"B\n\x11\x46SKModulationInfo\x12\x1b\n\x13\x66requency_deviation\x18\x01 \x01(\r\x12\x10\n\x08\x64\x61tarate\x18\x02 \x01(\r\"k\n\x16\x45ncryptedFineTimestamp\x12\x15\n\raes_key_index\x18\x01 \x01(\r\x12!\n\x0c\x65ncrypted_ns\x18\x02 \x01(\x0cR\x0b\x65ncryptedNS\x12\x17\n\x07\x66pga_id\x18\x03 \x01(\x0cR\x06\x66pgaID\">\n\x12PlainFineTimestamp\x12(\n\x04time\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xa9\x03\n\x0cGatewayStats\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\n\n\x02ip\x18\t \x01(\t\x12(\n\x04time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\"\n\x08location\x18\x03 \x01(\x0b\x32\x10.common.Location\x12\x16\n\x0e\x63onfig_version\x18\x04 \x01(\t\x12\x1b\n\x13rx_packets_received\x18\x05 \x01(\r\x12\x33\n\x16rx_packets_received_ok\x18\x06 \x01(\rR\x13rxPacketsReceivedOK\x12\x1b\n\x13tx_packets_received\x18\x07 \x01(\r\x12\x1a\n\x12tx_packets_emitted\x18\x08 \x01(\r\x12\x31\n\tmeta_data\x18\n \x03(\x0b\x32\x1e.gw.GatewayStats.MetaDataEntry\x12\x19\n\x08stats_id\x18\x0b \x01(\x0cR\x07statsID\x1a/\n\rMetaDataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\xcd\x04\n\x0cUplinkRXInfo\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12(\n\x04time\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12J\n\x14time_since_gps_epoch\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11timeSinceGPSEpoch\x12\x0c\n\x04rssi\x18\x05 \x01(\x05\x12\x19\n\x08lora_snr\x18\x06 \x01(\x01R\x07loRaSNR\x12\x0f\n\x07\x63hannel\x18\x07 \x01(\r\x12\x10\n\x08rf_chain\x18\x08 \x01(\r\x12\r\n\x05\x62oard\x18\t \x01(\r\x12\x0f\n\x07\x61ntenna\x18\n \x01(\r\x12\"\n\x08location\x18\x0b \x01(\x0b\x32\x10.common.Location\x12\x32\n\x13\x66ine_timestamp_type\x18\x0c \x01(\x0e\x32\x15.gw.FineTimestampType\x12>\n\x18\x65ncrypted_fine_timestamp\x18\r \x01(\x0b\x32\x1a.gw.EncryptedFineTimestampH\x00\x12\x36\n\x14plain_fine_timestamp\x18\x0e \x01(\x0b\x32\x16.gw.PlainFineTimestampH\x00\x12\x0f\n\x07\x63ontext\x18\x0f \x01(\x0c\x12\x1b\n\tuplink_id\x18\x10 \x01(\x0cR\x08uplinkID\x12,\n\ncrc_status\x18\x11 \x01(\x0e\x32\r.gw.CRCStatusR\tcrcStatusB\x10\n\x0e\x66ine_timestamp\"\x9b\x04\n\x0e\x44ownlinkTXInfo\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\x11\n\tfrequency\x18\x05 \x01(\r\x12\r\n\x05power\x18\x06 \x01(\x05\x12&\n\nmodulation\x18\x07 \x01(\x0e\x32\x12.common.Modulation\x12J\n\x14lora_modulation_info\x18\x08 \x01(\x0b\x32\x16.gw.LoRaModulationInfoH\x00R\x12loRaModulationInfo\x12\x34\n\x13\x66sk_modulation_info\x18\t \x01(\x0b\x32\x15.gw.FSKModulationInfoH\x00\x12\r\n\x05\x62oard\x18\n \x01(\r\x12\x0f\n\x07\x61ntenna\x18\x0b \x01(\r\x12\"\n\x06timing\x18\x0c \x01(\x0e\x32\x12.gw.DownlinkTiming\x12<\n\x17immediately_timing_info\x18\r \x01(\x0b\x32\x19.gw.ImmediatelyTimingInfoH\x01\x12\x30\n\x11\x64\x65lay_timing_info\x18\x0e \x01(\x0b\x32\x13.gw.DelayTimingInfoH\x01\x12\x37\n\x15gps_epoch_timing_info\x18\x0f \x01(\x0b\x32\x16.gw.GPSEpochTimingInfoH\x01\x12\x0f\n\x07\x63ontext\x18\x10 \x01(\x0c\x42\x11\n\x0fmodulation_infoB\r\n\x0btiming_info\"\x17\n\x15ImmediatelyTimingInfo\";\n\x0f\x44\x65layTimingInfo\x12(\n\x05\x64\x65lay\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\"`\n\x12GPSEpochTimingInfo\x12J\n\x14time_since_gps_epoch\x18\x01 \x01(\x0b\x32\x19.google.protobuf.DurationR\x11timeSinceGPSEpoch\"h\n\x0bUplinkFrame\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTXInfo\x12!\n\x07rx_info\x18\x03 \x01(\x0b\x32\x10.gw.UplinkRXInfo\"k\n\x0eUplinkFrameSet\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12!\n\x07tx_info\x18\x02 \x01(\x0b\x32\x10.gw.UplinkTXInfo\x12!\n\x07rx_info\x18\x03 \x03(\x0b\x32\x10.gw.UplinkRXInfo\"\xbe\x01\n\rDownlinkFrame\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12#\n\x07tx_info\x18\x02 \x01(\x0b\x32\x12.gw.DownlinkTXInfo\x12\r\n\x05token\x18\x03 \x01(\r\x12\x1f\n\x0b\x64ownlink_id\x18\x04 \x01(\x0cR\ndownlinkID\x12$\n\x05items\x18\x05 \x03(\x0b\x32\x15.gw.DownlinkFrameItem\x12\x1d\n\ngateway_id\x18\x06 \x01(\x0cR\tgatewayID\"M\n\x11\x44ownlinkFrameItem\x12\x13\n\x0bphy_payload\x18\x01 \x01(\x0c\x12#\n\x07tx_info\x18\x02 \x01(\x0b\x32\x12.gw.DownlinkTXInfo\"\x93\x01\n\rDownlinkTXAck\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\r\n\x05token\x18\x02 \x01(\r\x12\r\n\x05\x65rror\x18\x03 \x01(\t\x12\x1f\n\x0b\x64ownlink_id\x18\x04 \x01(\x0cR\ndownlinkID\x12$\n\x05items\x18\x05 \x03(\x0b\x32\x15.gw.DownlinkTXAckItem\"4\n\x11\x44ownlinkTXAckItem\x12\x1f\n\x06status\x18\x01 \x01(\x0e\x32\x0f.gw.TxAckStatus\"r\n\x14GatewayConfiguration\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\x0f\n\x07version\x18\x02 \x01(\t\x12*\n\x08\x63hannels\x18\x03 \x03(\x0b\x32\x18.gw.ChannelConfiguration\"\x96\x02\n\x14\x43hannelConfiguration\x12\x11\n\tfrequency\x18\x01 \x01(\r\x12&\n\nmodulation\x18\x02 \x01(\x0e\x32\x12.common.Modulation\x12P\n\x16lora_modulation_config\x18\x03 \x01(\x0b\x32\x18.gw.LoRaModulationConfigH\x00R\x14loRaModulationConfig\x12\x38\n\x15\x66sk_modulation_config\x18\x04 \x01(\x0b\x32\x17.gw.FSKModulationConfigH\x00\x12\r\n\x05\x62oard\x18\x05 \x01(\r\x12\x13\n\x0b\x64\x65modulator\x18\x06 \x01(\rB\x13\n\x11modulation_config\"D\n\x14LoRaModulationConfig\x12\x11\n\tbandwidth\x18\x01 \x01(\r\x12\x19\n\x11spreading_factors\x18\x02 \x03(\r\"9\n\x13\x46SKModulationConfig\x12\x11\n\tbandwidth\x18\x01 \x01(\r\x12\x0f\n\x07\x62itrate\x18\x02 \x01(\r\"\xeb\x01\n\x19GatewayCommandExecRequest\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\x0f\n\x07\x63ommand\x18\x02 \x01(\t\x12\x16\n\x06\x45xecId\x18\x03 \x01(\x0cR\x06\x65xecID\x12\r\n\x05stdin\x18\x04 \x01(\x0c\x12\x43\n\x0b\x65nvironment\x18\x05 \x03(\x0b\x32..gw.GatewayCommandExecRequest.EnvironmentEntry\x1a\x32\n\x10\x45nvironmentEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"\x83\x01\n\x1aGatewayCommandExecResponse\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\x17\n\x07\x65xec_id\x18\x02 \x01(\x0cR\x06\x65xecID\x12\x0e\n\x06stdout\x18\x03 \x01(\x0c\x12\x0e\n\x06stderr\x18\x04 \x01(\x0c\x12\r\n\x05\x65rror\x18\x05 \x01(\t\"`\n\x17RawPacketForwarderEvent\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\x15\n\x06raw_id\x18\x02 \x01(\x0cR\x05rawID\x12\x0f\n\x07payload\x18\x03 \x01(\x0c\"b\n\x19RawPacketForwarderCommand\x12\x1d\n\ngateway_id\x18\x01 \x01(\x0cR\tgatewayID\x12\x15\n\x06raw_id\x18\x02 \x01(\x0cR\x05rawID\x12\x0f\n\x07payload\x18\x03 \x01(\x0c*;\n\x0e\x44ownlinkTiming\x12\x0f\n\x0bIMMEDIATELY\x10\x00\x12\t\n\x05\x44\x45LAY\x10\x01\x12\r\n\tGPS_EPOCH\x10\x02*7\n\x11\x46ineTimestampType\x12\x08\n\x04NONE\x10\x00\x12\r\n\tENCRYPTED\x10\x01\x12\t\n\x05PLAIN\x10\x02*0\n\tCRCStatus\x12\n\n\x06NO_CRC\x10\x00\x12\x0b\n\x07\x42\x41\x44_CRC\x10\x01\x12\n\n\x06\x43RC_OK\x10\x02*\xbc\x01\n\x0bTxAckStatus\x12\x0b\n\x07IGNORED\x10\x00\x12\x06\n\x02OK\x10\x01\x12\x0c\n\x08TOO_LATE\x10\x02\x12\r\n\tTOO_EARLY\x10\x03\x12\x14\n\x10\x43OLLISION_PACKET\x10\x04\x12\x14\n\x10\x43OLLISION_BEACON\x10\x05\x12\x0b\n\x07TX_FREQ\x10\x06\x12\x0c\n\x08TX_POWER\x10\x07\x12\x10\n\x0cGPS_UNLOCKED\x10\x08\x12\x0e\n\nQUEUE_FULL\x10\t\x12\x12\n\x0eINTERNAL_ERROR\x10\nB,Z*github.com/brocaar/chirpstack-api/go/v3/gwb\x06proto3'
    ,
    dependencies=[chirpstack__api_dot_common_dot_common__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,])
  
  _DOWNLINKTIMING = _descriptor.EnumDescriptor(
    name='DownlinkTiming',
    full_name='gw.DownlinkTiming',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='IMMEDIATELY', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='DELAY', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='GPS_EPOCH', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=4252,
    serialized_end=4311,
  )
  _sym_db.RegisterEnumDescriptor(_DOWNLINKTIMING)
  
  DownlinkTiming = enum_type_wrapper.EnumTypeWrapper(_DOWNLINKTIMING)
  _FINETIMESTAMPTYPE = _descriptor.EnumDescriptor(
    name='FineTimestampType',
    full_name='gw.FineTimestampType',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='NONE', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='ENCRYPTED', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='PLAIN', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=4313,
    serialized_end=4368,
  )
  _sym_db.RegisterEnumDescriptor(_FINETIMESTAMPTYPE)
  
  FineTimestampType = enum_type_wrapper.EnumTypeWrapper(_FINETIMESTAMPTYPE)
  _CRCSTATUS = _descriptor.EnumDescriptor(
    name='CRCStatus',
    full_name='gw.CRCStatus',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='NO_CRC', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='BAD_CRC', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='CRC_OK', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=4370,
    serialized_end=4418,
  )
  _sym_db.RegisterEnumDescriptor(_CRCSTATUS)
  
  CRCStatus = enum_type_wrapper.EnumTypeWrapper(_CRCSTATUS)
  _TXACKSTATUS = _descriptor.EnumDescriptor(
    name='TxAckStatus',
    full_name='gw.TxAckStatus',
    filename=None,
    file=DESCRIPTOR,
    create_key=_descriptor._internal_create_key,
    values=[
      _descriptor.EnumValueDescriptor(
        name='IGNORED', index=0, number=0,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='OK', index=1, number=1,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='TOO_LATE', index=2, number=2,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='TOO_EARLY', index=3, number=3,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='COLLISION_PACKET', index=4, number=4,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='COLLISION_BEACON', index=5, number=5,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='TX_FREQ', index=6, number=6,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='TX_POWER', index=7, number=7,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='GPS_UNLOCKED', index=8, number=8,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='QUEUE_FULL', index=9, number=9,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
      _descriptor.EnumValueDescriptor(
        name='INTERNAL_ERROR', index=10, number=10,
        serialized_options=None,
        type=None,
        create_key=_descriptor._internal_create_key),
    ],
    containing_type=None,
    serialized_options=None,
    serialized_start=4421,
    serialized_end=4609,
  )
  _sym_db.RegisterEnumDescriptor(_TXACKSTATUS)
  
  TxAckStatus = enum_type_wrapper.EnumTypeWrapper(_TXACKSTATUS)
  IMMEDIATELY = 0
  DELAY = 1
  GPS_EPOCH = 2
  NONE = 0
  ENCRYPTED = 1
  PLAIN = 2
  NO_CRC = 0
  BAD_CRC = 1
  CRC_OK = 2
  IGNORED = 0
  OK = 1
  TOO_LATE = 2
  TOO_EARLY = 3
  COLLISION_PACKET = 4
  COLLISION_BEACON = 5
  TX_FREQ = 6
  TX_POWER = 7
  GPS_UNLOCKED = 8
  QUEUE_FULL = 9
  INTERNAL_ERROR = 10
  
  
  
  _UPLINKTXINFO = _descriptor.Descriptor(
    name='UplinkTXInfo',
    full_name='gw.UplinkTXInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='frequency', full_name='gw.UplinkTXInfo.frequency', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='modulation', full_name='gw.UplinkTXInfo.modulation', index=1,
        number=2, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='lora_modulation_info', full_name='gw.UplinkTXInfo.lora_modulation_info', index=2,
        number=3, 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,
        serialized_options=None, json_name='loRaModulationInfo', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='fsk_modulation_info', full_name='gw.UplinkTXInfo.fsk_modulation_info', index=3,
        number=4, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='modulation_info', full_name='gw.UplinkTXInfo.modulation_info',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=136,
    serialized_end=358,
  )
  
  
  _LORAMODULATIONINFO = _descriptor.Descriptor(
    name='LoRaModulationInfo',
    full_name='gw.LoRaModulationInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='bandwidth', full_name='gw.LoRaModulationInfo.bandwidth', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='spreading_factor', full_name='gw.LoRaModulationInfo.spreading_factor', index=1,
        number=2, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='code_rate', full_name='gw.LoRaModulationInfo.code_rate', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='polarization_inversion', full_name='gw.LoRaModulationInfo.polarization_inversion', index=3,
        number=4, type=8, cpp_type=7, label=1,
        has_default_value=False, default_value=False,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=360,
    serialized_end=476,
  )
  
  
  _FSKMODULATIONINFO = _descriptor.Descriptor(
    name='FSKModulationInfo',
    full_name='gw.FSKModulationInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='frequency_deviation', full_name='gw.FSKModulationInfo.frequency_deviation', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='datarate', full_name='gw.FSKModulationInfo.datarate', index=1,
        number=2, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=478,
    serialized_end=544,
  )
  
  
  _ENCRYPTEDFINETIMESTAMP = _descriptor.Descriptor(
    name='EncryptedFineTimestamp',
    full_name='gw.EncryptedFineTimestamp',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='aes_key_index', full_name='gw.EncryptedFineTimestamp.aes_key_index', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='encrypted_ns', full_name='gw.EncryptedFineTimestamp.encrypted_ns', index=1,
        number=2, 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,
        serialized_options=None, json_name='encryptedNS', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='fpga_id', full_name='gw.EncryptedFineTimestamp.fpga_id', index=2,
        number=3, 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,
        serialized_options=None, json_name='fpgaID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=546,
    serialized_end=653,
  )
  
  
  _PLAINFINETIMESTAMP = _descriptor.Descriptor(
    name='PlainFineTimestamp',
    full_name='gw.PlainFineTimestamp',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='time', full_name='gw.PlainFineTimestamp.time', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=655,
    serialized_end=717,
  )
  
  
  _GATEWAYSTATS_METADATAENTRY = _descriptor.Descriptor(
    name='MetaDataEntry',
    full_name='gw.GatewayStats.MetaDataEntry',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='key', full_name='gw.GatewayStats.MetaDataEntry.key', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='value', full_name='gw.GatewayStats.MetaDataEntry.value', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=b'8\001',
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=1098,
    serialized_end=1145,
  )
  
  _GATEWAYSTATS = _descriptor.Descriptor(
    name='GatewayStats',
    full_name='gw.GatewayStats',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.GatewayStats.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='ip', full_name='gw.GatewayStats.ip', index=1,
        number=9, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='time', full_name='gw.GatewayStats.time', index=2,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='location', full_name='gw.GatewayStats.location', index=3,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='config_version', full_name='gw.GatewayStats.config_version', index=4,
        number=4, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='rx_packets_received', full_name='gw.GatewayStats.rx_packets_received', index=5,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='rx_packets_received_ok', full_name='gw.GatewayStats.rx_packets_received_ok', index=6,
        number=6, 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,
        serialized_options=None, json_name='rxPacketsReceivedOK', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='tx_packets_received', full_name='gw.GatewayStats.tx_packets_received', index=7,
        number=7, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='tx_packets_emitted', full_name='gw.GatewayStats.tx_packets_emitted', index=8,
        number=8, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='meta_data', full_name='gw.GatewayStats.meta_data', index=9,
        number=10, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='stats_id', full_name='gw.GatewayStats.stats_id', index=10,
        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,
        serialized_options=None, json_name='statsID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[_GATEWAYSTATS_METADATAENTRY, ],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=720,
    serialized_end=1145,
  )
  
  
  _UPLINKRXINFO = _descriptor.Descriptor(
    name='UplinkRXInfo',
    full_name='gw.UplinkRXInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.UplinkRXInfo.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='time', full_name='gw.UplinkRXInfo.time', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='time_since_gps_epoch', full_name='gw.UplinkRXInfo.time_since_gps_epoch', index=2,
        number=3, 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,
        serialized_options=None, json_name='timeSinceGPSEpoch', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='rssi', full_name='gw.UplinkRXInfo.rssi', index=3,
        number=5, type=5, cpp_type=1, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='lora_snr', full_name='gw.UplinkRXInfo.lora_snr', index=4,
        number=6, type=1, cpp_type=5, label=1,
        has_default_value=False, default_value=float(0),
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, json_name='loRaSNR', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='channel', full_name='gw.UplinkRXInfo.channel', index=5,
        number=7, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='rf_chain', full_name='gw.UplinkRXInfo.rf_chain', index=6,
        number=8, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='board', full_name='gw.UplinkRXInfo.board', index=7,
        number=9, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='antenna', full_name='gw.UplinkRXInfo.antenna', index=8,
        number=10, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='location', full_name='gw.UplinkRXInfo.location', index=9,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='fine_timestamp_type', full_name='gw.UplinkRXInfo.fine_timestamp_type', index=10,
        number=12, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='encrypted_fine_timestamp', full_name='gw.UplinkRXInfo.encrypted_fine_timestamp', index=11,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='plain_fine_timestamp', full_name='gw.UplinkRXInfo.plain_fine_timestamp', index=12,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='context', full_name='gw.UplinkRXInfo.context', index=13,
        number=15, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='uplink_id', full_name='gw.UplinkRXInfo.uplink_id', index=14,
        number=16, 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,
        serialized_options=None, json_name='uplinkID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='crc_status', full_name='gw.UplinkRXInfo.crc_status', index=15,
        number=17, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, json_name='crcStatus', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='fine_timestamp', full_name='gw.UplinkRXInfo.fine_timestamp',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=1148,
    serialized_end=1737,
  )
  
  
  _DOWNLINKTXINFO = _descriptor.Descriptor(
    name='DownlinkTXInfo',
    full_name='gw.DownlinkTXInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.DownlinkTXInfo.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='frequency', full_name='gw.DownlinkTXInfo.frequency', index=1,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='power', full_name='gw.DownlinkTXInfo.power', index=2,
        number=6, type=5, cpp_type=1, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='modulation', full_name='gw.DownlinkTXInfo.modulation', index=3,
        number=7, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='lora_modulation_info', full_name='gw.DownlinkTXInfo.lora_modulation_info', index=4,
        number=8, 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,
        serialized_options=None, json_name='loRaModulationInfo', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='fsk_modulation_info', full_name='gw.DownlinkTXInfo.fsk_modulation_info', index=5,
        number=9, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='board', full_name='gw.DownlinkTXInfo.board', index=6,
        number=10, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='antenna', full_name='gw.DownlinkTXInfo.antenna', index=7,
        number=11, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='timing', full_name='gw.DownlinkTXInfo.timing', index=8,
        number=12, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='immediately_timing_info', full_name='gw.DownlinkTXInfo.immediately_timing_info', index=9,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='delay_timing_info', full_name='gw.DownlinkTXInfo.delay_timing_info', index=10,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='gps_epoch_timing_info', full_name='gw.DownlinkTXInfo.gps_epoch_timing_info', index=11,
        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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='context', full_name='gw.DownlinkTXInfo.context', index=12,
        number=16, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='modulation_info', full_name='gw.DownlinkTXInfo.modulation_info',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
      _descriptor.OneofDescriptor(
        name='timing_info', full_name='gw.DownlinkTXInfo.timing_info',
        index=1, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=1740,
    serialized_end=2279,
  )
  
  
  _IMMEDIATELYTIMINGINFO = _descriptor.Descriptor(
    name='ImmediatelyTimingInfo',
    full_name='gw.ImmediatelyTimingInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2281,
    serialized_end=2304,
  )
  
  
  _DELAYTIMINGINFO = _descriptor.Descriptor(
    name='DelayTimingInfo',
    full_name='gw.DelayTimingInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='delay', full_name='gw.DelayTimingInfo.delay', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2306,
    serialized_end=2365,
  )
  
  
  _GPSEPOCHTIMINGINFO = _descriptor.Descriptor(
    name='GPSEpochTimingInfo',
    full_name='gw.GPSEpochTimingInfo',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='time_since_gps_epoch', full_name='gw.GPSEpochTimingInfo.time_since_gps_epoch', 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,
        serialized_options=None, json_name='timeSinceGPSEpoch', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2367,
    serialized_end=2463,
  )
  
  
  _UPLINKFRAME = _descriptor.Descriptor(
    name='UplinkFrame',
    full_name='gw.UplinkFrame',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='phy_payload', full_name='gw.UplinkFrame.phy_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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='tx_info', full_name='gw.UplinkFrame.tx_info', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='rx_info', full_name='gw.UplinkFrame.rx_info', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2465,
    serialized_end=2569,
  )
  
  
  _UPLINKFRAMESET = _descriptor.Descriptor(
    name='UplinkFrameSet',
    full_name='gw.UplinkFrameSet',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='phy_payload', full_name='gw.UplinkFrameSet.phy_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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='tx_info', full_name='gw.UplinkFrameSet.tx_info', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='rx_info', full_name='gw.UplinkFrameSet.rx_info', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2571,
    serialized_end=2678,
  )
  
  
  _DOWNLINKFRAME = _descriptor.Descriptor(
    name='DownlinkFrame',
    full_name='gw.DownlinkFrame',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='phy_payload', full_name='gw.DownlinkFrame.phy_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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='tx_info', full_name='gw.DownlinkFrame.tx_info', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='token', full_name='gw.DownlinkFrame.token', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='downlink_id', full_name='gw.DownlinkFrame.downlink_id', index=3,
        number=4, 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,
        serialized_options=None, json_name='downlinkID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='items', full_name='gw.DownlinkFrame.items', index=4,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.DownlinkFrame.gateway_id', index=5,
        number=6, 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2681,
    serialized_end=2871,
  )
  
  
  _DOWNLINKFRAMEITEM = _descriptor.Descriptor(
    name='DownlinkFrameItem',
    full_name='gw.DownlinkFrameItem',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='phy_payload', full_name='gw.DownlinkFrameItem.phy_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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='tx_info', full_name='gw.DownlinkFrameItem.tx_info', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2873,
    serialized_end=2950,
  )
  
  
  _DOWNLINKTXACK = _descriptor.Descriptor(
    name='DownlinkTXAck',
    full_name='gw.DownlinkTXAck',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.DownlinkTXAck.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='token', full_name='gw.DownlinkTXAck.token', index=1,
        number=2, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='error', full_name='gw.DownlinkTXAck.error', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='downlink_id', full_name='gw.DownlinkTXAck.downlink_id', index=3,
        number=4, 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,
        serialized_options=None, json_name='downlinkID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='items', full_name='gw.DownlinkTXAck.items', index=4,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=2953,
    serialized_end=3100,
  )
  
  
  _DOWNLINKTXACKITEM = _descriptor.Descriptor(
    name='DownlinkTXAckItem',
    full_name='gw.DownlinkTXAckItem',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='status', full_name='gw.DownlinkTXAckItem.status', index=0,
        number=1, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3102,
    serialized_end=3154,
  )
  
  
  _GATEWAYCONFIGURATION = _descriptor.Descriptor(
    name='GatewayConfiguration',
    full_name='gw.GatewayConfiguration',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.GatewayConfiguration.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='version', full_name='gw.GatewayConfiguration.version', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='channels', full_name='gw.GatewayConfiguration.channels', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3156,
    serialized_end=3270,
  )
  
  
  _CHANNELCONFIGURATION = _descriptor.Descriptor(
    name='ChannelConfiguration',
    full_name='gw.ChannelConfiguration',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='frequency', full_name='gw.ChannelConfiguration.frequency', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='modulation', full_name='gw.ChannelConfiguration.modulation', index=1,
        number=2, type=14, cpp_type=8, label=1,
        has_default_value=False, default_value=0,
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='lora_modulation_config', full_name='gw.ChannelConfiguration.lora_modulation_config', index=2,
        number=3, 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,
        serialized_options=None, json_name='loRaModulationConfig', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='fsk_modulation_config', full_name='gw.ChannelConfiguration.fsk_modulation_config', index=3,
        number=4, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='board', full_name='gw.ChannelConfiguration.board', index=4,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='demodulator', full_name='gw.ChannelConfiguration.demodulator', index=5,
        number=6, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
      _descriptor.OneofDescriptor(
        name='modulation_config', full_name='gw.ChannelConfiguration.modulation_config',
        index=0, containing_type=None,
        create_key=_descriptor._internal_create_key,
      fields=[]),
    ],
    serialized_start=3273,
    serialized_end=3551,
  )
  
  
  _LORAMODULATIONCONFIG = _descriptor.Descriptor(
    name='LoRaModulationConfig',
    full_name='gw.LoRaModulationConfig',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='bandwidth', full_name='gw.LoRaModulationConfig.bandwidth', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='spreading_factors', full_name='gw.LoRaModulationConfig.spreading_factors', index=1,
        number=2, type=13, cpp_type=3, label=3,
        has_default_value=False, default_value=[],
        message_type=None, enum_type=None, containing_type=None,
        is_extension=False, extension_scope=None,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3553,
    serialized_end=3621,
  )
  
  
  _FSKMODULATIONCONFIG = _descriptor.Descriptor(
    name='FSKModulationConfig',
    full_name='gw.FSKModulationConfig',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='bandwidth', full_name='gw.FSKModulationConfig.bandwidth', index=0,
        number=1, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='bitrate', full_name='gw.FSKModulationConfig.bitrate', index=1,
        number=2, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3623,
    serialized_end=3680,
  )
  
  
  _GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY = _descriptor.Descriptor(
    name='EnvironmentEntry',
    full_name='gw.GatewayCommandExecRequest.EnvironmentEntry',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='key', full_name='gw.GatewayCommandExecRequest.EnvironmentEntry.key', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='value', full_name='gw.GatewayCommandExecRequest.EnvironmentEntry.value', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=b'8\001',
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3868,
    serialized_end=3918,
  )
  
  _GATEWAYCOMMANDEXECREQUEST = _descriptor.Descriptor(
    name='GatewayCommandExecRequest',
    full_name='gw.GatewayCommandExecRequest',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.GatewayCommandExecRequest.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='command', full_name='gw.GatewayCommandExecRequest.command', 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='ExecId', full_name='gw.GatewayCommandExecRequest.ExecId', index=2,
        number=3, 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,
        serialized_options=None, json_name='execID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='stdin', full_name='gw.GatewayCommandExecRequest.stdin', index=3,
        number=4, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='environment', full_name='gw.GatewayCommandExecRequest.environment', index=4,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[_GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY, ],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3683,
    serialized_end=3918,
  )
  
  
  _GATEWAYCOMMANDEXECRESPONSE = _descriptor.Descriptor(
    name='GatewayCommandExecResponse',
    full_name='gw.GatewayCommandExecResponse',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.GatewayCommandExecResponse.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='exec_id', full_name='gw.GatewayCommandExecResponse.exec_id', index=1,
        number=2, 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,
        serialized_options=None, json_name='execID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='stdout', full_name='gw.GatewayCommandExecResponse.stdout', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='stderr', full_name='gw.GatewayCommandExecResponse.stderr', index=3,
        number=4, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='error', full_name='gw.GatewayCommandExecResponse.error', index=4,
        number=5, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=3921,
    serialized_end=4052,
  )
  
  
  _RAWPACKETFORWARDEREVENT = _descriptor.Descriptor(
    name='RawPacketForwarderEvent',
    full_name='gw.RawPacketForwarderEvent',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.RawPacketForwarderEvent.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='raw_id', full_name='gw.RawPacketForwarderEvent.raw_id', index=1,
        number=2, 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,
        serialized_options=None, json_name='rawID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='payload', full_name='gw.RawPacketForwarderEvent.payload', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=4054,
    serialized_end=4150,
  )
  
  
  _RAWPACKETFORWARDERCOMMAND = _descriptor.Descriptor(
    name='RawPacketForwarderCommand',
    full_name='gw.RawPacketForwarderCommand',
    filename=None,
    file=DESCRIPTOR,
    containing_type=None,
    create_key=_descriptor._internal_create_key,
    fields=[
      _descriptor.FieldDescriptor(
        name='gateway_id', full_name='gw.RawPacketForwarderCommand.gateway_id', 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,
        serialized_options=None, json_name='gatewayID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='raw_id', full_name='gw.RawPacketForwarderCommand.raw_id', index=1,
        number=2, 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,
        serialized_options=None, json_name='rawID', file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
      _descriptor.FieldDescriptor(
        name='payload', full_name='gw.RawPacketForwarderCommand.payload', index=2,
        number=3, 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,
        serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    ],
    extensions=[
    ],
    nested_types=[],
    enum_types=[
    ],
    serialized_options=None,
    is_extendable=False,
    syntax='proto3',
    extension_ranges=[],
    oneofs=[
    ],
    serialized_start=4152,
    serialized_end=4250,
  )
  
  _UPLINKTXINFO.fields_by_name['modulation'].enum_type = chirpstack__api_dot_common_dot_common__pb2._MODULATION
  _UPLINKTXINFO.fields_by_name['lora_modulation_info'].message_type = _LORAMODULATIONINFO
  _UPLINKTXINFO.fields_by_name['fsk_modulation_info'].message_type = _FSKMODULATIONINFO
  _UPLINKTXINFO.oneofs_by_name['modulation_info'].fields.append(
    _UPLINKTXINFO.fields_by_name['lora_modulation_info'])
  _UPLINKTXINFO.fields_by_name['lora_modulation_info'].containing_oneof = _UPLINKTXINFO.oneofs_by_name['modulation_info']
  _UPLINKTXINFO.oneofs_by_name['modulation_info'].fields.append(
    _UPLINKTXINFO.fields_by_name['fsk_modulation_info'])
  _UPLINKTXINFO.fields_by_name['fsk_modulation_info'].containing_oneof = _UPLINKTXINFO.oneofs_by_name['modulation_info']
  _PLAINFINETIMESTAMP.fields_by_name['time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _GATEWAYSTATS_METADATAENTRY.containing_type = _GATEWAYSTATS
  _GATEWAYSTATS.fields_by_name['time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _GATEWAYSTATS.fields_by_name['location'].message_type = chirpstack__api_dot_common_dot_common__pb2._LOCATION
  _GATEWAYSTATS.fields_by_name['meta_data'].message_type = _GATEWAYSTATS_METADATAENTRY
  _UPLINKRXINFO.fields_by_name['time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
  _UPLINKRXINFO.fields_by_name['time_since_gps_epoch'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
  _UPLINKRXINFO.fields_by_name['location'].message_type = chirpstack__api_dot_common_dot_common__pb2._LOCATION
  _UPLINKRXINFO.fields_by_name['fine_timestamp_type'].enum_type = _FINETIMESTAMPTYPE
  _UPLINKRXINFO.fields_by_name['encrypted_fine_timestamp'].message_type = _ENCRYPTEDFINETIMESTAMP
  _UPLINKRXINFO.fields_by_name['plain_fine_timestamp'].message_type = _PLAINFINETIMESTAMP
  _UPLINKRXINFO.fields_by_name['crc_status'].enum_type = _CRCSTATUS
  _UPLINKRXINFO.oneofs_by_name['fine_timestamp'].fields.append(
    _UPLINKRXINFO.fields_by_name['encrypted_fine_timestamp'])
  _UPLINKRXINFO.fields_by_name['encrypted_fine_timestamp'].containing_oneof = _UPLINKRXINFO.oneofs_by_name['fine_timestamp']
  _UPLINKRXINFO.oneofs_by_name['fine_timestamp'].fields.append(
    _UPLINKRXINFO.fields_by_name['plain_fine_timestamp'])
  _UPLINKRXINFO.fields_by_name['plain_fine_timestamp'].containing_oneof = _UPLINKRXINFO.oneofs_by_name['fine_timestamp']
  _DOWNLINKTXINFO.fields_by_name['modulation'].enum_type = chirpstack__api_dot_common_dot_common__pb2._MODULATION
  _DOWNLINKTXINFO.fields_by_name['lora_modulation_info'].message_type = _LORAMODULATIONINFO
  _DOWNLINKTXINFO.fields_by_name['fsk_modulation_info'].message_type = _FSKMODULATIONINFO
  _DOWNLINKTXINFO.fields_by_name['timing'].enum_type = _DOWNLINKTIMING
  _DOWNLINKTXINFO.fields_by_name['immediately_timing_info'].message_type = _IMMEDIATELYTIMINGINFO
  _DOWNLINKTXINFO.fields_by_name['delay_timing_info'].message_type = _DELAYTIMINGINFO
  _DOWNLINKTXINFO.fields_by_name['gps_epoch_timing_info'].message_type = _GPSEPOCHTIMINGINFO
  _DOWNLINKTXINFO.oneofs_by_name['modulation_info'].fields.append(
    _DOWNLINKTXINFO.fields_by_name['lora_modulation_info'])
  _DOWNLINKTXINFO.fields_by_name['lora_modulation_info'].containing_oneof = _DOWNLINKTXINFO.oneofs_by_name['modulation_info']
  _DOWNLINKTXINFO.oneofs_by_name['modulation_info'].fields.append(
    _DOWNLINKTXINFO.fields_by_name['fsk_modulation_info'])
  _DOWNLINKTXINFO.fields_by_name['fsk_modulation_info'].containing_oneof = _DOWNLINKTXINFO.oneofs_by_name['modulation_info']
  _DOWNLINKTXINFO.oneofs_by_name['timing_info'].fields.append(
    _DOWNLINKTXINFO.fields_by_name['immediately_timing_info'])
  _DOWNLINKTXINFO.fields_by_name['immediately_timing_info'].containing_oneof = _DOWNLINKTXINFO.oneofs_by_name['timing_info']
  _DOWNLINKTXINFO.oneofs_by_name['timing_info'].fields.append(
    _DOWNLINKTXINFO.fields_by_name['delay_timing_info'])
  _DOWNLINKTXINFO.fields_by_name['delay_timing_info'].containing_oneof = _DOWNLINKTXINFO.oneofs_by_name['timing_info']
  _DOWNLINKTXINFO.oneofs_by_name['timing_info'].fields.append(
    _DOWNLINKTXINFO.fields_by_name['gps_epoch_timing_info'])
  _DOWNLINKTXINFO.fields_by_name['gps_epoch_timing_info'].containing_oneof = _DOWNLINKTXINFO.oneofs_by_name['timing_info']
  _DELAYTIMINGINFO.fields_by_name['delay'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
  _GPSEPOCHTIMINGINFO.fields_by_name['time_since_gps_epoch'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
  _UPLINKFRAME.fields_by_name['tx_info'].message_type = _UPLINKTXINFO
  _UPLINKFRAME.fields_by_name['rx_info'].message_type = _UPLINKRXINFO
  _UPLINKFRAMESET.fields_by_name['tx_info'].message_type = _UPLINKTXINFO
  _UPLINKFRAMESET.fields_by_name['rx_info'].message_type = _UPLINKRXINFO
  _DOWNLINKFRAME.fields_by_name['tx_info'].message_type = _DOWNLINKTXINFO
  _DOWNLINKFRAME.fields_by_name['items'].message_type = _DOWNLINKFRAMEITEM
  _DOWNLINKFRAMEITEM.fields_by_name['tx_info'].message_type = _DOWNLINKTXINFO
  _DOWNLINKTXACK.fields_by_name['items'].message_type = _DOWNLINKTXACKITEM
  _DOWNLINKTXACKITEM.fields_by_name['status'].enum_type = _TXACKSTATUS
  _GATEWAYCONFIGURATION.fields_by_name['channels'].message_type = _CHANNELCONFIGURATION
  _CHANNELCONFIGURATION.fields_by_name['modulation'].enum_type = chirpstack__api_dot_common_dot_common__pb2._MODULATION
  _CHANNELCONFIGURATION.fields_by_name['lora_modulation_config'].message_type = _LORAMODULATIONCONFIG
  _CHANNELCONFIGURATION.fields_by_name['fsk_modulation_config'].message_type = _FSKMODULATIONCONFIG
  _CHANNELCONFIGURATION.oneofs_by_name['modulation_config'].fields.append(
    _CHANNELCONFIGURATION.fields_by_name['lora_modulation_config'])
  _CHANNELCONFIGURATION.fields_by_name['lora_modulation_config'].containing_oneof = _CHANNELCONFIGURATION.oneofs_by_name['modulation_config']
  _CHANNELCONFIGURATION.oneofs_by_name['modulation_config'].fields.append(
    _CHANNELCONFIGURATION.fields_by_name['fsk_modulation_config'])
  _CHANNELCONFIGURATION.fields_by_name['fsk_modulation_config'].containing_oneof = _CHANNELCONFIGURATION.oneofs_by_name['modulation_config']
  _GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY.containing_type = _GATEWAYCOMMANDEXECREQUEST
  _GATEWAYCOMMANDEXECREQUEST.fields_by_name['environment'].message_type = _GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY
  DESCRIPTOR.message_types_by_name['UplinkTXInfo'] = _UPLINKTXINFO
  DESCRIPTOR.message_types_by_name['LoRaModulationInfo'] = _LORAMODULATIONINFO
  DESCRIPTOR.message_types_by_name['FSKModulationInfo'] = _FSKMODULATIONINFO
  DESCRIPTOR.message_types_by_name['EncryptedFineTimestamp'] = _ENCRYPTEDFINETIMESTAMP
  DESCRIPTOR.message_types_by_name['PlainFineTimestamp'] = _PLAINFINETIMESTAMP
  DESCRIPTOR.message_types_by_name['GatewayStats'] = _GATEWAYSTATS
  DESCRIPTOR.message_types_by_name['UplinkRXInfo'] = _UPLINKRXINFO
  DESCRIPTOR.message_types_by_name['DownlinkTXInfo'] = _DOWNLINKTXINFO
  DESCRIPTOR.message_types_by_name['ImmediatelyTimingInfo'] = _IMMEDIATELYTIMINGINFO
  DESCRIPTOR.message_types_by_name['DelayTimingInfo'] = _DELAYTIMINGINFO
  DESCRIPTOR.message_types_by_name['GPSEpochTimingInfo'] = _GPSEPOCHTIMINGINFO
  DESCRIPTOR.message_types_by_name['UplinkFrame'] = _UPLINKFRAME
  DESCRIPTOR.message_types_by_name['UplinkFrameSet'] = _UPLINKFRAMESET
  DESCRIPTOR.message_types_by_name['DownlinkFrame'] = _DOWNLINKFRAME
  DESCRIPTOR.message_types_by_name['DownlinkFrameItem'] = _DOWNLINKFRAMEITEM
  DESCRIPTOR.message_types_by_name['DownlinkTXAck'] = _DOWNLINKTXACK
  DESCRIPTOR.message_types_by_name['DownlinkTXAckItem'] = _DOWNLINKTXACKITEM
  DESCRIPTOR.message_types_by_name['GatewayConfiguration'] = _GATEWAYCONFIGURATION
  DESCRIPTOR.message_types_by_name['ChannelConfiguration'] = _CHANNELCONFIGURATION
  DESCRIPTOR.message_types_by_name['LoRaModulationConfig'] = _LORAMODULATIONCONFIG
  DESCRIPTOR.message_types_by_name['FSKModulationConfig'] = _FSKMODULATIONCONFIG
  DESCRIPTOR.message_types_by_name['GatewayCommandExecRequest'] = _GATEWAYCOMMANDEXECREQUEST
  DESCRIPTOR.message_types_by_name['GatewayCommandExecResponse'] = _GATEWAYCOMMANDEXECRESPONSE
  DESCRIPTOR.message_types_by_name['RawPacketForwarderEvent'] = _RAWPACKETFORWARDEREVENT
  DESCRIPTOR.message_types_by_name['RawPacketForwarderCommand'] = _RAWPACKETFORWARDERCOMMAND
  DESCRIPTOR.enum_types_by_name['DownlinkTiming'] = _DOWNLINKTIMING
  DESCRIPTOR.enum_types_by_name['FineTimestampType'] = _FINETIMESTAMPTYPE
  DESCRIPTOR.enum_types_by_name['CRCStatus'] = _CRCSTATUS
  DESCRIPTOR.enum_types_by_name['TxAckStatus'] = _TXACKSTATUS
  _sym_db.RegisterFileDescriptor(DESCRIPTOR)
  
  UplinkTXInfo = _reflection.GeneratedProtocolMessageType('UplinkTXInfo', (_message.Message,), {
    'DESCRIPTOR' : _UPLINKTXINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.UplinkTXInfo)
    })
  _sym_db.RegisterMessage(UplinkTXInfo)
  
  LoRaModulationInfo = _reflection.GeneratedProtocolMessageType('LoRaModulationInfo', (_message.Message,), {
    'DESCRIPTOR' : _LORAMODULATIONINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.LoRaModulationInfo)
    })
  _sym_db.RegisterMessage(LoRaModulationInfo)
  
  FSKModulationInfo = _reflection.GeneratedProtocolMessageType('FSKModulationInfo', (_message.Message,), {
    'DESCRIPTOR' : _FSKMODULATIONINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.FSKModulationInfo)
    })
  _sym_db.RegisterMessage(FSKModulationInfo)
  
  EncryptedFineTimestamp = _reflection.GeneratedProtocolMessageType('EncryptedFineTimestamp', (_message.Message,), {
    'DESCRIPTOR' : _ENCRYPTEDFINETIMESTAMP,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.EncryptedFineTimestamp)
    })
  _sym_db.RegisterMessage(EncryptedFineTimestamp)
  
  PlainFineTimestamp = _reflection.GeneratedProtocolMessageType('PlainFineTimestamp', (_message.Message,), {
    'DESCRIPTOR' : _PLAINFINETIMESTAMP,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.PlainFineTimestamp)
    })
  _sym_db.RegisterMessage(PlainFineTimestamp)
  
  GatewayStats = _reflection.GeneratedProtocolMessageType('GatewayStats', (_message.Message,), {
  
    'MetaDataEntry' : _reflection.GeneratedProtocolMessageType('MetaDataEntry', (_message.Message,), {
      'DESCRIPTOR' : _GATEWAYSTATS_METADATAENTRY,
      '__module__' : 'chirpstack_api.gw.gw_pb2'
      # @@protoc_insertion_point(class_scope:gw.GatewayStats.MetaDataEntry)
      })
    ,
    'DESCRIPTOR' : _GATEWAYSTATS,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.GatewayStats)
    })
  _sym_db.RegisterMessage(GatewayStats)
  _sym_db.RegisterMessage(GatewayStats.MetaDataEntry)
  
  UplinkRXInfo = _reflection.GeneratedProtocolMessageType('UplinkRXInfo', (_message.Message,), {
    'DESCRIPTOR' : _UPLINKRXINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.UplinkRXInfo)
    })
  _sym_db.RegisterMessage(UplinkRXInfo)
  
  DownlinkTXInfo = _reflection.GeneratedProtocolMessageType('DownlinkTXInfo', (_message.Message,), {
    'DESCRIPTOR' : _DOWNLINKTXINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.DownlinkTXInfo)
    })
  _sym_db.RegisterMessage(DownlinkTXInfo)
  
  ImmediatelyTimingInfo = _reflection.GeneratedProtocolMessageType('ImmediatelyTimingInfo', (_message.Message,), {
    'DESCRIPTOR' : _IMMEDIATELYTIMINGINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.ImmediatelyTimingInfo)
    })
  _sym_db.RegisterMessage(ImmediatelyTimingInfo)
  
  DelayTimingInfo = _reflection.GeneratedProtocolMessageType('DelayTimingInfo', (_message.Message,), {
    'DESCRIPTOR' : _DELAYTIMINGINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.DelayTimingInfo)
    })
  _sym_db.RegisterMessage(DelayTimingInfo)
  
  GPSEpochTimingInfo = _reflection.GeneratedProtocolMessageType('GPSEpochTimingInfo', (_message.Message,), {
    'DESCRIPTOR' : _GPSEPOCHTIMINGINFO,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.GPSEpochTimingInfo)
    })
  _sym_db.RegisterMessage(GPSEpochTimingInfo)
  
  UplinkFrame = _reflection.GeneratedProtocolMessageType('UplinkFrame', (_message.Message,), {
    'DESCRIPTOR' : _UPLINKFRAME,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.UplinkFrame)
    })
  _sym_db.RegisterMessage(UplinkFrame)
  
  UplinkFrameSet = _reflection.GeneratedProtocolMessageType('UplinkFrameSet', (_message.Message,), {
    'DESCRIPTOR' : _UPLINKFRAMESET,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.UplinkFrameSet)
    })
  _sym_db.RegisterMessage(UplinkFrameSet)
  
  DownlinkFrame = _reflection.GeneratedProtocolMessageType('DownlinkFrame', (_message.Message,), {
    'DESCRIPTOR' : _DOWNLINKFRAME,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.DownlinkFrame)
    })
  _sym_db.RegisterMessage(DownlinkFrame)
  
  DownlinkFrameItem = _reflection.GeneratedProtocolMessageType('DownlinkFrameItem', (_message.Message,), {
    'DESCRIPTOR' : _DOWNLINKFRAMEITEM,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.DownlinkFrameItem)
    })
  _sym_db.RegisterMessage(DownlinkFrameItem)
  
  DownlinkTXAck = _reflection.GeneratedProtocolMessageType('DownlinkTXAck', (_message.Message,), {
    'DESCRIPTOR' : _DOWNLINKTXACK,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.DownlinkTXAck)
    })
  _sym_db.RegisterMessage(DownlinkTXAck)
  
  DownlinkTXAckItem = _reflection.GeneratedProtocolMessageType('DownlinkTXAckItem', (_message.Message,), {
    'DESCRIPTOR' : _DOWNLINKTXACKITEM,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.DownlinkTXAckItem)
    })
  _sym_db.RegisterMessage(DownlinkTXAckItem)
  
  GatewayConfiguration = _reflection.GeneratedProtocolMessageType('GatewayConfiguration', (_message.Message,), {
    'DESCRIPTOR' : _GATEWAYCONFIGURATION,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.GatewayConfiguration)
    })
  _sym_db.RegisterMessage(GatewayConfiguration)
  
  ChannelConfiguration = _reflection.GeneratedProtocolMessageType('ChannelConfiguration', (_message.Message,), {
    'DESCRIPTOR' : _CHANNELCONFIGURATION,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.ChannelConfiguration)
    })
  _sym_db.RegisterMessage(ChannelConfiguration)
  
  LoRaModulationConfig = _reflection.GeneratedProtocolMessageType('LoRaModulationConfig', (_message.Message,), {
    'DESCRIPTOR' : _LORAMODULATIONCONFIG,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.LoRaModulationConfig)
    })
  _sym_db.RegisterMessage(LoRaModulationConfig)
  
  FSKModulationConfig = _reflection.GeneratedProtocolMessageType('FSKModulationConfig', (_message.Message,), {
    'DESCRIPTOR' : _FSKMODULATIONCONFIG,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.FSKModulationConfig)
    })
  _sym_db.RegisterMessage(FSKModulationConfig)
  
  GatewayCommandExecRequest = _reflection.GeneratedProtocolMessageType('GatewayCommandExecRequest', (_message.Message,), {
  
    'EnvironmentEntry' : _reflection.GeneratedProtocolMessageType('EnvironmentEntry', (_message.Message,), {
      'DESCRIPTOR' : _GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY,
      '__module__' : 'chirpstack_api.gw.gw_pb2'
      # @@protoc_insertion_point(class_scope:gw.GatewayCommandExecRequest.EnvironmentEntry)
      })
    ,
    'DESCRIPTOR' : _GATEWAYCOMMANDEXECREQUEST,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.GatewayCommandExecRequest)
    })
  _sym_db.RegisterMessage(GatewayCommandExecRequest)
  _sym_db.RegisterMessage(GatewayCommandExecRequest.EnvironmentEntry)
  
  GatewayCommandExecResponse = _reflection.GeneratedProtocolMessageType('GatewayCommandExecResponse', (_message.Message,), {
    'DESCRIPTOR' : _GATEWAYCOMMANDEXECRESPONSE,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.GatewayCommandExecResponse)
    })
  _sym_db.RegisterMessage(GatewayCommandExecResponse)
  
  RawPacketForwarderEvent = _reflection.GeneratedProtocolMessageType('RawPacketForwarderEvent', (_message.Message,), {
    'DESCRIPTOR' : _RAWPACKETFORWARDEREVENT,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.RawPacketForwarderEvent)
    })
  _sym_db.RegisterMessage(RawPacketForwarderEvent)
  
  RawPacketForwarderCommand = _reflection.GeneratedProtocolMessageType('RawPacketForwarderCommand', (_message.Message,), {
    'DESCRIPTOR' : _RAWPACKETFORWARDERCOMMAND,
    '__module__' : 'chirpstack_api.gw.gw_pb2'
    # @@protoc_insertion_point(class_scope:gw.RawPacketForwarderCommand)
    })
  _sym_db.RegisterMessage(RawPacketForwarderCommand)
  
  
  DESCRIPTOR._options = None
  _GATEWAYSTATS_METADATAENTRY._options = None
  _GATEWAYCOMMANDEXECREQUEST_ENVIRONMENTENTRY._options = None
  # @@protoc_insertion_point(module_scope)
  