# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: synse.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
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
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()




DESCRIPTOR = _descriptor.FileDescriptor(
  name='synse.proto',
  package='synse',
  syntax='proto3',
  serialized_pb=_b('\n\x0bsynse.proto\x12\x05synse\"\x07\n\x05\x45mpty\"&\n\x08V3Bounds\x12\r\n\x05start\x18\x01 \x01(\t\x12\x0b\n\x03\x65nd\x18\x02 \x01(\t\"\xce\x02\n\x08V3Device\x12\x11\n\ttimestamp\x18\x01 \x01(\t\x12\n\n\x02id\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x0e\n\x06plugin\x18\x04 \x01(\t\x12\x0c\n\x04info\x18\x05 \x01(\t\x12\r\n\x05\x61lias\x18\x06 \x01(\t\x12/\n\x08metadata\x18\x07 \x03(\x0b\x32\x1d.synse.V3Device.MetadataEntry\x12/\n\x0c\x63\x61pabilities\x18\x08 \x01(\x0b\x32\x19.synse.V3DeviceCapability\x12\x1a\n\x04tags\x18\t \x03(\x0b\x32\x0c.synse.V3Tag\x12&\n\x07outputs\x18\n \x03(\x0b\x32\x15.synse.V3DeviceOutput\x12\x11\n\tsortIndex\x18\x0b \x01(\x05\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\"K\n\x12V3DeviceCapability\x12\x0c\n\x04mode\x18\x01 \x01(\t\x12\'\n\x05write\x18\x02 \x01(\x0b\x32\x18.synse.V3WriteCapability\"y\n\x0eV3DeviceOutput\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0c\n\x04type\x18\x02 \x01(\t\x12\x11\n\tprecision\x18\x03 \x01(\x05\x12\x15\n\rscalingFactor\x18\x04 \x01(\x01\x12!\n\x04unit\x18\x05 \x01(\x0b\x32\x13.synse.V3OutputUnit\":\n\x10V3DeviceSelector\x12\x1a\n\x04tags\x18\x01 \x03(\x0b\x32\x0c.synse.V3Tag\x12\n\n\x02id\x18\x02 \x01(\t\"h\n\x08V3Health\x12\x11\n\ttimestamp\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.synse.HealthStatus\x12$\n\x06\x63hecks\x18\x03 \x03(\x0b\x32\x14.synse.V3HealthCheck\"t\n\rV3HealthCheck\x12\x0c\n\x04name\x18\x01 \x01(\t\x12#\n\x06status\x18\x02 \x01(\x0e\x32\x13.synse.HealthStatus\x12\x0f\n\x07message\x18\x03 \x01(\t\x12\x11\n\ttimestamp\x18\x04 \x01(\t\x12\x0c\n\x04type\x18\x05 \x01(\t\"i\n\nV3Metadata\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x12\n\nmaintainer\x18\x02 \x01(\t\x12\x0b\n\x03tag\x18\x03 \x01(\t\x12\x13\n\x0b\x64\x65scription\x18\x04 \x01(\t\x12\x0b\n\x03vcs\x18\x05 \x01(\t\x12\n\n\x02id\x18\x06 \x01(\t\",\n\x0cV3OutputUnit\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06symbol\x18\x02 \x01(\t\"\xc1\x03\n\tV3Reading\x12\n\n\x02id\x18\x01 \x01(\t\x12\x11\n\ttimestamp\x18\x02 \x01(\t\x12\x0c\n\x04type\x18\x03 \x01(\t\x12\x12\n\ndeviceType\x18\x04 \x01(\t\x12.\n\x07\x63ontext\x18\x05 \x03(\x0b\x32\x1d.synse.V3Reading.ContextEntry\x12!\n\x04unit\x18\x06 \x01(\x0b\x32\x13.synse.V3OutputUnit\x12\x16\n\x0cstring_value\x18\x07 \x01(\tH\x00\x12\x14\n\nbool_value\x18\x08 \x01(\x08H\x00\x12\x17\n\rfloat32_value\x18\t \x01(\x02H\x00\x12\x17\n\rfloat64_value\x18\n \x01(\x01H\x00\x12\x15\n\x0bint32_value\x18\x0b \x01(\x05H\x00\x12\x15\n\x0bint64_value\x18\x0c \x01(\x03H\x00\x12\x15\n\x0b\x62ytes_value\x18\r \x01(\x0cH\x00\x12\x16\n\x0cuint32_value\x18\x0e \x01(\rH\x00\x12\x16\n\x0cuint64_value\x18\x0f \x01(\x04H\x00\x12\x12\n\ndeviceInfo\x18\x10 \x01(\t\x1a.\n\x0c\x43ontextEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x07\n\x05value\":\n\rV3ReadRequest\x12)\n\x08selector\x18\x01 \x01(\x0b\x32\x17.synse.V3DeviceSelector\"=\n\x0fV3StreamRequest\x12*\n\tselectors\x18\x01 \x03(\x0b\x32\x17.synse.V3DeviceSelector\"=\n\x05V3Tag\x12\x11\n\tnamespace\x18\x01 \x01(\t\x12\x12\n\nannotation\x18\x02 \x01(\t\x12\r\n\x05label\x18\x03 \x01(\t\"\x1a\n\x0cV3TestStatus\x12\n\n\x02ok\x18\x01 \x01(\x08\"#\n\x15V3TransactionSelector\x12\n\n\x02id\x18\x01 \x01(\t\"\xae\x01\n\x13V3TransactionStatus\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07\x63reated\x18\x02 \x01(\t\x12\x0f\n\x07updated\x18\x03 \x01(\t\x12\x0f\n\x07message\x18\x04 \x01(\t\x12\x0f\n\x07timeout\x18\x05 \x01(\t\x12\"\n\x06status\x18\x06 \x01(\x0e\x32\x12.synse.WriteStatus\x12#\n\x07\x63ontext\x18\x07 \x01(\x0b\x32\x12.synse.V3WriteData\"\x86\x01\n\tV3Version\x12\x15\n\rpluginVersion\x18\x01 \x01(\t\x12\x12\n\nsdkVersion\x18\x02 \x01(\t\x12\x11\n\tbuildDate\x18\x03 \x01(\t\x12\x11\n\tgitCommit\x18\x04 \x01(\t\x12\x0e\n\x06gitTag\x18\x05 \x01(\t\x12\x0c\n\x04\x61rch\x18\x06 \x01(\t\x12\n\n\x02os\x18\x07 \x01(\t\"$\n\x11V3WriteCapability\x12\x0f\n\x07\x61\x63tions\x18\x01 \x03(\t\"@\n\x0bV3WriteData\x12\x0e\n\x06\x61\x63tion\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\x12\x13\n\x0btransaction\x18\x03 \x01(\t\"]\n\x0eV3WritePayload\x12)\n\x08selector\x18\x01 \x01(\x0b\x32\x17.synse.V3DeviceSelector\x12 \n\x04\x64\x61ta\x18\x02 \x03(\x0b\x32\x12.synse.V3WriteData\"f\n\x12V3WriteTransaction\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0e\n\x06\x64\x65vice\x18\x02 \x01(\t\x12#\n\x07\x63ontext\x18\x03 \x01(\x0b\x32\x12.synse.V3WriteData\x12\x0f\n\x07timeout\x18\x04 \x01(\t*0\n\x0cHealthStatus\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x06\n\x02OK\x10\x01\x12\x0b\n\x07\x46\x41ILING\x10\x02*<\n\x0bWriteStatus\x12\x0b\n\x07PENDING\x10\x00\x12\x0b\n\x07WRITING\x10\x01\x12\x08\n\x04\x44ONE\x10\x03\x12\t\n\x05\x45RROR\x10\x04\x32\xac\x05\n\x08V3Plugin\x12\x37\n\x07\x44\x65vices\x12\x17.synse.V3DeviceSelector\x1a\x0f.synse.V3Device\"\x00\x30\x01\x12)\n\x06Health\x12\x0c.synse.Empty\x1a\x0f.synse.V3Health\"\x00\x12-\n\x08Metadata\x12\x0c.synse.Empty\x1a\x11.synse.V3Metadata\"\x00\x12\x32\n\x04Read\x12\x14.synse.V3ReadRequest\x1a\x10.synse.V3Reading\"\x00\x30\x01\x12\x32\n\tReadCache\x12\x0f.synse.V3Bounds\x1a\x10.synse.V3Reading\"\x00\x30\x01\x12:\n\nReadStream\x12\x16.synse.V3StreamRequest\x1a\x10.synse.V3Reading\"\x00\x30\x01\x12+\n\x04Test\x12\x0c.synse.Empty\x1a\x13.synse.V3TestStatus\"\x00\x12I\n\x0bTransaction\x12\x1c.synse.V3TransactionSelector\x1a\x1a.synse.V3TransactionStatus\"\x00\x12<\n\x0cTransactions\x12\x0c.synse.Empty\x1a\x1a.synse.V3TransactionStatus\"\x00\x30\x01\x12+\n\x07Version\x12\x0c.synse.Empty\x1a\x10.synse.V3Version\"\x00\x12\x42\n\nWriteAsync\x12\x15.synse.V3WritePayload\x1a\x19.synse.V3WriteTransaction\"\x00\x30\x01\x12\x42\n\tWriteSync\x12\x15.synse.V3WritePayload\x1a\x1a.synse.V3TransactionStatus\"\x00\x30\x01\x62\x06proto3')
)

_HEALTHSTATUS = _descriptor.EnumDescriptor(
  name='HealthStatus',
  full_name='synse.HealthStatus',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='OK', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FAILING', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2365,
  serialized_end=2413,
)
_sym_db.RegisterEnumDescriptor(_HEALTHSTATUS)

HealthStatus = enum_type_wrapper.EnumTypeWrapper(_HEALTHSTATUS)
_WRITESTATUS = _descriptor.EnumDescriptor(
  name='WriteStatus',
  full_name='synse.WriteStatus',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='PENDING', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='WRITING', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DONE', index=2, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ERROR', index=3, number=4,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2415,
  serialized_end=2475,
)
_sym_db.RegisterEnumDescriptor(_WRITESTATUS)

WriteStatus = enum_type_wrapper.EnumTypeWrapper(_WRITESTATUS)
UNKNOWN = 0
OK = 1
FAILING = 2
PENDING = 0
WRITING = 1
DONE = 3
ERROR = 4



_EMPTY = _descriptor.Descriptor(
  name='Empty',
  full_name='synse.Empty',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=22,
  serialized_end=29,
)


_V3BOUNDS = _descriptor.Descriptor(
  name='V3Bounds',
  full_name='synse.V3Bounds',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='start', full_name='synse.V3Bounds.start', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='end', full_name='synse.V3Bounds.end', 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=31,
  serialized_end=69,
)


_V3DEVICE_METADATAENTRY = _descriptor.Descriptor(
  name='MetadataEntry',
  full_name='synse.V3Device.MetadataEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='synse.V3Device.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,
      options=None),
    _descriptor.FieldDescriptor(
      name='value', full_name='synse.V3Device.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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=359,
  serialized_end=406,
)

_V3DEVICE = _descriptor.Descriptor(
  name='V3Device',
  full_name='synse.V3Device',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='synse.V3Device.timestamp', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='id', full_name='synse.V3Device.id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='type', full_name='synse.V3Device.type', 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='plugin', full_name='synse.V3Device.plugin', 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='info', full_name='synse.V3Device.info', 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='alias', full_name='synse.V3Device.alias', index=5,
      number=6, 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='synse.V3Device.metadata', index=6,
      number=7, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='capabilities', full_name='synse.V3Device.capabilities', index=7,
      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,
      options=None),
    _descriptor.FieldDescriptor(
      name='tags', full_name='synse.V3Device.tags', index=8,
      number=9, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='outputs', full_name='synse.V3Device.outputs', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='sortIndex', full_name='synse.V3Device.sortIndex', index=10,
      number=11, 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[_V3DEVICE_METADATAENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=72,
  serialized_end=406,
)


_V3DEVICECAPABILITY = _descriptor.Descriptor(
  name='V3DeviceCapability',
  full_name='synse.V3DeviceCapability',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='mode', full_name='synse.V3DeviceCapability.mode', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='write', full_name='synse.V3DeviceCapability.write', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=408,
  serialized_end=483,
)


_V3DEVICEOUTPUT = _descriptor.Descriptor(
  name='V3DeviceOutput',
  full_name='synse.V3DeviceOutput',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='synse.V3DeviceOutput.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),
    _descriptor.FieldDescriptor(
      name='type', full_name='synse.V3DeviceOutput.type', 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='precision', full_name='synse.V3DeviceOutput.precision', index=2,
      number=3, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='scalingFactor', full_name='synse.V3DeviceOutput.scalingFactor', index=3,
      number=4, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='unit', full_name='synse.V3DeviceOutput.unit', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=485,
  serialized_end=606,
)


_V3DEVICESELECTOR = _descriptor.Descriptor(
  name='V3DeviceSelector',
  full_name='synse.V3DeviceSelector',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='tags', full_name='synse.V3DeviceSelector.tags', 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),
    _descriptor.FieldDescriptor(
      name='id', full_name='synse.V3DeviceSelector.id', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=608,
  serialized_end=666,
)


_V3HEALTH = _descriptor.Descriptor(
  name='V3Health',
  full_name='synse.V3Health',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='synse.V3Health.timestamp', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='status', full_name='synse.V3Health.status', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='checks', full_name='synse.V3Health.checks', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=668,
  serialized_end=772,
)


_V3HEALTHCHECK = _descriptor.Descriptor(
  name='V3HealthCheck',
  full_name='synse.V3HealthCheck',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='synse.V3HealthCheck.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),
    _descriptor.FieldDescriptor(
      name='status', full_name='synse.V3HealthCheck.status', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='message', full_name='synse.V3HealthCheck.message', 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='timestamp', full_name='synse.V3HealthCheck.timestamp', 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='type', full_name='synse.V3HealthCheck.type', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=774,
  serialized_end=890,
)


_V3METADATA = _descriptor.Descriptor(
  name='V3Metadata',
  full_name='synse.V3Metadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='synse.V3Metadata.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),
    _descriptor.FieldDescriptor(
      name='maintainer', full_name='synse.V3Metadata.maintainer', 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='tag', full_name='synse.V3Metadata.tag', 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='synse.V3Metadata.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='vcs', full_name='synse.V3Metadata.vcs', 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='id', full_name='synse.V3Metadata.id', index=5,
      number=6, 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=892,
  serialized_end=997,
)


_V3OUTPUTUNIT = _descriptor.Descriptor(
  name='V3OutputUnit',
  full_name='synse.V3OutputUnit',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='synse.V3OutputUnit.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),
    _descriptor.FieldDescriptor(
      name='symbol', full_name='synse.V3OutputUnit.symbol', 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=999,
  serialized_end=1043,
)


_V3READING_CONTEXTENTRY = _descriptor.Descriptor(
  name='ContextEntry',
  full_name='synse.V3Reading.ContextEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='synse.V3Reading.ContextEntry.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,
      options=None),
    _descriptor.FieldDescriptor(
      name='value', full_name='synse.V3Reading.ContextEntry.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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001')),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1440,
  serialized_end=1486,
)

_V3READING = _descriptor.Descriptor(
  name='V3Reading',
  full_name='synse.V3Reading',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='synse.V3Reading.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=None),
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='synse.V3Reading.timestamp', 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='type', full_name='synse.V3Reading.type', 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='deviceType', full_name='synse.V3Reading.deviceType', 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='context', full_name='synse.V3Reading.context', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='unit', full_name='synse.V3Reading.unit', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='synse.V3Reading.string_value', index=6,
      number=7, 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='bool_value', full_name='synse.V3Reading.bool_value', index=7,
      number=8, 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='float32_value', full_name='synse.V3Reading.float32_value', index=8,
      number=9, type=2, cpp_type=6, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='float64_value', full_name='synse.V3Reading.float64_value', index=9,
      number=10, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='int32_value', full_name='synse.V3Reading.int32_value', index=10,
      number=11, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='int64_value', full_name='synse.V3Reading.int64_value', index=11,
      number=12, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='bytes_value', full_name='synse.V3Reading.bytes_value', index=12,
      number=13, 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='uint32_value', full_name='synse.V3Reading.uint32_value', index=13,
      number=14, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='uint64_value', full_name='synse.V3Reading.uint64_value', index=14,
      number=15, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='deviceInfo', full_name='synse.V3Reading.deviceInfo', index=15,
      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),
  ],
  extensions=[
  ],
  nested_types=[_V3READING_CONTEXTENTRY, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='value', full_name='synse.V3Reading.value',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1046,
  serialized_end=1495,
)


_V3READREQUEST = _descriptor.Descriptor(
  name='V3ReadRequest',
  full_name='synse.V3ReadRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='selector', full_name='synse.V3ReadRequest.selector', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1497,
  serialized_end=1555,
)


_V3STREAMREQUEST = _descriptor.Descriptor(
  name='V3StreamRequest',
  full_name='synse.V3StreamRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='selectors', full_name='synse.V3StreamRequest.selectors', 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=1557,
  serialized_end=1618,
)


_V3TAG = _descriptor.Descriptor(
  name='V3Tag',
  full_name='synse.V3Tag',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='namespace', full_name='synse.V3Tag.namespace', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='annotation', full_name='synse.V3Tag.annotation', 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='label', full_name='synse.V3Tag.label', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1620,
  serialized_end=1681,
)


_V3TESTSTATUS = _descriptor.Descriptor(
  name='V3TestStatus',
  full_name='synse.V3TestStatus',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ok', full_name='synse.V3TestStatus.ok', index=0,
      number=1, 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1683,
  serialized_end=1709,
)


_V3TRANSACTIONSELECTOR = _descriptor.Descriptor(
  name='V3TransactionSelector',
  full_name='synse.V3TransactionSelector',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='synse.V3TransactionSelector.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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1711,
  serialized_end=1746,
)


_V3TRANSACTIONSTATUS = _descriptor.Descriptor(
  name='V3TransactionStatus',
  full_name='synse.V3TransactionStatus',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='synse.V3TransactionStatus.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=None),
    _descriptor.FieldDescriptor(
      name='created', full_name='synse.V3TransactionStatus.created', 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='updated', full_name='synse.V3TransactionStatus.updated', 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='message', full_name='synse.V3TransactionStatus.message', 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='timeout', full_name='synse.V3TransactionStatus.timeout', 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='status', full_name='synse.V3TransactionStatus.status', index=5,
      number=6, 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='context', full_name='synse.V3TransactionStatus.context', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1749,
  serialized_end=1923,
)


_V3VERSION = _descriptor.Descriptor(
  name='V3Version',
  full_name='synse.V3Version',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pluginVersion', full_name='synse.V3Version.pluginVersion', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='sdkVersion', full_name='synse.V3Version.sdkVersion', 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='buildDate', full_name='synse.V3Version.buildDate', 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='gitCommit', full_name='synse.V3Version.gitCommit', 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='gitTag', full_name='synse.V3Version.gitTag', 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='arch', full_name='synse.V3Version.arch', index=5,
      number=6, 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='os', full_name='synse.V3Version.os', index=6,
      number=7, 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=1926,
  serialized_end=2060,
)


_V3WRITECAPABILITY = _descriptor.Descriptor(
  name='V3WriteCapability',
  full_name='synse.V3WriteCapability',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='actions', full_name='synse.V3WriteCapability.actions', index=0,
      number=1, type=9, cpp_type=9, 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=2062,
  serialized_end=2098,
)


_V3WRITEDATA = _descriptor.Descriptor(
  name='V3WriteData',
  full_name='synse.V3WriteData',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='action', full_name='synse.V3WriteData.action', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='data', full_name='synse.V3WriteData.data', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='transaction', full_name='synse.V3WriteData.transaction', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2100,
  serialized_end=2164,
)


_V3WRITEPAYLOAD = _descriptor.Descriptor(
  name='V3WritePayload',
  full_name='synse.V3WritePayload',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='selector', full_name='synse.V3WritePayload.selector', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='data', full_name='synse.V3WritePayload.data', index=1,
      number=2, 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=2166,
  serialized_end=2259,
)


_V3WRITETRANSACTION = _descriptor.Descriptor(
  name='V3WriteTransaction',
  full_name='synse.V3WriteTransaction',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='synse.V3WriteTransaction.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=None),
    _descriptor.FieldDescriptor(
      name='device', full_name='synse.V3WriteTransaction.device', 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='context', full_name='synse.V3WriteTransaction.context', 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,
      options=None),
    _descriptor.FieldDescriptor(
      name='timeout', full_name='synse.V3WriteTransaction.timeout', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2261,
  serialized_end=2363,
)

_V3DEVICE_METADATAENTRY.containing_type = _V3DEVICE
_V3DEVICE.fields_by_name['metadata'].message_type = _V3DEVICE_METADATAENTRY
_V3DEVICE.fields_by_name['capabilities'].message_type = _V3DEVICECAPABILITY
_V3DEVICE.fields_by_name['tags'].message_type = _V3TAG
_V3DEVICE.fields_by_name['outputs'].message_type = _V3DEVICEOUTPUT
_V3DEVICECAPABILITY.fields_by_name['write'].message_type = _V3WRITECAPABILITY
_V3DEVICEOUTPUT.fields_by_name['unit'].message_type = _V3OUTPUTUNIT
_V3DEVICESELECTOR.fields_by_name['tags'].message_type = _V3TAG
_V3HEALTH.fields_by_name['status'].enum_type = _HEALTHSTATUS
_V3HEALTH.fields_by_name['checks'].message_type = _V3HEALTHCHECK
_V3HEALTHCHECK.fields_by_name['status'].enum_type = _HEALTHSTATUS
_V3READING_CONTEXTENTRY.containing_type = _V3READING
_V3READING.fields_by_name['context'].message_type = _V3READING_CONTEXTENTRY
_V3READING.fields_by_name['unit'].message_type = _V3OUTPUTUNIT
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['string_value'])
_V3READING.fields_by_name['string_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['bool_value'])
_V3READING.fields_by_name['bool_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['float32_value'])
_V3READING.fields_by_name['float32_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['float64_value'])
_V3READING.fields_by_name['float64_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['int32_value'])
_V3READING.fields_by_name['int32_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['int64_value'])
_V3READING.fields_by_name['int64_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['bytes_value'])
_V3READING.fields_by_name['bytes_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['uint32_value'])
_V3READING.fields_by_name['uint32_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READING.oneofs_by_name['value'].fields.append(
  _V3READING.fields_by_name['uint64_value'])
_V3READING.fields_by_name['uint64_value'].containing_oneof = _V3READING.oneofs_by_name['value']
_V3READREQUEST.fields_by_name['selector'].message_type = _V3DEVICESELECTOR
_V3STREAMREQUEST.fields_by_name['selectors'].message_type = _V3DEVICESELECTOR
_V3TRANSACTIONSTATUS.fields_by_name['status'].enum_type = _WRITESTATUS
_V3TRANSACTIONSTATUS.fields_by_name['context'].message_type = _V3WRITEDATA
_V3WRITEPAYLOAD.fields_by_name['selector'].message_type = _V3DEVICESELECTOR
_V3WRITEPAYLOAD.fields_by_name['data'].message_type = _V3WRITEDATA
_V3WRITETRANSACTION.fields_by_name['context'].message_type = _V3WRITEDATA
DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
DESCRIPTOR.message_types_by_name['V3Bounds'] = _V3BOUNDS
DESCRIPTOR.message_types_by_name['V3Device'] = _V3DEVICE
DESCRIPTOR.message_types_by_name['V3DeviceCapability'] = _V3DEVICECAPABILITY
DESCRIPTOR.message_types_by_name['V3DeviceOutput'] = _V3DEVICEOUTPUT
DESCRIPTOR.message_types_by_name['V3DeviceSelector'] = _V3DEVICESELECTOR
DESCRIPTOR.message_types_by_name['V3Health'] = _V3HEALTH
DESCRIPTOR.message_types_by_name['V3HealthCheck'] = _V3HEALTHCHECK
DESCRIPTOR.message_types_by_name['V3Metadata'] = _V3METADATA
DESCRIPTOR.message_types_by_name['V3OutputUnit'] = _V3OUTPUTUNIT
DESCRIPTOR.message_types_by_name['V3Reading'] = _V3READING
DESCRIPTOR.message_types_by_name['V3ReadRequest'] = _V3READREQUEST
DESCRIPTOR.message_types_by_name['V3StreamRequest'] = _V3STREAMREQUEST
DESCRIPTOR.message_types_by_name['V3Tag'] = _V3TAG
DESCRIPTOR.message_types_by_name['V3TestStatus'] = _V3TESTSTATUS
DESCRIPTOR.message_types_by_name['V3TransactionSelector'] = _V3TRANSACTIONSELECTOR
DESCRIPTOR.message_types_by_name['V3TransactionStatus'] = _V3TRANSACTIONSTATUS
DESCRIPTOR.message_types_by_name['V3Version'] = _V3VERSION
DESCRIPTOR.message_types_by_name['V3WriteCapability'] = _V3WRITECAPABILITY
DESCRIPTOR.message_types_by_name['V3WriteData'] = _V3WRITEDATA
DESCRIPTOR.message_types_by_name['V3WritePayload'] = _V3WRITEPAYLOAD
DESCRIPTOR.message_types_by_name['V3WriteTransaction'] = _V3WRITETRANSACTION
DESCRIPTOR.enum_types_by_name['HealthStatus'] = _HEALTHSTATUS
DESCRIPTOR.enum_types_by_name['WriteStatus'] = _WRITESTATUS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Empty = _reflection.GeneratedProtocolMessageType('Empty', (_message.Message,), dict(
  DESCRIPTOR = _EMPTY,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.Empty)
  ))
_sym_db.RegisterMessage(Empty)

V3Bounds = _reflection.GeneratedProtocolMessageType('V3Bounds', (_message.Message,), dict(
  DESCRIPTOR = _V3BOUNDS,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Bounds)
  ))
_sym_db.RegisterMessage(V3Bounds)

V3Device = _reflection.GeneratedProtocolMessageType('V3Device', (_message.Message,), dict(

  MetadataEntry = _reflection.GeneratedProtocolMessageType('MetadataEntry', (_message.Message,), dict(
    DESCRIPTOR = _V3DEVICE_METADATAENTRY,
    __module__ = 'synse_pb2'
    # @@protoc_insertion_point(class_scope:synse.V3Device.MetadataEntry)
    ))
  ,
  DESCRIPTOR = _V3DEVICE,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Device)
  ))
_sym_db.RegisterMessage(V3Device)
_sym_db.RegisterMessage(V3Device.MetadataEntry)

V3DeviceCapability = _reflection.GeneratedProtocolMessageType('V3DeviceCapability', (_message.Message,), dict(
  DESCRIPTOR = _V3DEVICECAPABILITY,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3DeviceCapability)
  ))
_sym_db.RegisterMessage(V3DeviceCapability)

V3DeviceOutput = _reflection.GeneratedProtocolMessageType('V3DeviceOutput', (_message.Message,), dict(
  DESCRIPTOR = _V3DEVICEOUTPUT,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3DeviceOutput)
  ))
_sym_db.RegisterMessage(V3DeviceOutput)

V3DeviceSelector = _reflection.GeneratedProtocolMessageType('V3DeviceSelector', (_message.Message,), dict(
  DESCRIPTOR = _V3DEVICESELECTOR,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3DeviceSelector)
  ))
_sym_db.RegisterMessage(V3DeviceSelector)

V3Health = _reflection.GeneratedProtocolMessageType('V3Health', (_message.Message,), dict(
  DESCRIPTOR = _V3HEALTH,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Health)
  ))
_sym_db.RegisterMessage(V3Health)

V3HealthCheck = _reflection.GeneratedProtocolMessageType('V3HealthCheck', (_message.Message,), dict(
  DESCRIPTOR = _V3HEALTHCHECK,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3HealthCheck)
  ))
_sym_db.RegisterMessage(V3HealthCheck)

V3Metadata = _reflection.GeneratedProtocolMessageType('V3Metadata', (_message.Message,), dict(
  DESCRIPTOR = _V3METADATA,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Metadata)
  ))
_sym_db.RegisterMessage(V3Metadata)

V3OutputUnit = _reflection.GeneratedProtocolMessageType('V3OutputUnit', (_message.Message,), dict(
  DESCRIPTOR = _V3OUTPUTUNIT,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3OutputUnit)
  ))
_sym_db.RegisterMessage(V3OutputUnit)

V3Reading = _reflection.GeneratedProtocolMessageType('V3Reading', (_message.Message,), dict(

  ContextEntry = _reflection.GeneratedProtocolMessageType('ContextEntry', (_message.Message,), dict(
    DESCRIPTOR = _V3READING_CONTEXTENTRY,
    __module__ = 'synse_pb2'
    # @@protoc_insertion_point(class_scope:synse.V3Reading.ContextEntry)
    ))
  ,
  DESCRIPTOR = _V3READING,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Reading)
  ))
_sym_db.RegisterMessage(V3Reading)
_sym_db.RegisterMessage(V3Reading.ContextEntry)

V3ReadRequest = _reflection.GeneratedProtocolMessageType('V3ReadRequest', (_message.Message,), dict(
  DESCRIPTOR = _V3READREQUEST,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3ReadRequest)
  ))
_sym_db.RegisterMessage(V3ReadRequest)

V3StreamRequest = _reflection.GeneratedProtocolMessageType('V3StreamRequest', (_message.Message,), dict(
  DESCRIPTOR = _V3STREAMREQUEST,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3StreamRequest)
  ))
_sym_db.RegisterMessage(V3StreamRequest)

V3Tag = _reflection.GeneratedProtocolMessageType('V3Tag', (_message.Message,), dict(
  DESCRIPTOR = _V3TAG,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Tag)
  ))
_sym_db.RegisterMessage(V3Tag)

V3TestStatus = _reflection.GeneratedProtocolMessageType('V3TestStatus', (_message.Message,), dict(
  DESCRIPTOR = _V3TESTSTATUS,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3TestStatus)
  ))
_sym_db.RegisterMessage(V3TestStatus)

V3TransactionSelector = _reflection.GeneratedProtocolMessageType('V3TransactionSelector', (_message.Message,), dict(
  DESCRIPTOR = _V3TRANSACTIONSELECTOR,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3TransactionSelector)
  ))
_sym_db.RegisterMessage(V3TransactionSelector)

V3TransactionStatus = _reflection.GeneratedProtocolMessageType('V3TransactionStatus', (_message.Message,), dict(
  DESCRIPTOR = _V3TRANSACTIONSTATUS,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3TransactionStatus)
  ))
_sym_db.RegisterMessage(V3TransactionStatus)

V3Version = _reflection.GeneratedProtocolMessageType('V3Version', (_message.Message,), dict(
  DESCRIPTOR = _V3VERSION,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3Version)
  ))
_sym_db.RegisterMessage(V3Version)

V3WriteCapability = _reflection.GeneratedProtocolMessageType('V3WriteCapability', (_message.Message,), dict(
  DESCRIPTOR = _V3WRITECAPABILITY,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3WriteCapability)
  ))
_sym_db.RegisterMessage(V3WriteCapability)

V3WriteData = _reflection.GeneratedProtocolMessageType('V3WriteData', (_message.Message,), dict(
  DESCRIPTOR = _V3WRITEDATA,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3WriteData)
  ))
_sym_db.RegisterMessage(V3WriteData)

V3WritePayload = _reflection.GeneratedProtocolMessageType('V3WritePayload', (_message.Message,), dict(
  DESCRIPTOR = _V3WRITEPAYLOAD,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3WritePayload)
  ))
_sym_db.RegisterMessage(V3WritePayload)

V3WriteTransaction = _reflection.GeneratedProtocolMessageType('V3WriteTransaction', (_message.Message,), dict(
  DESCRIPTOR = _V3WRITETRANSACTION,
  __module__ = 'synse_pb2'
  # @@protoc_insertion_point(class_scope:synse.V3WriteTransaction)
  ))
_sym_db.RegisterMessage(V3WriteTransaction)


_V3DEVICE_METADATAENTRY.has_options = True
_V3DEVICE_METADATAENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
_V3READING_CONTEXTENTRY.has_options = True
_V3READING_CONTEXTENTRY._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('8\001'))
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 V3PluginStub(object):
    """V3Plugin is the API for plugin communication in Synse v3.
    """

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

      Args:
        channel: A grpc.Channel.
      """
      self.Devices = channel.unary_stream(
          '/synse.V3Plugin/Devices',
          request_serializer=V3DeviceSelector.SerializeToString,
          response_deserializer=V3Device.FromString,
          )
      self.Health = channel.unary_unary(
          '/synse.V3Plugin/Health',
          request_serializer=Empty.SerializeToString,
          response_deserializer=V3Health.FromString,
          )
      self.Metadata = channel.unary_unary(
          '/synse.V3Plugin/Metadata',
          request_serializer=Empty.SerializeToString,
          response_deserializer=V3Metadata.FromString,
          )
      self.Read = channel.unary_stream(
          '/synse.V3Plugin/Read',
          request_serializer=V3ReadRequest.SerializeToString,
          response_deserializer=V3Reading.FromString,
          )
      self.ReadCache = channel.unary_stream(
          '/synse.V3Plugin/ReadCache',
          request_serializer=V3Bounds.SerializeToString,
          response_deserializer=V3Reading.FromString,
          )
      self.ReadStream = channel.unary_stream(
          '/synse.V3Plugin/ReadStream',
          request_serializer=V3StreamRequest.SerializeToString,
          response_deserializer=V3Reading.FromString,
          )
      self.Test = channel.unary_unary(
          '/synse.V3Plugin/Test',
          request_serializer=Empty.SerializeToString,
          response_deserializer=V3TestStatus.FromString,
          )
      self.Transaction = channel.unary_unary(
          '/synse.V3Plugin/Transaction',
          request_serializer=V3TransactionSelector.SerializeToString,
          response_deserializer=V3TransactionStatus.FromString,
          )
      self.Transactions = channel.unary_stream(
          '/synse.V3Plugin/Transactions',
          request_serializer=Empty.SerializeToString,
          response_deserializer=V3TransactionStatus.FromString,
          )
      self.Version = channel.unary_unary(
          '/synse.V3Plugin/Version',
          request_serializer=Empty.SerializeToString,
          response_deserializer=V3Version.FromString,
          )
      self.WriteAsync = channel.unary_stream(
          '/synse.V3Plugin/WriteAsync',
          request_serializer=V3WritePayload.SerializeToString,
          response_deserializer=V3WriteTransaction.FromString,
          )
      self.WriteSync = channel.unary_stream(
          '/synse.V3Plugin/WriteSync',
          request_serializer=V3WritePayload.SerializeToString,
          response_deserializer=V3TransactionStatus.FromString,
          )


  class V3PluginServicer(object):
    """V3Plugin is the API for plugin communication in Synse v3.
    """

    def Devices(self, request, context):
      """Devices gets all devices that a plugin manages.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Health(self, request, context):
      """Health gets the health status of a plugin.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Metadata(self, request, context):
      """Metadata gets the plugin meta-information.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Read(self, request, context):
      """Read gets readings from the specified plugin device(s).
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def ReadCache(self, request, context):
      """ReadCache gets the cached readings from the plugin. If the plugin
      is not configured to cache readings, it will returned the entire
      current read state.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def ReadStream(self, request, context):
      """ReadStream returns reading data for the specified devices as they
      are read by the plugin.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Test(self, request, context):
      """Test checks whether the plugin is reachable and ready.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Transaction(self, request, context):
      """Transaction gets the status of a write transaction for an
      asynchronous write.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Transactions(self, request, context):
      """Transactions gets all transactions which are currently kept
      in the plugin's transaction cache.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def Version(self, request, context):
      """Version gets the version information for the plugin.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def WriteAsync(self, request, context):
      """WriteAsync writes data to the specified plugin device. A transaction ID
      is returned so the write status can be checked asynchronously.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')

    def WriteSync(self, request, context):
      """WriteSync writes data to the specified plugin device. The request blocks
      until the write resolves so no asynchronous checking is required.
      """
      context.set_code(grpc.StatusCode.UNIMPLEMENTED)
      context.set_details('Method not implemented!')
      raise NotImplementedError('Method not implemented!')


  def add_V3PluginServicer_to_server(servicer, server):
    rpc_method_handlers = {
        'Devices': grpc.unary_stream_rpc_method_handler(
            servicer.Devices,
            request_deserializer=V3DeviceSelector.FromString,
            response_serializer=V3Device.SerializeToString,
        ),
        'Health': grpc.unary_unary_rpc_method_handler(
            servicer.Health,
            request_deserializer=Empty.FromString,
            response_serializer=V3Health.SerializeToString,
        ),
        'Metadata': grpc.unary_unary_rpc_method_handler(
            servicer.Metadata,
            request_deserializer=Empty.FromString,
            response_serializer=V3Metadata.SerializeToString,
        ),
        'Read': grpc.unary_stream_rpc_method_handler(
            servicer.Read,
            request_deserializer=V3ReadRequest.FromString,
            response_serializer=V3Reading.SerializeToString,
        ),
        'ReadCache': grpc.unary_stream_rpc_method_handler(
            servicer.ReadCache,
            request_deserializer=V3Bounds.FromString,
            response_serializer=V3Reading.SerializeToString,
        ),
        'ReadStream': grpc.unary_stream_rpc_method_handler(
            servicer.ReadStream,
            request_deserializer=V3StreamRequest.FromString,
            response_serializer=V3Reading.SerializeToString,
        ),
        'Test': grpc.unary_unary_rpc_method_handler(
            servicer.Test,
            request_deserializer=Empty.FromString,
            response_serializer=V3TestStatus.SerializeToString,
        ),
        'Transaction': grpc.unary_unary_rpc_method_handler(
            servicer.Transaction,
            request_deserializer=V3TransactionSelector.FromString,
            response_serializer=V3TransactionStatus.SerializeToString,
        ),
        'Transactions': grpc.unary_stream_rpc_method_handler(
            servicer.Transactions,
            request_deserializer=Empty.FromString,
            response_serializer=V3TransactionStatus.SerializeToString,
        ),
        'Version': grpc.unary_unary_rpc_method_handler(
            servicer.Version,
            request_deserializer=Empty.FromString,
            response_serializer=V3Version.SerializeToString,
        ),
        'WriteAsync': grpc.unary_stream_rpc_method_handler(
            servicer.WriteAsync,
            request_deserializer=V3WritePayload.FromString,
            response_serializer=V3WriteTransaction.SerializeToString,
        ),
        'WriteSync': grpc.unary_stream_rpc_method_handler(
            servicer.WriteSync,
            request_deserializer=V3WritePayload.FromString,
            response_serializer=V3TransactionStatus.SerializeToString,
        ),
    }
    generic_handler = grpc.method_handlers_generic_handler(
        'synse.V3Plugin', rpc_method_handlers)
    server.add_generic_rpc_handlers((generic_handler,))


  class BetaV3PluginServicer(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."""
    """V3Plugin is the API for plugin communication in Synse v3.
    """
    def Devices(self, request, context):
      """Devices gets all devices that a plugin manages.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Health(self, request, context):
      """Health gets the health status of a plugin.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Metadata(self, request, context):
      """Metadata gets the plugin meta-information.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Read(self, request, context):
      """Read gets readings from the specified plugin device(s).
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def ReadCache(self, request, context):
      """ReadCache gets the cached readings from the plugin. If the plugin
      is not configured to cache readings, it will returned the entire
      current read state.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def ReadStream(self, request, context):
      """ReadStream returns reading data for the specified devices as they
      are read by the plugin.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Test(self, request, context):
      """Test checks whether the plugin is reachable and ready.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Transaction(self, request, context):
      """Transaction gets the status of a write transaction for an
      asynchronous write.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Transactions(self, request, context):
      """Transactions gets all transactions which are currently kept
      in the plugin's transaction cache.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def Version(self, request, context):
      """Version gets the version information for the plugin.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def WriteAsync(self, request, context):
      """WriteAsync writes data to the specified plugin device. A transaction ID
      is returned so the write status can be checked asynchronously.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)
    def WriteSync(self, request, context):
      """WriteSync writes data to the specified plugin device. The request blocks
      until the write resolves so no asynchronous checking is required.
      """
      context.code(beta_interfaces.StatusCode.UNIMPLEMENTED)


  class BetaV3PluginStub(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."""
    """V3Plugin is the API for plugin communication in Synse v3.
    """
    def Devices(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Devices gets all devices that a plugin manages.
      """
      raise NotImplementedError()
    def Health(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Health gets the health status of a plugin.
      """
      raise NotImplementedError()
    Health.future = None
    def Metadata(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Metadata gets the plugin meta-information.
      """
      raise NotImplementedError()
    Metadata.future = None
    def Read(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Read gets readings from the specified plugin device(s).
      """
      raise NotImplementedError()
    def ReadCache(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """ReadCache gets the cached readings from the plugin. If the plugin
      is not configured to cache readings, it will returned the entire
      current read state.
      """
      raise NotImplementedError()
    def ReadStream(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """ReadStream returns reading data for the specified devices as they
      are read by the plugin.
      """
      raise NotImplementedError()
    def Test(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Test checks whether the plugin is reachable and ready.
      """
      raise NotImplementedError()
    Test.future = None
    def Transaction(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Transaction gets the status of a write transaction for an
      asynchronous write.
      """
      raise NotImplementedError()
    Transaction.future = None
    def Transactions(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Transactions gets all transactions which are currently kept
      in the plugin's transaction cache.
      """
      raise NotImplementedError()
    def Version(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """Version gets the version information for the plugin.
      """
      raise NotImplementedError()
    Version.future = None
    def WriteAsync(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """WriteAsync writes data to the specified plugin device. A transaction ID
      is returned so the write status can be checked asynchronously.
      """
      raise NotImplementedError()
    def WriteSync(self, request, timeout, metadata=None, with_call=False, protocol_options=None):
      """WriteSync writes data to the specified plugin device. The request blocks
      until the write resolves so no asynchronous checking is required.
      """
      raise NotImplementedError()


  def beta_create_V3Plugin_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 = {
      ('synse.V3Plugin', 'Devices'): V3DeviceSelector.FromString,
      ('synse.V3Plugin', 'Health'): Empty.FromString,
      ('synse.V3Plugin', 'Metadata'): Empty.FromString,
      ('synse.V3Plugin', 'Read'): V3ReadRequest.FromString,
      ('synse.V3Plugin', 'ReadCache'): V3Bounds.FromString,
      ('synse.V3Plugin', 'ReadStream'): V3StreamRequest.FromString,
      ('synse.V3Plugin', 'Test'): Empty.FromString,
      ('synse.V3Plugin', 'Transaction'): V3TransactionSelector.FromString,
      ('synse.V3Plugin', 'Transactions'): Empty.FromString,
      ('synse.V3Plugin', 'Version'): Empty.FromString,
      ('synse.V3Plugin', 'WriteAsync'): V3WritePayload.FromString,
      ('synse.V3Plugin', 'WriteSync'): V3WritePayload.FromString,
    }
    response_serializers = {
      ('synse.V3Plugin', 'Devices'): V3Device.SerializeToString,
      ('synse.V3Plugin', 'Health'): V3Health.SerializeToString,
      ('synse.V3Plugin', 'Metadata'): V3Metadata.SerializeToString,
      ('synse.V3Plugin', 'Read'): V3Reading.SerializeToString,
      ('synse.V3Plugin', 'ReadCache'): V3Reading.SerializeToString,
      ('synse.V3Plugin', 'ReadStream'): V3Reading.SerializeToString,
      ('synse.V3Plugin', 'Test'): V3TestStatus.SerializeToString,
      ('synse.V3Plugin', 'Transaction'): V3TransactionStatus.SerializeToString,
      ('synse.V3Plugin', 'Transactions'): V3TransactionStatus.SerializeToString,
      ('synse.V3Plugin', 'Version'): V3Version.SerializeToString,
      ('synse.V3Plugin', 'WriteAsync'): V3WriteTransaction.SerializeToString,
      ('synse.V3Plugin', 'WriteSync'): V3TransactionStatus.SerializeToString,
    }
    method_implementations = {
      ('synse.V3Plugin', 'Devices'): face_utilities.unary_stream_inline(servicer.Devices),
      ('synse.V3Plugin', 'Health'): face_utilities.unary_unary_inline(servicer.Health),
      ('synse.V3Plugin', 'Metadata'): face_utilities.unary_unary_inline(servicer.Metadata),
      ('synse.V3Plugin', 'Read'): face_utilities.unary_stream_inline(servicer.Read),
      ('synse.V3Plugin', 'ReadCache'): face_utilities.unary_stream_inline(servicer.ReadCache),
      ('synse.V3Plugin', 'ReadStream'): face_utilities.unary_stream_inline(servicer.ReadStream),
      ('synse.V3Plugin', 'Test'): face_utilities.unary_unary_inline(servicer.Test),
      ('synse.V3Plugin', 'Transaction'): face_utilities.unary_unary_inline(servicer.Transaction),
      ('synse.V3Plugin', 'Transactions'): face_utilities.unary_stream_inline(servicer.Transactions),
      ('synse.V3Plugin', 'Version'): face_utilities.unary_unary_inline(servicer.Version),
      ('synse.V3Plugin', 'WriteAsync'): face_utilities.unary_stream_inline(servicer.WriteAsync),
      ('synse.V3Plugin', 'WriteSync'): face_utilities.unary_stream_inline(servicer.WriteSync),
    }
    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_V3Plugin_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 = {
      ('synse.V3Plugin', 'Devices'): V3DeviceSelector.SerializeToString,
      ('synse.V3Plugin', 'Health'): Empty.SerializeToString,
      ('synse.V3Plugin', 'Metadata'): Empty.SerializeToString,
      ('synse.V3Plugin', 'Read'): V3ReadRequest.SerializeToString,
      ('synse.V3Plugin', 'ReadCache'): V3Bounds.SerializeToString,
      ('synse.V3Plugin', 'ReadStream'): V3StreamRequest.SerializeToString,
      ('synse.V3Plugin', 'Test'): Empty.SerializeToString,
      ('synse.V3Plugin', 'Transaction'): V3TransactionSelector.SerializeToString,
      ('synse.V3Plugin', 'Transactions'): Empty.SerializeToString,
      ('synse.V3Plugin', 'Version'): Empty.SerializeToString,
      ('synse.V3Plugin', 'WriteAsync'): V3WritePayload.SerializeToString,
      ('synse.V3Plugin', 'WriteSync'): V3WritePayload.SerializeToString,
    }
    response_deserializers = {
      ('synse.V3Plugin', 'Devices'): V3Device.FromString,
      ('synse.V3Plugin', 'Health'): V3Health.FromString,
      ('synse.V3Plugin', 'Metadata'): V3Metadata.FromString,
      ('synse.V3Plugin', 'Read'): V3Reading.FromString,
      ('synse.V3Plugin', 'ReadCache'): V3Reading.FromString,
      ('synse.V3Plugin', 'ReadStream'): V3Reading.FromString,
      ('synse.V3Plugin', 'Test'): V3TestStatus.FromString,
      ('synse.V3Plugin', 'Transaction'): V3TransactionStatus.FromString,
      ('synse.V3Plugin', 'Transactions'): V3TransactionStatus.FromString,
      ('synse.V3Plugin', 'Version'): V3Version.FromString,
      ('synse.V3Plugin', 'WriteAsync'): V3WriteTransaction.FromString,
      ('synse.V3Plugin', 'WriteSync'): V3TransactionStatus.FromString,
    }
    cardinalities = {
      'Devices': cardinality.Cardinality.UNARY_STREAM,
      'Health': cardinality.Cardinality.UNARY_UNARY,
      'Metadata': cardinality.Cardinality.UNARY_UNARY,
      'Read': cardinality.Cardinality.UNARY_STREAM,
      'ReadCache': cardinality.Cardinality.UNARY_STREAM,
      'ReadStream': cardinality.Cardinality.UNARY_STREAM,
      'Test': cardinality.Cardinality.UNARY_UNARY,
      'Transaction': cardinality.Cardinality.UNARY_UNARY,
      'Transactions': cardinality.Cardinality.UNARY_STREAM,
      'Version': cardinality.Cardinality.UNARY_UNARY,
      'WriteAsync': cardinality.Cardinality.UNARY_STREAM,
      'WriteSync': cardinality.Cardinality.UNARY_STREAM,
    }
    stub_options = beta_implementations.stub_options(host=host, metadata_transformer=metadata_transformer, request_serializers=request_serializers, response_deserializers=response_deserializers, thread_pool=pool, thread_pool_size=pool_size)
    return beta_implementations.dynamic_stub(channel, 'synse.V3Plugin', cardinalities, options=stub_options)
except ImportError:
  pass
# @@protoc_insertion_point(module_scope)
