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

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

_sym_db = _symbol_database.Default()


from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2
from google.api import annotations_pb2 as google_dot_api_dot_annotations__pb2
from ttn.github_com.gogo.protobuf.gogoproto import gogo_pb2 as github__com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='github_com/TheThingsNetwork/api/discovery/discovery.proto',
  package='discovery',
  syntax='proto3',
  serialized_pb=_b('\n9github_com/TheThingsNetwork/api/discovery/discovery.proto\x12\tdiscovery\x1a\x1bgoogle/protobuf/empty.proto\x1a\x1cgoogle/api/annotations.proto\x1a-github_com/gogo/protobuf/gogoproto/gogo.proto\"\x92\x01\n\x08Metadata\x12#\n\ngateway_id\x18\n \x01(\tB\r\xe2\xde\x1f\tGatewayIDH\x00\x12\x19\n\x0f\x64\x65v_addr_prefix\x18\x14 \x01(\x0cH\x00\x12\x1b\n\x06\x61pp_id\x18\x1e \x01(\tB\t\xe2\xde\x1f\x05\x41ppIDH\x00\x12\x1d\n\x07\x61pp_eui\x18\x1f \x01(\x0c\x42\n\xe2\xde\x1f\x06\x41ppEUIH\x00\x42\n\n\x08metadata\"\xa9\x02\n\x0c\x41nnouncement\x12\x12\n\x02id\x18\x01 \x01(\tB\x06\xe2\xde\x1f\x02ID\x12\x14\n\x0cservice_name\x18\x02 \x01(\t\x12\x17\n\x0fservice_version\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0b\n\x03url\x18\x05 \x01(\t\x12\x0e\n\x06public\x18\x06 \x01(\x08\x12\x13\n\x0bnet_address\x18\x0b \x01(\t\x12\x12\n\npublic_key\x18\x0c \x01(\t\x12\x13\n\x0b\x63\x65rtificate\x18\r \x01(\t\x12\x13\n\x0b\x61pi_address\x18\x0e \x01(\t\x12\x14\n\x0cmqtt_address\x18\x0f \x01(\t\x12\x14\n\x0c\x61mqp_address\x18\x10 \x01(\t\x12%\n\x08metadata\x18\x16 \x03(\x0b\x32\x13.discovery.Metadata\")\n\x11GetServiceRequest\x12\x14\n\x0cservice_name\x18\x01 \x01(\t\"6\n\nGetRequest\x12\x12\n\x02id\x18\x01 \x01(\tB\x06\xe2\xde\x1f\x02ID\x12\x14\n\x0cservice_name\x18\x02 \x01(\t\"h\n\x0fMetadataRequest\x12\x12\n\x02id\x18\x01 \x01(\tB\x06\xe2\xde\x1f\x02ID\x12\x14\n\x0cservice_name\x18\x02 \x01(\t\x12+\n\x08metadata\x18\x0c \x01(\x0b\x32\x13.discovery.MetadataB\x04\xc8\xde\x1f\x00\"B\n\x15\x41nnouncementsResponse\x12)\n\x08services\x18\x01 \x03(\x0b\x32\x17.discovery.Announcement\".\n\x11GetByAppIDRequest\x12\x19\n\x06\x61pp_id\x18\x1e \x01(\tB\t\xe2\xde\x1f\x05\x41ppID\":\n\x15GetByGatewayIDRequest\x12!\n\ngateway_id\x18\x1e \x01(\tB\r\xe2\xde\x1f\tGatewayID\"j\n\x12GetByAppEUIRequest\x12T\n\x07\x61pp_eui\x18\x1f \x01(\x0c\x42\x43\xe2\xde\x1f\x06\x41ppEUI\xc8\xde\x1f\x00\xda\xde\x1f\x31github_com/TheThingsNetwork/ttn/core/types.AppEUI2\xfe\x04\n\tDiscovery\x12;\n\x08\x41nnounce\x12\x17.discovery.Announcement\x1a\x16.google.protobuf.Empty\x12o\n\x06GetAll\x12\x1c.discovery.GetServiceRequest\x1a .discovery.AnnouncementsResponse\"%\x82\xd3\xe4\x93\x02\x1f\x12\x1d/announcements/{service_name}\x12\x61\n\x03Get\x12\x15.discovery.GetRequest\x1a\x17.discovery.Announcement\"*\x82\xd3\xe4\x93\x02$\x12\"/announcements/{service_name}/{id}\x12\x41\n\x0b\x41\x64\x64Metadata\x12\x1a.discovery.MetadataRequest\x1a\x16.google.protobuf.Empty\x12\x44\n\x0e\x44\x65leteMetadata\x12\x1a.discovery.MetadataRequest\x1a\x16.google.protobuf.Empty\x12\x43\n\nGetByAppID\x12\x1c.discovery.GetByAppIDRequest\x1a\x17.discovery.Announcement\x12K\n\x0eGetByGatewayID\x12 .discovery.GetByGatewayIDRequest\x1a\x17.discovery.Announcement\x12\x45\n\x0bGetByAppEUI\x12\x1d.discovery.GetByAppEUIRequest\x1a\x17.discovery.Announcement2\x12\n\x10\x44iscoveryManagerB\x82\x01\n\"org.thethingsnetwork.api.discoveryB\x0e\x44iscoveryProtoP\x01Z)github_com/TheThingsNetwork/api/discovery\xaa\x02\x1eTheThingsNetwork.API.Discoveryb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_empty__pb2.DESCRIPTOR,google_dot_api_dot_annotations__pb2.DESCRIPTOR,github__com_dot_gogo_dot_protobuf_dot_gogoproto_dot_gogo__pb2.DESCRIPTOR,])




_METADATA = _descriptor.Descriptor(
  name='Metadata',
  full_name='discovery.Metadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='gateway_id', full_name='discovery.Metadata.gateway_id', index=0,
      number=10, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tGatewayID'))),
    _descriptor.FieldDescriptor(
      name='dev_addr_prefix', full_name='discovery.Metadata.dev_addr_prefix', index=1,
      number=20, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='app_id', full_name='discovery.Metadata.app_id', index=2,
      number=30, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))),
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='discovery.Metadata.app_eui', index=3,
      number=31, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='metadata', full_name='discovery.Metadata.metadata',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=179,
  serialized_end=325,
)


_ANNOUNCEMENT = _descriptor.Descriptor(
  name='Announcement',
  full_name='discovery.Announcement',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='discovery.Announcement.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\002ID'))),
    _descriptor.FieldDescriptor(
      name='service_name', full_name='discovery.Announcement.service_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='service_version', full_name='discovery.Announcement.service_version', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='description', full_name='discovery.Announcement.description', index=3,
      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,
      options=None),
    _descriptor.FieldDescriptor(
      name='url', full_name='discovery.Announcement.url', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='public', full_name='discovery.Announcement.public', index=5,
      number=6, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='net_address', full_name='discovery.Announcement.net_address', index=6,
      number=11, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='public_key', full_name='discovery.Announcement.public_key', index=7,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='certificate', full_name='discovery.Announcement.certificate', index=8,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='api_address', full_name='discovery.Announcement.api_address', index=9,
      number=14, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='mqtt_address', full_name='discovery.Announcement.mqtt_address', index=10,
      number=15, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='amqp_address', full_name='discovery.Announcement.amqp_address', index=11,
      number=16, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='metadata', full_name='discovery.Announcement.metadata', index=12,
      number=22, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=328,
  serialized_end=625,
)


_GETSERVICEREQUEST = _descriptor.Descriptor(
  name='GetServiceRequest',
  full_name='discovery.GetServiceRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='service_name', full_name='discovery.GetServiceRequest.service_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=627,
  serialized_end=668,
)


_GETREQUEST = _descriptor.Descriptor(
  name='GetRequest',
  full_name='discovery.GetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='discovery.GetRequest.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\002ID'))),
    _descriptor.FieldDescriptor(
      name='service_name', full_name='discovery.GetRequest.service_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=670,
  serialized_end=724,
)


_METADATAREQUEST = _descriptor.Descriptor(
  name='MetadataRequest',
  full_name='discovery.MetadataRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='discovery.MetadataRequest.id', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\002ID'))),
    _descriptor.FieldDescriptor(
      name='service_name', full_name='discovery.MetadataRequest.service_name', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='metadata', full_name='discovery.MetadataRequest.metadata', index=2,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=726,
  serialized_end=830,
)


_ANNOUNCEMENTSRESPONSE = _descriptor.Descriptor(
  name='AnnouncementsResponse',
  full_name='discovery.AnnouncementsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='services', full_name='discovery.AnnouncementsResponse.services', index=0,
      number=1, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=832,
  serialized_end=898,
)


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


_GETBYGATEWAYIDREQUEST = _descriptor.Descriptor(
  name='GetByGatewayIDRequest',
  full_name='discovery.GetByGatewayIDRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='gateway_id', full_name='discovery.GetByGatewayIDRequest.gateway_id', index=0,
      number=30, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tGatewayID'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=948,
  serialized_end=1006,
)


_GETBYAPPEUIREQUEST = _descriptor.Descriptor(
  name='GetByAppEUIRequest',
  full_name='discovery.GetByAppEUIRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='app_eui', full_name='discovery.GetByAppEUIRequest.app_eui', index=0,
      number=31, type=12, cpp_type=9, label=1,
      has_default_value=False, default_value=_b(""),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\310\336\037\000\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1008,
  serialized_end=1114,
)

_METADATA.oneofs_by_name['metadata'].fields.append(
  _METADATA.fields_by_name['gateway_id'])
_METADATA.fields_by_name['gateway_id'].containing_oneof = _METADATA.oneofs_by_name['metadata']
_METADATA.oneofs_by_name['metadata'].fields.append(
  _METADATA.fields_by_name['dev_addr_prefix'])
_METADATA.fields_by_name['dev_addr_prefix'].containing_oneof = _METADATA.oneofs_by_name['metadata']
_METADATA.oneofs_by_name['metadata'].fields.append(
  _METADATA.fields_by_name['app_id'])
_METADATA.fields_by_name['app_id'].containing_oneof = _METADATA.oneofs_by_name['metadata']
_METADATA.oneofs_by_name['metadata'].fields.append(
  _METADATA.fields_by_name['app_eui'])
_METADATA.fields_by_name['app_eui'].containing_oneof = _METADATA.oneofs_by_name['metadata']
_ANNOUNCEMENT.fields_by_name['metadata'].message_type = _METADATA
_METADATAREQUEST.fields_by_name['metadata'].message_type = _METADATA
_ANNOUNCEMENTSRESPONSE.fields_by_name['services'].message_type = _ANNOUNCEMENT
DESCRIPTOR.message_types_by_name['Metadata'] = _METADATA
DESCRIPTOR.message_types_by_name['Announcement'] = _ANNOUNCEMENT
DESCRIPTOR.message_types_by_name['GetServiceRequest'] = _GETSERVICEREQUEST
DESCRIPTOR.message_types_by_name['GetRequest'] = _GETREQUEST
DESCRIPTOR.message_types_by_name['MetadataRequest'] = _METADATAREQUEST
DESCRIPTOR.message_types_by_name['AnnouncementsResponse'] = _ANNOUNCEMENTSRESPONSE
DESCRIPTOR.message_types_by_name['GetByAppIDRequest'] = _GETBYAPPIDREQUEST
DESCRIPTOR.message_types_by_name['GetByGatewayIDRequest'] = _GETBYGATEWAYIDREQUEST
DESCRIPTOR.message_types_by_name['GetByAppEUIRequest'] = _GETBYAPPEUIREQUEST
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), dict(
  DESCRIPTOR = _METADATA,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.Metadata)
  ))
_sym_db.RegisterMessage(Metadata)

Announcement = _reflection.GeneratedProtocolMessageType('Announcement', (_message.Message,), dict(
  DESCRIPTOR = _ANNOUNCEMENT,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.Announcement)
  ))
_sym_db.RegisterMessage(Announcement)

GetServiceRequest = _reflection.GeneratedProtocolMessageType('GetServiceRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETSERVICEREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.GetServiceRequest)
  ))
_sym_db.RegisterMessage(GetServiceRequest)

GetRequest = _reflection.GeneratedProtocolMessageType('GetRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.GetRequest)
  ))
_sym_db.RegisterMessage(GetRequest)

MetadataRequest = _reflection.GeneratedProtocolMessageType('MetadataRequest', (_message.Message,), dict(
  DESCRIPTOR = _METADATAREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.MetadataRequest)
  ))
_sym_db.RegisterMessage(MetadataRequest)

AnnouncementsResponse = _reflection.GeneratedProtocolMessageType('AnnouncementsResponse', (_message.Message,), dict(
  DESCRIPTOR = _ANNOUNCEMENTSRESPONSE,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.AnnouncementsResponse)
  ))
_sym_db.RegisterMessage(AnnouncementsResponse)

GetByAppIDRequest = _reflection.GeneratedProtocolMessageType('GetByAppIDRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETBYAPPIDREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.GetByAppIDRequest)
  ))
_sym_db.RegisterMessage(GetByAppIDRequest)

GetByGatewayIDRequest = _reflection.GeneratedProtocolMessageType('GetByGatewayIDRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETBYGATEWAYIDREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.GetByGatewayIDRequest)
  ))
_sym_db.RegisterMessage(GetByGatewayIDRequest)

GetByAppEUIRequest = _reflection.GeneratedProtocolMessageType('GetByAppEUIRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETBYAPPEUIREQUEST,
  __module__ = 'github_com.TheThingsNetwork.api.discovery.discovery_pb2'
  # @@protoc_insertion_point(class_scope:discovery.GetByAppEUIRequest)
  ))
_sym_db.RegisterMessage(GetByAppEUIRequest)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\"org.thethingsnetwork.api.discoveryB\016DiscoveryProtoP\001Z)github_com/TheThingsNetwork/api/discovery\252\002\036TheThingsNetwork.API.Discovery'))
_METADATA.fields_by_name['gateway_id'].has_options = True
_METADATA.fields_by_name['gateway_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tGatewayID'))
_METADATA.fields_by_name['app_id'].has_options = True
_METADATA.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_METADATA.fields_by_name['app_eui'].has_options = True
_METADATA.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI'))
_ANNOUNCEMENT.fields_by_name['id'].has_options = True
_ANNOUNCEMENT.fields_by_name['id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\002ID'))
_GETREQUEST.fields_by_name['id'].has_options = True
_GETREQUEST.fields_by_name['id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\002ID'))
_METADATAREQUEST.fields_by_name['id'].has_options = True
_METADATAREQUEST.fields_by_name['id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\002ID'))
_METADATAREQUEST.fields_by_name['metadata'].has_options = True
_METADATAREQUEST.fields_by_name['metadata']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\310\336\037\000'))
_GETBYAPPIDREQUEST.fields_by_name['app_id'].has_options = True
_GETBYAPPIDREQUEST.fields_by_name['app_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\005AppID'))
_GETBYGATEWAYIDREQUEST.fields_by_name['gateway_id'].has_options = True
_GETBYGATEWAYIDREQUEST.fields_by_name['gateway_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\tGatewayID'))
_GETBYAPPEUIREQUEST.fields_by_name['app_eui'].has_options = True
_GETBYAPPEUIREQUEST.fields_by_name['app_eui']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\336\037\006AppEUI\310\336\037\000\332\336\0371github_com/TheThingsNetwork/ttn/core/types.AppEUI'))

_DISCOVERY = _descriptor.ServiceDescriptor(
  name='Discovery',
  full_name='discovery.Discovery',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=1117,
  serialized_end=1755,
  methods=[
  _descriptor.MethodDescriptor(
    name='Announce',
    full_name='discovery.Discovery.Announce',
    index=0,
    containing_service=None,
    input_type=_ANNOUNCEMENT,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAll',
    full_name='discovery.Discovery.GetAll',
    index=1,
    containing_service=None,
    input_type=_GETSERVICEREQUEST,
    output_type=_ANNOUNCEMENTSRESPONSE,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002\037\022\035/announcements/{service_name}')),
  ),
  _descriptor.MethodDescriptor(
    name='Get',
    full_name='discovery.Discovery.Get',
    index=2,
    containing_service=None,
    input_type=_GETREQUEST,
    output_type=_ANNOUNCEMENT,
    options=_descriptor._ParseOptions(descriptor_pb2.MethodOptions(), _b('\202\323\344\223\002$\022\"/announcements/{service_name}/{id}')),
  ),
  _descriptor.MethodDescriptor(
    name='AddMetadata',
    full_name='discovery.Discovery.AddMetadata',
    index=3,
    containing_service=None,
    input_type=_METADATAREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='DeleteMetadata',
    full_name='discovery.Discovery.DeleteMetadata',
    index=4,
    containing_service=None,
    input_type=_METADATAREQUEST,
    output_type=google_dot_protobuf_dot_empty__pb2._EMPTY,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetByAppID',
    full_name='discovery.Discovery.GetByAppID',
    index=5,
    containing_service=None,
    input_type=_GETBYAPPIDREQUEST,
    output_type=_ANNOUNCEMENT,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetByGatewayID',
    full_name='discovery.Discovery.GetByGatewayID',
    index=6,
    containing_service=None,
    input_type=_GETBYGATEWAYIDREQUEST,
    output_type=_ANNOUNCEMENT,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetByAppEUI',
    full_name='discovery.Discovery.GetByAppEUI',
    index=7,
    containing_service=None,
    input_type=_GETBYAPPEUIREQUEST,
    output_type=_ANNOUNCEMENT,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_DISCOVERY)

DESCRIPTOR.services_by_name['Discovery'] = _DISCOVERY


_DISCOVERYMANAGER = _descriptor.ServiceDescriptor(
  name='DiscoveryManager',
  full_name='discovery.DiscoveryManager',
  file=DESCRIPTOR,
  index=1,
  options=None,
  serialized_start=1757,
  serialized_end=1775,
  methods=[
])
_sym_db.RegisterServiceDescriptor(_DISCOVERYMANAGER)

DESCRIPTOR.services_by_name['DiscoveryManager'] = _DISCOVERYMANAGER

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


  class DiscoveryStub(object):
    """The Discovery service is used to discover services within The Things Network.
    """

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

      Args:
        channel: A grpc.Channel.
      """
      self.Announce = channel.unary_unary(
          '/discovery.Discovery/Announce',
          request_serializer=Announcement.SerializeToString,
          response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          )
      self.GetAll = channel.unary_unary(
          '/discovery.Discovery/GetAll',
          request_serializer=GetServiceRequest.SerializeToString,
          response_deserializer=AnnouncementsResponse.FromString,
          )
      self.Get = channel.unary_unary(
          '/discovery.Discovery/Get',
          request_serializer=GetRequest.SerializeToString,
          response_deserializer=Announcement.FromString,
          )
      self.AddMetadata = channel.unary_unary(
          '/discovery.Discovery/AddMetadata',
          request_serializer=MetadataRequest.SerializeToString,
          response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          )
      self.DeleteMetadata = channel.unary_unary(
          '/discovery.Discovery/DeleteMetadata',
          request_serializer=MetadataRequest.SerializeToString,
          response_deserializer=google_dot_protobuf_dot_empty__pb2.Empty.FromString,
          )
      self.GetByAppID = channel.unary_unary(
          '/discovery.Discovery/GetByAppID',
          request_serializer=GetByAppIDRequest.SerializeToString,
          response_deserializer=Announcement.FromString,
          )
      self.GetByGatewayID = channel.unary_unary(
          '/discovery.Discovery/GetByGatewayID',
          request_serializer=GetByGatewayIDRequest.SerializeToString,
          response_deserializer=Announcement.FromString,
          )
      self.GetByAppEUI = channel.unary_unary(
          '/discovery.Discovery/GetByAppEUI',
          request_serializer=GetByAppEUIRequest.SerializeToString,
          response_deserializer=Announcement.FromString,
          )


  class DiscoveryServicer(object):
    """The Discovery service is used to discover services within The Things Network.
    """

    def Announce(self, request, context):
      """Announce a component to the Discovery server.
      A call to `Announce` does not processes the `metadata` field, so you can safely leave this field empty.
      Adding or removing Metadata should be done with the `AddMetadata` and `DeleteMetadata` methods.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetAll(self, request, context):
      """Get all announcements for a specific service type
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Get(self, request, context):
      """Get a specific announcement
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def AddMetadata(self, request, context):
      """Add metadata to an announement
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def DeleteMetadata(self, request, context):
      """Delete metadata from an announcement
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetByAppID(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetByGatewayID(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def GetByAppEUI(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_DiscoveryServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Announce': grpc.unary_unary_rpc_method_handler(
            servicer.Announce,
            request_deserializer=Announcement.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        'GetAll': grpc.unary_unary_rpc_method_handler(
            servicer.GetAll,
            request_deserializer=GetServiceRequest.FromString,
            response_serializer=AnnouncementsResponse.SerializeToString,
        ),
        'Get': grpc.unary_unary_rpc_method_handler(
            servicer.Get,
            request_deserializer=GetRequest.FromString,
            response_serializer=Announcement.SerializeToString,
        ),
        'AddMetadata': grpc.unary_unary_rpc_method_handler(
            servicer.AddMetadata,
            request_deserializer=MetadataRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        'DeleteMetadata': grpc.unary_unary_rpc_method_handler(
            servicer.DeleteMetadata,
            request_deserializer=MetadataRequest.FromString,
            response_serializer=google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
        ),
        'GetByAppID': grpc.unary_unary_rpc_method_handler(
            servicer.GetByAppID,
            request_deserializer=GetByAppIDRequest.FromString,
            response_serializer=Announcement.SerializeToString,
        ),
        'GetByGatewayID': grpc.unary_unary_rpc_method_handler(
            servicer.GetByGatewayID,
            request_deserializer=GetByGatewayIDRequest.FromString,
            response_serializer=Announcement.SerializeToString,
        ),
        'GetByAppEUI': grpc.unary_unary_rpc_method_handler(
            servicer.GetByAppEUI,
            request_deserializer=GetByAppEUIRequest.FromString,
            response_serializer=Announcement.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'discovery.Discovery', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class DiscoveryManagerStub(object):
    """The DiscoveryManager service provides configuration and monitoring functionality
    """

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

      Args:
        channel: A grpc.Channel.
      """


  class DiscoveryManagerServicer(object):
    """The DiscoveryManager service provides configuration and monitoring functionality
    """


  def add_DiscoveryManagerServicer_to_server(servicer, server):
    rpc_method_handlers = {
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'discovery.DiscoveryManager', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The Discovery service is used to discover services within The Things Network.
    """
    def Announce(self, request, context):
      """Announce a component to the Discovery server.
      A call to `Announce` does not processes the `metadata` field, so you can safely leave this field empty.
      Adding or removing Metadata should be done with the `AddMetadata` and `DeleteMetadata` methods.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetAll(self, request, context):
      """Get all announcements for a specific service type
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Get(self, request, context):
      """Get a specific announcement
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def AddMetadata(self, request, context):
      """Add metadata to an announement
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def DeleteMetadata(self, request, context):
      """Delete metadata from an announcement
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetByAppID(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetByGatewayID(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def GetByAppEUI(self, request, context):
      # missing associated documentation comment in .proto file
      pass
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The Discovery service is used to discover services within The Things Network.
    """
    def Announce(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Announce a component to the Discovery server.
      A call to `Announce` does not processes the `metadata` field, so you can safely leave this field empty.
      Adding or removing Metadata should be done with the `AddMetadata` and `DeleteMetadata` methods.
      """
      raise NotImplementedError()
    Announce.future = None
    def GetAll(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Get all announcements for a specific service type
      """
      raise NotImplementedError()
    GetAll.future = None
    def Get(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Get a specific announcement
      """
      raise NotImplementedError()
    Get.future = None
    def AddMetadata(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Add metadata to an announement
      """
      raise NotImplementedError()
    AddMetadata.future = None
    def DeleteMetadata(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Delete metadata from an announcement
      """
      raise NotImplementedError()
    DeleteMetadata.future = None
    def GetByAppID(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetByAppID.future = None
    def GetByGatewayID(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetByGatewayID.future = None
    def GetByAppEUI(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      # missing associated documentation comment in .proto file
      pass
      raise NotImplementedError()
    GetByAppEUI.future = None


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
      ('discovery.Discovery', 'AddMetadata'): MetadataRequest.FromString,
      ('discovery.Discovery', 'Announce'): Announcement.FromString,
      ('discovery.Discovery', 'DeleteMetadata'): MetadataRequest.FromString,
      ('discovery.Discovery', 'Get'): GetRequest.FromString,
      ('discovery.Discovery', 'GetAll'): GetServiceRequest.FromString,
      ('discovery.Discovery', 'GetByAppEUI'): GetByAppEUIRequest.FromString,
      ('discovery.Discovery', 'GetByAppID'): GetByAppIDRequest.FromString,
      ('discovery.Discovery', 'GetByGatewayID'): GetByGatewayIDRequest.FromString,
    }
    response_serializers = {
      ('discovery.Discovery', 'AddMetadata'): google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ('discovery.Discovery', 'Announce'): google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ('discovery.Discovery', 'DeleteMetadata'): google_dot_protobuf_dot_empty__pb2.Empty.SerializeToString,
      ('discovery.Discovery', 'Get'): Announcement.SerializeToString,
      ('discovery.Discovery', 'GetAll'): AnnouncementsResponse.SerializeToString,
      ('discovery.Discovery', 'GetByAppEUI'): Announcement.SerializeToString,
      ('discovery.Discovery', 'GetByAppID'): Announcement.SerializeToString,
      ('discovery.Discovery', 'GetByGatewayID'): Announcement.SerializeToString,
    }
    method_implementations = {
      ('discovery.Discovery', 'AddMetadata'): face_utilities.unary_unary_inline(servicer.AddMetadata),
      ('discovery.Discovery', 'Announce'): face_utilities.unary_unary_inline(servicer.Announce),
      ('discovery.Discovery', 'DeleteMetadata'): face_utilities.unary_unary_inline(servicer.DeleteMetadata),
      ('discovery.Discovery', 'Get'): face_utilities.unary_unary_inline(servicer.Get),
      ('discovery.Discovery', 'GetAll'): face_utilities.unary_unary_inline(servicer.GetAll),
      ('discovery.Discovery', 'GetByAppEUI'): face_utilities.unary_unary_inline(servicer.GetByAppEUI),
      ('discovery.Discovery', 'GetByAppID'): face_utilities.unary_unary_inline(servicer.GetByAppID),
      ('discovery.Discovery', 'GetByGatewayID'): face_utilities.unary_unary_inline(servicer.GetByGatewayID),
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_serializers = {
      ('discovery.Discovery', 'AddMetadata'): MetadataRequest.SerializeToString,
      ('discovery.Discovery', 'Announce'): Announcement.SerializeToString,
      ('discovery.Discovery', 'DeleteMetadata'): MetadataRequest.SerializeToString,
      ('discovery.Discovery', 'Get'): GetRequest.SerializeToString,
      ('discovery.Discovery', 'GetAll'): GetServiceRequest.SerializeToString,
      ('discovery.Discovery', 'GetByAppEUI'): GetByAppEUIRequest.SerializeToString,
      ('discovery.Discovery', 'GetByAppID'): GetByAppIDRequest.SerializeToString,
      ('discovery.Discovery', 'GetByGatewayID'): GetByGatewayIDRequest.SerializeToString,
    }
    response_deserializers = {
      ('discovery.Discovery', 'AddMetadata'): google_dot_protobuf_dot_empty__pb2.Empty.FromString,
      ('discovery.Discovery', 'Announce'): google_dot_protobuf_dot_empty__pb2.Empty.FromString,
      ('discovery.Discovery', 'DeleteMetadata'): google_dot_protobuf_dot_empty__pb2.Empty.FromString,
      ('discovery.Discovery', 'Get'): Announcement.FromString,
      ('discovery.Discovery', 'GetAll'): AnnouncementsResponse.FromString,
      ('discovery.Discovery', 'GetByAppEUI'): Announcement.FromString,
      ('discovery.Discovery', 'GetByAppID'): Announcement.FromString,
      ('discovery.Discovery', 'GetByGatewayID'): Announcement.FromString,
    }
    cardinalities = {
      'AddMetadata': cardinality.Cardinality.UNARY_UNARY,
      'Announce': cardinality.Cardinality.UNARY_UNARY,
      'DeleteMetadata': cardinality.Cardinality.UNARY_UNARY,
      'Get': cardinality.Cardinality.UNARY_UNARY,
      'GetAll': cardinality.Cardinality.UNARY_UNARY,
      'GetByAppEUI': cardinality.Cardinality.UNARY_UNARY,
      'GetByAppID': cardinality.Cardinality.UNARY_UNARY,
      'GetByGatewayID': cardinality.Cardinality.UNARY_UNARY,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'discovery.Discovery', cardinalities, options=stub_options)


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The DiscoveryManager service provides configuration and monitoring functionality
    """


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This class was generated
    only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0."""
    """The DiscoveryManager service provides configuration and monitoring functionality
    """


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

    It is recommended to use the GA API (classes and functions in this
    file not marked beta) for all further purposes. This function was
    generated only to ease transition from grpcio<0.15.0 to grpcio>=0.15.0"""
    request_deserializers = {
    }
    response_serializers = {
    }
    method_implementations = {
    }
    server_options = beta_implementations.server_options(request_deserializers=request_deserializers, response_serializers=response_serializers, thread_pool=pool, thread_pool_size=pool_size, default_timeout=default_timeout, maximum_timeout=maximum_timeout)
    return beta_implementations.server(method_implementations, options=server_options)


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

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