Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
namara-python / rpc / dataspec_pb2.py
Size: Mime:
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: dataspec.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()


from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='dataspec.proto',
  package='dataspec',
  syntax='proto3',
  serialized_pb=_b('\n\x0e\x64\x61taspec.proto\x12\x08\x64\x61taspec\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1egoogle/protobuf/wrappers.proto\"S\n\x11NullableTimestamp\x12\x0f\n\x07is_null\x18\x01 \x01(\x08\x12-\n\ttimestamp\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"T\n\x0eNullableString\x12*\n\x04null\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\tH\x00\x42\x06\n\x04kind\"S\n\rNullableFloat\x12*\n\x04null\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x01H\x00\x42\x06\n\x04kind\"R\n\x0cNullableBool\x12*\n\x04null\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12\x0e\n\x04\x64\x61ta\x18\x02 \x01(\x08H\x00\x42\x06\n\x04kind\"\x07\n\x05\x45mpty\"\x85\x03\n\x06Metric\x12\x30\n\x0bimported_at\x18\x01 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x12\n\ndataset_id\x18\x02 \x01(\t\x12\x1a\n\x12version_identifier\x18\x03 \x01(\t\x12\x13\n\x0brevision_id\x18\x04 \x01(\t\x12\x0e\n\x06metric\x18\x05 \x01(\t\x12\x0b\n\x03key\x18\x06 \x01(\t\x12/\n\ncreated_at\x18\x07 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12/\n\nupdated_at\x18\x08 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x15\n\x0b\x66loat_value\x18\t \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\n \x01(\tH\x00\x12\x14\n\njson_value\x18\x0b \x01(\tH\x00\x12\x31\n\ntime_value\x18\x0c \x01(\x0b\x32\x1b.dataspec.NullableTimestampH\x00\x42\r\n\x0bmetricValue\"]\n\x16GenerateMetricsRequest\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x1a\n\x12version_identifier\x18\x02 \x01(\t\x12\x13\n\x0brevision_id\x18\x03 \x01(\t\"\x19\n\x17GenerateMetricsResponse\"\xde\x02\n\x12ListMetricsRequest\x12\x12\n\ndataset_id\x18\x04 \x01(\t\x12\x33\n\x06\x66ilter\x18\x01 \x01(\x0b\x32#.dataspec.ListMetricsRequest.Filter\x1a\xfe\x01\n\x06\x46ilter\x12\x1e\n\x05limit\x18\x01 \x01(\x0b\x32\x0f.dataspec.Limit\x12 \n\x06offset\x18\x02 \x01(\x0b\x32\x10.dataspec.Offset\x12\x1c\n\x07metrics\x18\x03 \x03(\tR\x0bmetricsList\x12\x16\n\x04keys\x18\x04 \x03(\tR\x08keysList\x12\x1c\n\x04sort\x18\x05 \x01(\x0b\x32\x0e.dataspec.Sort\x12/\n\nstart_time\x18\x06 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12-\n\x08\x65nd_time\x18\x07 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\"E\n\x13ListMetricsResponse\x12.\n\x07metrics\x18\x01 \x03(\x0b\x32\x10.dataspec.MetricR\x0bmetricsList\"\xea\n\n\x05\x41lert\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12\x12\n\ndataset_id\x18\x03 \x01(\t\x12\x1a\n\x12version_identifier\x18\x04 \x01(\t\x12\x0e\n\x06metric\x18\x05 \x01(\t\x12\x0b\n\x03key\x18\x06 \x01(\t\x12\x15\n\x0b\x66loat_value\x18\t \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\n \x01(\tH\x00\x12\x31\n\ntime_value\x18\x0b \x01(\x0b\x32\x1b.dataspec.NullableTimestampH\x00\x12?\n\x13\x63onstraint_operator\x18\x07 \x01(\x0e\x32\".dataspec.Alert.ConstraintOperator\x12\x37\n\x0f\x63onstraint_type\x18\x08 \x01(\x0e\x32\x1e.dataspec.Alert.ConstraintType\x12/\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12/\n\nupdated_at\x18\r \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x12\n\nalert_name\x18\x0e \x01(\t\x12\x1e\n\x16\x63onstraint_query_value\x18\x0f \x01(\t\x12\x1d\n\x15left_constraint_alias\x18\x10 \x01(\t\x12,\n old_left_constraint_string_value\x18\x11 \x01(\tB\x02\x18\x01\x12+\n\x1fold_left_constraint_float_value\x18\x12 \x01(\x02\x42\x02\x18\x01\x12\x1e\n\x16right_constraint_alias\x18\x13 \x01(\t\x12-\n!old_right_constraint_string_value\x18\x14 \x01(\tB\x02\x18\x01\x12,\n old_right_constraint_float_value\x18\x15 \x01(\x02\x42\x02\x18\x01\x12\"\n\x05state\x18\x16 \x01(\x0e\x32\x13.dataspec.StateType\x12\x14\n\x0c\x65mail_opt_in\x18\x17 \x01(\x08\x12\x11\n\tdismissed\x18\x18 \x01(\x08\x12\x42\n\x1cleft_constraint_string_value\x18\x19 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x41\n\x1bleft_constraint_float_value\x18\x1a \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12?\n\x1aleft_constraint_time_value\x18\x1d \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x43\n\x1dright_constraint_string_value\x18\x1b \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x42\n\x1cright_constraint_float_value\x18\x1c \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12@\n\x1bright_constraint_time_value\x18\x1e \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\"\\\n\x12\x43onstraintOperator\x12\x14\n\x10UNKNOWN_OPERATOR\x10\x00\x12\x06\n\x02LT\x10\x01\x12\x07\n\x03LTE\x10\x02\x12\x06\n\x02GT\x10\x03\x12\x07\n\x03GTE\x10\x04\x12\x06\n\x02\x45Q\x10\x05\x12\x06\n\x02NE\x10\x06\"=\n\x0e\x43onstraintType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x07\n\x03\x41\x42S\x10\x01\x12\x07\n\x03REL\x10\x02\x12\x07\n\x03QRY\x10\x03\x42\x11\n\x0f\x43onstraintValue\"h\n\rNullableState\x12*\n\x04null\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12#\n\x04\x64\x61ta\x18\x02 \x01(\x0e\x32\x13.dataspec.StateTypeH\x00\x42\x06\n\x04kind\"4\n\x12\x43reateAlertRequest\x12\x1e\n\x05\x61lert\x18\x01 \x01(\x0b\x32\x0f.dataspec.Alert\"5\n\x13\x43reateAlertResponse\x12\x1e\n\x05\x61lert\x18\x01 \x01(\x0b\x32\x0f.dataspec.Alert\"\xc2\x02\n\x11ListAlertsRequest\x12\x32\n\x06\x66ilter\x18\x01 \x01(\x0b\x32\".dataspec.ListAlertsRequest.Filter\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x1a\xe7\x01\n\x06\x46ilter\x12\x1e\n\x05limit\x18\x01 \x01(\x0b\x32\x0f.dataspec.Limit\x12 \n\x06offset\x18\x02 \x01(\x0b\x32\x10.dataspec.Offset\x12#\n\x0b\x64\x61taset_ids\x18\x03 \x03(\tR\x0e\x64\x61tasetIdsList\x12\x1c\n\x07metrics\x18\x04 \x03(\tR\x0bmetricsList\x12\x16\n\x04keys\x18\x05 \x03(\tR\x08keysList\x12\x1c\n\x04sort\x18\x06 \x01(\x0b\x32\x0e.dataspec.Sort\x12\"\n\x05state\x18\x07 \x01(\x0e\x32\x13.dataspec.StateType\"V\n\x12ListAlertsResponse\x12+\n\x06\x61lerts\x18\x01 \x03(\x0b\x32\x0f.dataspec.AlertR\nalertsList\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\xc2\x01\n\x1aListTriggeredAlertsRequest\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x0f\n\x07user_id\x18\x02 \x01(\t\x12;\n\x06\x66ilter\x18\x03 \x01(\x0b\x32+.dataspec.ListTriggeredAlertsRequest.Filter\x1a\x42\n\x06\x46ilter\x12\x1c\n\x04sort\x18\x01 \x01(\x0b\x32\x0e.dataspec.Sort\x12\x1a\n\x12version_identifier\x18\x02 \x01(\t\"f\n\x1bListTriggeredAlertsResponse\x12G\n\x10triggered_alerts\x18\x01 \x03(\x0b\x32\x18.dataspec.TriggeredAlertR\x13triggeredAlertsList\"\x1d\n\x0fGetAlertRequest\x12\n\n\x02id\x18\x01 \x01(\t\"2\n\x10GetAlertResponse\x12\x1e\n\x05\x61lert\x18\x01 \x01(\x0b\x32\x0f.dataspec.Alert\"q\n\x12UpdateAlertRequest\x12\"\n\x05\x61lert\x18\x01 \x01(\x0b\x32\x0f.dataspec.AlertB\x02\x18\x01\x12\n\n\x02id\x18\x02 \x01(\t\x12+\n\x0c\x61lert_update\x18\x03 \x01(\x0b\x32\x15.dataspec.AlertUpdate\"5\n\x13UpdateAlertResponse\x12\x1e\n\x05\x61lert\x18\x01 \x01(\x0b\x32\x0f.dataspec.Alert\"4\n\x12\x44\x65leteAlertRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\"\x15\n\x13\x44\x65leteAlertResponse\"\x16\n\x05Limit\x12\r\n\x05value\x18\x01 \x01(\x05\"\x17\n\x06Offset\x12\r\n\x05value\x18\x01 \x01(\x05\"$\n\x04Sort\x12\r\n\x05value\x18\x01 \x01(\t\x12\r\n\x05order\x18\x02 \x01(\t\"^\n\x0eTriggeredAlert\x12\x1e\n\x05\x61lert\x18\x01 \x01(\x0b\x32\x0f.dataspec.Alert\x12\x13\n\x0bquery_error\x18\x02 \x01(\x08\x12\x17\n\x0ftriggered_value\x18\x03 \x01(\t\"\x9f\n\n\x0b\x41lertUpdate\x12)\n\x07user_id\x18\x02 \x01(\x0b\x32\x18.dataspec.NullableString\x12,\n\ndataset_id\x18\x03 \x01(\x0b\x32\x18.dataspec.NullableString\x12\x34\n\x12version_identifier\x18\x04 \x01(\x0b\x32\x18.dataspec.NullableString\x12(\n\x06metric\x18\x05 \x01(\x0b\x32\x18.dataspec.NullableString\x12%\n\x03key\x18\x06 \x01(\x0b\x32\x18.dataspec.NullableString\x12\x15\n\x0b\x66loat_value\x18\t \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\n \x01(\tH\x00\x12\x31\n\ntime_value\x18\x0b \x01(\x0b\x32\x1b.dataspec.NullableTimestampH\x00\x12\x41\n\x13\x63onstraint_operator\x18\x07 \x01(\x0b\x32$.dataspec.NullableConstraintOperator\x12\x39\n\x0f\x63onstraint_type\x18\x08 \x01(\x0b\x32 .dataspec.NullableConstraintType\x12/\n\ncreated_at\x18\x0c \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12/\n\nupdated_at\x18\r \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12,\n\nalert_name\x18\x0e \x01(\x0b\x32\x18.dataspec.NullableString\x12\x38\n\x16\x63onstraint_query_value\x18\x0f \x01(\x0b\x32\x18.dataspec.NullableString\x12\x37\n\x15left_constraint_alias\x18\x10 \x01(\x0b\x32\x18.dataspec.NullableString\x12>\n\x1cleft_constraint_string_value\x18\x11 \x01(\x0b\x32\x18.dataspec.NullableString\x12<\n\x1bleft_constraint_float_value\x18\x12 \x01(\x0b\x32\x17.dataspec.NullableFloat\x12\x38\n\x16right_constraint_alias\x18\x13 \x01(\x0b\x32\x18.dataspec.NullableString\x12?\n\x1dright_constraint_string_value\x18\x14 \x01(\x0b\x32\x18.dataspec.NullableString\x12=\n\x1cright_constraint_float_value\x18\x15 \x01(\x0b\x32\x17.dataspec.NullableFloat\x12&\n\x05state\x18\x16 \x01(\x0b\x32\x17.dataspec.NullableState\x12,\n\x0c\x65mail_opt_in\x18\x17 \x01(\x0b\x32\x16.dataspec.NullableBool\x12)\n\tdismissed\x18\x18 \x01(\x0b\x32\x16.dataspec.NullableBool\x12?\n\x1aleft_constraint_time_value\x18\x19 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12@\n\x1bright_constraint_time_value\x18\x1a \x01(\x0b\x32\x1b.dataspec.NullableTimestampB\x11\n\x0f\x43onstraintValue\"~\n\x1aNullableConstraintOperator\x12*\n\x04null\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12,\n\x04\x64\x61ta\x18\x02 \x01(\x0e\x32\x1c.dataspec.ConstraintOperatorH\x00\x42\x06\n\x04kind\"v\n\x16NullableConstraintType\x12*\n\x04null\x18\x01 \x01(\x0e\x32\x1a.google.protobuf.NullValueH\x00\x12(\n\x04\x64\x61ta\x18\x02 \x01(\x0e\x32\x18.dataspec.ConstraintTypeH\x00\x42\x06\n\x04kind*2\n\tStateType\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08INACTIVE\x10\x01\x12\n\n\x06\x41\x43TIVE\x10\x02*\\\n\x12\x43onstraintOperator\x12\x14\n\x10UNKNOWN_OPERATOR\x10\x00\x12\x06\n\x02LT\x10\x01\x12\x07\n\x03LTE\x10\x02\x12\x06\n\x02GT\x10\x03\x12\x07\n\x03GTE\x10\x04\x12\x06\n\x02\x45Q\x10\x05\x12\x06\n\x02NE\x10\x06*=\n\x0e\x43onstraintType\x12\x10\n\x0cUNKNOWN_TYPE\x10\x00\x12\x07\n\x03\x41\x42S\x10\x01\x12\x07\n\x03REL\x10\x02\x12\x07\n\x03QRY\x10\x03\x32\xba\x05\n\x0f\x44\x61taspecService\x12V\n\x0fGenerateMetrics\x12 .dataspec.GenerateMetricsRequest\x1a!.dataspec.GenerateMetricsResponse\x12J\n\x0bListMetrics\x12\x1c.dataspec.ListMetricsRequest\x1a\x1d.dataspec.ListMetricsResponse\x12J\n\x0b\x43reateAlert\x12\x1c.dataspec.CreateAlertRequest\x1a\x1d.dataspec.CreateAlertResponse\x12G\n\nListAlerts\x12\x1b.dataspec.ListAlertsRequest\x1a\x1c.dataspec.ListAlertsResponse\x12\x62\n\x13ListTriggeredAlerts\x12$.dataspec.ListTriggeredAlertsRequest\x1a%.dataspec.ListTriggeredAlertsResponse\x12\x41\n\x08GetAlert\x12\x19.dataspec.GetAlertRequest\x1a\x1a.dataspec.GetAlertResponse\x12J\n\x0bUpdateAlert\x12\x1c.dataspec.UpdateAlertRequest\x1a\x1d.dataspec.UpdateAlertResponse\x12J\n\x0b\x44\x65leteAlert\x12\x1c.dataspec.DeleteAlertRequest\x1a\x1d.dataspec.DeleteAlertResponse\x12/\n\x0bHealthCheck\x12\x0f.dataspec.Empty\x1a\x0f.dataspec.EmptyBR\n\x13\x63om.namara.dataspecB\x08\x44\x61taspecZ1github.com/thinkdata-works/namara-go/rpc/dataspecb\x06proto3')
  ,
  dependencies=[google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_struct__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])

_STATETYPE = _descriptor.EnumDescriptor(
  name='StateType',
  full_name='dataspec.StateType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='INACTIVE', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ACTIVE', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=5803,
  serialized_end=5853,
)
_sym_db.RegisterEnumDescriptor(_STATETYPE)

StateType = enum_type_wrapper.EnumTypeWrapper(_STATETYPE)
_CONSTRAINTOPERATOR = _descriptor.EnumDescriptor(
  name='ConstraintOperator',
  full_name='dataspec.ConstraintOperator',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN_OPERATOR', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LTE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GT', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GTE', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EQ', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NE', index=6, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2623,
  serialized_end=2715,
)
_sym_db.RegisterEnumDescriptor(_CONSTRAINTOPERATOR)

ConstraintOperator = enum_type_wrapper.EnumTypeWrapper(_CONSTRAINTOPERATOR)
_CONSTRAINTTYPE = _descriptor.EnumDescriptor(
  name='ConstraintType',
  full_name='dataspec.ConstraintType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN_TYPE', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ABS', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REL', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='QRY', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2717,
  serialized_end=2778,
)
_sym_db.RegisterEnumDescriptor(_CONSTRAINTTYPE)

ConstraintType = enum_type_wrapper.EnumTypeWrapper(_CONSTRAINTTYPE)
UNKNOWN = 0
INACTIVE = 1
ACTIVE = 2
UNKNOWN_OPERATOR = 0
LT = 1
LTE = 2
GT = 3
GTE = 4
EQ = 5
NE = 6
UNKNOWN_TYPE = 0
ABS = 1
REL = 2
QRY = 3


_ALERT_CONSTRAINTOPERATOR = _descriptor.EnumDescriptor(
  name='ConstraintOperator',
  full_name='dataspec.Alert.ConstraintOperator',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN_OPERATOR', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LT', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LTE', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GT', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GTE', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EQ', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NE', index=6, number=6,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2623,
  serialized_end=2715,
)
_sym_db.RegisterEnumDescriptor(_ALERT_CONSTRAINTOPERATOR)

_ALERT_CONSTRAINTTYPE = _descriptor.EnumDescriptor(
  name='ConstraintType',
  full_name='dataspec.Alert.ConstraintType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN_TYPE', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ABS', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REL', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='QRY', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2717,
  serialized_end=2778,
)
_sym_db.RegisterEnumDescriptor(_ALERT_CONSTRAINTTYPE)


_NULLABLETIMESTAMP = _descriptor.Descriptor(
  name='NullableTimestamp',
  full_name='dataspec.NullableTimestamp',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='is_null', full_name='dataspec.NullableTimestamp.is_null', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='dataspec.NullableTimestamp.timestamp', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=123,
  serialized_end=206,
)


_NULLABLESTRING = _descriptor.Descriptor(
  name='NullableString',
  full_name='dataspec.NullableString',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null', full_name='dataspec.NullableString.null', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='dataspec.NullableString.data', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='dataspec.NullableString.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=208,
  serialized_end=292,
)


_NULLABLEFLOAT = _descriptor.Descriptor(
  name='NullableFloat',
  full_name='dataspec.NullableFloat',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null', full_name='dataspec.NullableFloat.null', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='dataspec.NullableFloat.data', index=1,
      number=2, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='dataspec.NullableFloat.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=294,
  serialized_end=377,
)


_NULLABLEBOOL = _descriptor.Descriptor(
  name='NullableBool',
  full_name='dataspec.NullableBool',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null', full_name='dataspec.NullableBool.null', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='dataspec.NullableBool.data', index=1,
      number=2, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='dataspec.NullableBool.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=379,
  serialized_end=461,
)


_EMPTY = _descriptor.Descriptor(
  name='Empty',
  full_name='dataspec.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=463,
  serialized_end=470,
)


_METRIC = _descriptor.Descriptor(
  name='Metric',
  full_name='dataspec.Metric',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='imported_at', full_name='dataspec.Metric.imported_at', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.Metric.dataset_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='version_identifier', full_name='dataspec.Metric.version_identifier', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='revision_id', full_name='dataspec.Metric.revision_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='metric', full_name='dataspec.Metric.metric', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='key', full_name='dataspec.Metric.key', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='created_at', full_name='dataspec.Metric.created_at', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='updated_at', full_name='dataspec.Metric.updated_at', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='dataspec.Metric.float_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='dataspec.Metric.string_value', index=9,
      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=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='json_value', full_name='dataspec.Metric.json_value', index=10,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time_value', full_name='dataspec.Metric.time_value', index=11,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='metricValue', full_name='dataspec.Metric.metricValue',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=473,
  serialized_end=862,
)


_GENERATEMETRICSREQUEST = _descriptor.Descriptor(
  name='GenerateMetricsRequest',
  full_name='dataspec.GenerateMetricsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.GenerateMetricsRequest.dataset_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='version_identifier', full_name='dataspec.GenerateMetricsRequest.version_identifier', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='revision_id', full_name='dataspec.GenerateMetricsRequest.revision_id', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=864,
  serialized_end=957,
)


_GENERATEMETRICSRESPONSE = _descriptor.Descriptor(
  name='GenerateMetricsResponse',
  full_name='dataspec.GenerateMetricsResponse',
  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=959,
  serialized_end=984,
)


_LISTMETRICSREQUEST_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='dataspec.ListMetricsRequest.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='limit', full_name='dataspec.ListMetricsRequest.Filter.limit', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='offset', full_name='dataspec.ListMetricsRequest.Filter.offset', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='metrics', full_name='dataspec.ListMetricsRequest.Filter.metrics', index=2,
      number=3, 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, json_name='metricsList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='keys', full_name='dataspec.ListMetricsRequest.Filter.keys', index=3,
      number=4, 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, json_name='keysList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sort', full_name='dataspec.ListMetricsRequest.Filter.sort', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='start_time', full_name='dataspec.ListMetricsRequest.Filter.start_time', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='end_time', full_name='dataspec.ListMetricsRequest.Filter.end_time', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1083,
  serialized_end=1337,
)

_LISTMETRICSREQUEST = _descriptor.Descriptor(
  name='ListMetricsRequest',
  full_name='dataspec.ListMetricsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.ListMetricsRequest.dataset_id', index=0,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='filter', full_name='dataspec.ListMetricsRequest.filter', index=1,
      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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_LISTMETRICSREQUEST_FILTER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=987,
  serialized_end=1337,
)


_LISTMETRICSRESPONSE = _descriptor.Descriptor(
  name='ListMetricsResponse',
  full_name='dataspec.ListMetricsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metrics', full_name='dataspec.ListMetricsResponse.metrics', 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, json_name='metricsList', file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1339,
  serialized_end=1408,
)


_ALERT = _descriptor.Descriptor(
  name='Alert',
  full_name='dataspec.Alert',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.Alert.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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='user_id', full_name='dataspec.Alert.user_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.Alert.dataset_id', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='version_identifier', full_name='dataspec.Alert.version_identifier', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='metric', full_name='dataspec.Alert.metric', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='key', full_name='dataspec.Alert.key', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='dataspec.Alert.float_value', index=6,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='dataspec.Alert.string_value', index=7,
      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=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time_value', full_name='dataspec.Alert.time_value', index=8,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_operator', full_name='dataspec.Alert.constraint_operator', index=9,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_type', full_name='dataspec.Alert.constraint_type', index=10,
      number=8, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='created_at', full_name='dataspec.Alert.created_at', index=11,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='updated_at', full_name='dataspec.Alert.updated_at', index=12,
      number=13, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='alert_name', full_name='dataspec.Alert.alert_name', index=13,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_query_value', full_name='dataspec.Alert.constraint_query_value', index=14,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_alias', full_name='dataspec.Alert.left_constraint_alias', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='old_left_constraint_string_value', full_name='dataspec.Alert.old_left_constraint_string_value', index=16,
      number=17, 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('\030\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='old_left_constraint_float_value', full_name='dataspec.Alert.old_left_constraint_float_value', index=17,
      number=18, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_alias', full_name='dataspec.Alert.right_constraint_alias', index=18,
      number=19, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='old_right_constraint_string_value', full_name='dataspec.Alert.old_right_constraint_string_value', index=19,
      number=20, 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('\030\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='old_right_constraint_float_value', full_name='dataspec.Alert.old_right_constraint_float_value', index=20,
      number=21, 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='state', full_name='dataspec.Alert.state', index=21,
      number=22, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='email_opt_in', full_name='dataspec.Alert.email_opt_in', index=22,
      number=23, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dismissed', full_name='dataspec.Alert.dismissed', index=23,
      number=24, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_string_value', full_name='dataspec.Alert.left_constraint_string_value', index=24,
      number=25, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_float_value', full_name='dataspec.Alert.left_constraint_float_value', index=25,
      number=26, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_time_value', full_name='dataspec.Alert.left_constraint_time_value', index=26,
      number=29, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_string_value', full_name='dataspec.Alert.right_constraint_string_value', index=27,
      number=27, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_float_value', full_name='dataspec.Alert.right_constraint_float_value', index=28,
      number=28, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_time_value', full_name='dataspec.Alert.right_constraint_time_value', index=29,
      number=30, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _ALERT_CONSTRAINTOPERATOR,
    _ALERT_CONSTRAINTTYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='ConstraintValue', full_name='dataspec.Alert.ConstraintValue',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1411,
  serialized_end=2797,
)


_NULLABLESTATE = _descriptor.Descriptor(
  name='NullableState',
  full_name='dataspec.NullableState',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null', full_name='dataspec.NullableState.null', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='dataspec.NullableState.data', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='dataspec.NullableState.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2799,
  serialized_end=2903,
)


_CREATEALERTREQUEST = _descriptor.Descriptor(
  name='CreateAlertRequest',
  full_name='dataspec.CreateAlertRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alert', full_name='dataspec.CreateAlertRequest.alert', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2905,
  serialized_end=2957,
)


_CREATEALERTRESPONSE = _descriptor.Descriptor(
  name='CreateAlertResponse',
  full_name='dataspec.CreateAlertResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alert', full_name='dataspec.CreateAlertResponse.alert', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2959,
  serialized_end=3012,
)


_LISTALERTSREQUEST_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='dataspec.ListAlertsRequest.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='limit', full_name='dataspec.ListAlertsRequest.Filter.limit', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='offset', full_name='dataspec.ListAlertsRequest.Filter.offset', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dataset_ids', full_name='dataspec.ListAlertsRequest.Filter.dataset_ids', index=2,
      number=3, 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, json_name='datasetIdsList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='metrics', full_name='dataspec.ListAlertsRequest.Filter.metrics', index=3,
      number=4, 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, json_name='metricsList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='keys', full_name='dataspec.ListAlertsRequest.Filter.keys', index=4,
      number=5, 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, json_name='keysList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sort', full_name='dataspec.ListAlertsRequest.Filter.sort', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='state', full_name='dataspec.ListAlertsRequest.Filter.state', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3106,
  serialized_end=3337,
)

_LISTALERTSREQUEST = _descriptor.Descriptor(
  name='ListAlertsRequest',
  full_name='dataspec.ListAlertsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filter', full_name='dataspec.ListAlertsRequest.filter', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='user_id', full_name='dataspec.ListAlertsRequest.user_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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_LISTALERTSREQUEST_FILTER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3015,
  serialized_end=3337,
)


_LISTALERTSRESPONSE = _descriptor.Descriptor(
  name='ListAlertsResponse',
  full_name='dataspec.ListAlertsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alerts', full_name='dataspec.ListAlertsResponse.alerts', 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, json_name='alertsList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='total_count', full_name='dataspec.ListAlertsResponse.total_count', index=1,
      number=2, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3339,
  serialized_end=3425,
)


_LISTTRIGGEREDALERTSREQUEST_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='dataspec.ListTriggeredAlertsRequest.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sort', full_name='dataspec.ListTriggeredAlertsRequest.Filter.sort', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='version_identifier', full_name='dataspec.ListTriggeredAlertsRequest.Filter.version_identifier', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3556,
  serialized_end=3622,
)

_LISTTRIGGEREDALERTSREQUEST = _descriptor.Descriptor(
  name='ListTriggeredAlertsRequest',
  full_name='dataspec.ListTriggeredAlertsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.ListTriggeredAlertsRequest.dataset_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='user_id', full_name='dataspec.ListTriggeredAlertsRequest.user_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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='filter', full_name='dataspec.ListTriggeredAlertsRequest.filter', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_LISTTRIGGEREDALERTSREQUEST_FILTER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3428,
  serialized_end=3622,
)


_LISTTRIGGEREDALERTSRESPONSE = _descriptor.Descriptor(
  name='ListTriggeredAlertsResponse',
  full_name='dataspec.ListTriggeredAlertsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='triggered_alerts', full_name='dataspec.ListTriggeredAlertsResponse.triggered_alerts', 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, json_name='triggeredAlertsList', file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3624,
  serialized_end=3726,
)


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


_GETALERTRESPONSE = _descriptor.Descriptor(
  name='GetAlertResponse',
  full_name='dataspec.GetAlertResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alert', full_name='dataspec.GetAlertResponse.alert', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3759,
  serialized_end=3809,
)


_UPDATEALERTREQUEST = _descriptor.Descriptor(
  name='UpdateAlertRequest',
  full_name='dataspec.UpdateAlertRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alert', full_name='dataspec.UpdateAlertRequest.alert', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001')), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.UpdateAlertRequest.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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='alert_update', full_name='dataspec.UpdateAlertRequest.alert_update', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3811,
  serialized_end=3924,
)


_UPDATEALERTRESPONSE = _descriptor.Descriptor(
  name='UpdateAlertResponse',
  full_name='dataspec.UpdateAlertResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alert', full_name='dataspec.UpdateAlertResponse.alert', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3926,
  serialized_end=3979,
)


_DELETEALERTREQUEST = _descriptor.Descriptor(
  name='DeleteAlertRequest',
  full_name='dataspec.DeleteAlertRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.DeleteAlertRequest.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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.DeleteAlertRequest.dataset_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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3981,
  serialized_end=4033,
)


_DELETEALERTRESPONSE = _descriptor.Descriptor(
  name='DeleteAlertResponse',
  full_name='dataspec.DeleteAlertResponse',
  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=4035,
  serialized_end=4056,
)


_LIMIT = _descriptor.Descriptor(
  name='Limit',
  full_name='dataspec.Limit',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='dataspec.Limit.value', index=0,
      number=1, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4058,
  serialized_end=4080,
)


_OFFSET = _descriptor.Descriptor(
  name='Offset',
  full_name='dataspec.Offset',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='dataspec.Offset.value', index=0,
      number=1, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4082,
  serialized_end=4105,
)


_SORT = _descriptor.Descriptor(
  name='Sort',
  full_name='dataspec.Sort',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='dataspec.Sort.value', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='order', full_name='dataspec.Sort.order', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4107,
  serialized_end=4143,
)


_TRIGGEREDALERT = _descriptor.Descriptor(
  name='TriggeredAlert',
  full_name='dataspec.TriggeredAlert',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='alert', full_name='dataspec.TriggeredAlert.alert', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='query_error', full_name='dataspec.TriggeredAlert.query_error', index=1,
      number=2, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='triggered_value', full_name='dataspec.TriggeredAlert.triggered_value', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4145,
  serialized_end=4239,
)


_ALERTUPDATE = _descriptor.Descriptor(
  name='AlertUpdate',
  full_name='dataspec.AlertUpdate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='user_id', full_name='dataspec.AlertUpdate.user_id', index=0,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dataset_id', full_name='dataspec.AlertUpdate.dataset_id', index=1,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='version_identifier', full_name='dataspec.AlertUpdate.version_identifier', index=2,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='metric', full_name='dataspec.AlertUpdate.metric', index=3,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='key', full_name='dataspec.AlertUpdate.key', index=4,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='dataspec.AlertUpdate.float_value', index=5,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='string_value', full_name='dataspec.AlertUpdate.string_value', index=6,
      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=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time_value', full_name='dataspec.AlertUpdate.time_value', index=7,
      number=11, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_operator', full_name='dataspec.AlertUpdate.constraint_operator', index=8,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_type', full_name='dataspec.AlertUpdate.constraint_type', index=9,
      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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='created_at', full_name='dataspec.AlertUpdate.created_at', index=10,
      number=12, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='updated_at', full_name='dataspec.AlertUpdate.updated_at', index=11,
      number=13, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='alert_name', full_name='dataspec.AlertUpdate.alert_name', index=12,
      number=14, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_query_value', full_name='dataspec.AlertUpdate.constraint_query_value', index=13,
      number=15, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_alias', full_name='dataspec.AlertUpdate.left_constraint_alias', index=14,
      number=16, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_string_value', full_name='dataspec.AlertUpdate.left_constraint_string_value', index=15,
      number=17, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_float_value', full_name='dataspec.AlertUpdate.left_constraint_float_value', index=16,
      number=18, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_alias', full_name='dataspec.AlertUpdate.right_constraint_alias', index=17,
      number=19, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_string_value', full_name='dataspec.AlertUpdate.right_constraint_string_value', index=18,
      number=20, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_float_value', full_name='dataspec.AlertUpdate.right_constraint_float_value', index=19,
      number=21, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='state', full_name='dataspec.AlertUpdate.state', index=20,
      number=22, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='email_opt_in', full_name='dataspec.AlertUpdate.email_opt_in', index=21,
      number=23, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='dismissed', full_name='dataspec.AlertUpdate.dismissed', index=22,
      number=24, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_time_value', full_name='dataspec.AlertUpdate.left_constraint_time_value', index=23,
      number=25, 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='right_constraint_time_value', full_name='dataspec.AlertUpdate.right_constraint_time_value', index=24,
      number=26, 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='ConstraintValue', full_name='dataspec.AlertUpdate.ConstraintValue',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=4242,
  serialized_end=5553,
)


_NULLABLECONSTRAINTOPERATOR = _descriptor.Descriptor(
  name='NullableConstraintOperator',
  full_name='dataspec.NullableConstraintOperator',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null', full_name='dataspec.NullableConstraintOperator.null', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='dataspec.NullableConstraintOperator.data', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='dataspec.NullableConstraintOperator.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=5555,
  serialized_end=5681,
)


_NULLABLECONSTRAINTTYPE = _descriptor.Descriptor(
  name='NullableConstraintType',
  full_name='dataspec.NullableConstraintType',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='null', full_name='dataspec.NullableConstraintType.null', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='data', full_name='dataspec.NullableConstraintType.data', 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, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='kind', full_name='dataspec.NullableConstraintType.kind',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=5683,
  serialized_end=5801,
)

_NULLABLETIMESTAMP.fields_by_name['timestamp'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_NULLABLESTRING.fields_by_name['null'].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_NULLABLESTRING.oneofs_by_name['kind'].fields.append(
  _NULLABLESTRING.fields_by_name['null'])
_NULLABLESTRING.fields_by_name['null'].containing_oneof = _NULLABLESTRING.oneofs_by_name['kind']
_NULLABLESTRING.oneofs_by_name['kind'].fields.append(
  _NULLABLESTRING.fields_by_name['data'])
_NULLABLESTRING.fields_by_name['data'].containing_oneof = _NULLABLESTRING.oneofs_by_name['kind']
_NULLABLEFLOAT.fields_by_name['null'].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_NULLABLEFLOAT.oneofs_by_name['kind'].fields.append(
  _NULLABLEFLOAT.fields_by_name['null'])
_NULLABLEFLOAT.fields_by_name['null'].containing_oneof = _NULLABLEFLOAT.oneofs_by_name['kind']
_NULLABLEFLOAT.oneofs_by_name['kind'].fields.append(
  _NULLABLEFLOAT.fields_by_name['data'])
_NULLABLEFLOAT.fields_by_name['data'].containing_oneof = _NULLABLEFLOAT.oneofs_by_name['kind']
_NULLABLEBOOL.fields_by_name['null'].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_NULLABLEBOOL.oneofs_by_name['kind'].fields.append(
  _NULLABLEBOOL.fields_by_name['null'])
_NULLABLEBOOL.fields_by_name['null'].containing_oneof = _NULLABLEBOOL.oneofs_by_name['kind']
_NULLABLEBOOL.oneofs_by_name['kind'].fields.append(
  _NULLABLEBOOL.fields_by_name['data'])
_NULLABLEBOOL.fields_by_name['data'].containing_oneof = _NULLABLEBOOL.oneofs_by_name['kind']
_METRIC.fields_by_name['imported_at'].message_type = _NULLABLETIMESTAMP
_METRIC.fields_by_name['created_at'].message_type = _NULLABLETIMESTAMP
_METRIC.fields_by_name['updated_at'].message_type = _NULLABLETIMESTAMP
_METRIC.fields_by_name['time_value'].message_type = _NULLABLETIMESTAMP
_METRIC.oneofs_by_name['metricValue'].fields.append(
  _METRIC.fields_by_name['float_value'])
_METRIC.fields_by_name['float_value'].containing_oneof = _METRIC.oneofs_by_name['metricValue']
_METRIC.oneofs_by_name['metricValue'].fields.append(
  _METRIC.fields_by_name['string_value'])
_METRIC.fields_by_name['string_value'].containing_oneof = _METRIC.oneofs_by_name['metricValue']
_METRIC.oneofs_by_name['metricValue'].fields.append(
  _METRIC.fields_by_name['json_value'])
_METRIC.fields_by_name['json_value'].containing_oneof = _METRIC.oneofs_by_name['metricValue']
_METRIC.oneofs_by_name['metricValue'].fields.append(
  _METRIC.fields_by_name['time_value'])
_METRIC.fields_by_name['time_value'].containing_oneof = _METRIC.oneofs_by_name['metricValue']
_LISTMETRICSREQUEST_FILTER.fields_by_name['limit'].message_type = _LIMIT
_LISTMETRICSREQUEST_FILTER.fields_by_name['offset'].message_type = _OFFSET
_LISTMETRICSREQUEST_FILTER.fields_by_name['sort'].message_type = _SORT
_LISTMETRICSREQUEST_FILTER.fields_by_name['start_time'].message_type = _NULLABLETIMESTAMP
_LISTMETRICSREQUEST_FILTER.fields_by_name['end_time'].message_type = _NULLABLETIMESTAMP
_LISTMETRICSREQUEST_FILTER.containing_type = _LISTMETRICSREQUEST
_LISTMETRICSREQUEST.fields_by_name['filter'].message_type = _LISTMETRICSREQUEST_FILTER
_LISTMETRICSRESPONSE.fields_by_name['metrics'].message_type = _METRIC
_ALERT.fields_by_name['time_value'].message_type = _NULLABLETIMESTAMP
_ALERT.fields_by_name['constraint_operator'].enum_type = _ALERT_CONSTRAINTOPERATOR
_ALERT.fields_by_name['constraint_type'].enum_type = _ALERT_CONSTRAINTTYPE
_ALERT.fields_by_name['created_at'].message_type = _NULLABLETIMESTAMP
_ALERT.fields_by_name['updated_at'].message_type = _NULLABLETIMESTAMP
_ALERT.fields_by_name['state'].enum_type = _STATETYPE
_ALERT.fields_by_name['left_constraint_string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_ALERT.fields_by_name['left_constraint_float_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_ALERT.fields_by_name['left_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_ALERT.fields_by_name['right_constraint_string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_ALERT.fields_by_name['right_constraint_float_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_ALERT.fields_by_name['right_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_ALERT_CONSTRAINTOPERATOR.containing_type = _ALERT
_ALERT_CONSTRAINTTYPE.containing_type = _ALERT
_ALERT.oneofs_by_name['ConstraintValue'].fields.append(
  _ALERT.fields_by_name['float_value'])
_ALERT.fields_by_name['float_value'].containing_oneof = _ALERT.oneofs_by_name['ConstraintValue']
_ALERT.oneofs_by_name['ConstraintValue'].fields.append(
  _ALERT.fields_by_name['string_value'])
_ALERT.fields_by_name['string_value'].containing_oneof = _ALERT.oneofs_by_name['ConstraintValue']
_ALERT.oneofs_by_name['ConstraintValue'].fields.append(
  _ALERT.fields_by_name['time_value'])
_ALERT.fields_by_name['time_value'].containing_oneof = _ALERT.oneofs_by_name['ConstraintValue']
_NULLABLESTATE.fields_by_name['null'].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_NULLABLESTATE.fields_by_name['data'].enum_type = _STATETYPE
_NULLABLESTATE.oneofs_by_name['kind'].fields.append(
  _NULLABLESTATE.fields_by_name['null'])
_NULLABLESTATE.fields_by_name['null'].containing_oneof = _NULLABLESTATE.oneofs_by_name['kind']
_NULLABLESTATE.oneofs_by_name['kind'].fields.append(
  _NULLABLESTATE.fields_by_name['data'])
_NULLABLESTATE.fields_by_name['data'].containing_oneof = _NULLABLESTATE.oneofs_by_name['kind']
_CREATEALERTREQUEST.fields_by_name['alert'].message_type = _ALERT
_CREATEALERTRESPONSE.fields_by_name['alert'].message_type = _ALERT
_LISTALERTSREQUEST_FILTER.fields_by_name['limit'].message_type = _LIMIT
_LISTALERTSREQUEST_FILTER.fields_by_name['offset'].message_type = _OFFSET
_LISTALERTSREQUEST_FILTER.fields_by_name['sort'].message_type = _SORT
_LISTALERTSREQUEST_FILTER.fields_by_name['state'].enum_type = _STATETYPE
_LISTALERTSREQUEST_FILTER.containing_type = _LISTALERTSREQUEST
_LISTALERTSREQUEST.fields_by_name['filter'].message_type = _LISTALERTSREQUEST_FILTER
_LISTALERTSRESPONSE.fields_by_name['alerts'].message_type = _ALERT
_LISTTRIGGEREDALERTSREQUEST_FILTER.fields_by_name['sort'].message_type = _SORT
_LISTTRIGGEREDALERTSREQUEST_FILTER.containing_type = _LISTTRIGGEREDALERTSREQUEST
_LISTTRIGGEREDALERTSREQUEST.fields_by_name['filter'].message_type = _LISTTRIGGEREDALERTSREQUEST_FILTER
_LISTTRIGGEREDALERTSRESPONSE.fields_by_name['triggered_alerts'].message_type = _TRIGGEREDALERT
_GETALERTRESPONSE.fields_by_name['alert'].message_type = _ALERT
_UPDATEALERTREQUEST.fields_by_name['alert'].message_type = _ALERT
_UPDATEALERTREQUEST.fields_by_name['alert_update'].message_type = _ALERTUPDATE
_UPDATEALERTRESPONSE.fields_by_name['alert'].message_type = _ALERT
_TRIGGEREDALERT.fields_by_name['alert'].message_type = _ALERT
_ALERTUPDATE.fields_by_name['user_id'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['dataset_id'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['version_identifier'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['metric'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['key'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['time_value'].message_type = _NULLABLETIMESTAMP
_ALERTUPDATE.fields_by_name['constraint_operator'].message_type = _NULLABLECONSTRAINTOPERATOR
_ALERTUPDATE.fields_by_name['constraint_type'].message_type = _NULLABLECONSTRAINTTYPE
_ALERTUPDATE.fields_by_name['created_at'].message_type = _NULLABLETIMESTAMP
_ALERTUPDATE.fields_by_name['updated_at'].message_type = _NULLABLETIMESTAMP
_ALERTUPDATE.fields_by_name['alert_name'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['constraint_query_value'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['left_constraint_alias'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['left_constraint_string_value'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['left_constraint_float_value'].message_type = _NULLABLEFLOAT
_ALERTUPDATE.fields_by_name['right_constraint_alias'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['right_constraint_string_value'].message_type = _NULLABLESTRING
_ALERTUPDATE.fields_by_name['right_constraint_float_value'].message_type = _NULLABLEFLOAT
_ALERTUPDATE.fields_by_name['state'].message_type = _NULLABLESTATE
_ALERTUPDATE.fields_by_name['email_opt_in'].message_type = _NULLABLEBOOL
_ALERTUPDATE.fields_by_name['dismissed'].message_type = _NULLABLEBOOL
_ALERTUPDATE.fields_by_name['left_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_ALERTUPDATE.fields_by_name['right_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_ALERTUPDATE.oneofs_by_name['ConstraintValue'].fields.append(
  _ALERTUPDATE.fields_by_name['float_value'])
_ALERTUPDATE.fields_by_name['float_value'].containing_oneof = _ALERTUPDATE.oneofs_by_name['ConstraintValue']
_ALERTUPDATE.oneofs_by_name['ConstraintValue'].fields.append(
  _ALERTUPDATE.fields_by_name['string_value'])
_ALERTUPDATE.fields_by_name['string_value'].containing_oneof = _ALERTUPDATE.oneofs_by_name['ConstraintValue']
_ALERTUPDATE.oneofs_by_name['ConstraintValue'].fields.append(
  _ALERTUPDATE.fields_by_name['time_value'])
_ALERTUPDATE.fields_by_name['time_value'].containing_oneof = _ALERTUPDATE.oneofs_by_name['ConstraintValue']
_NULLABLECONSTRAINTOPERATOR.fields_by_name['null'].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_NULLABLECONSTRAINTOPERATOR.fields_by_name['data'].enum_type = _CONSTRAINTOPERATOR
_NULLABLECONSTRAINTOPERATOR.oneofs_by_name['kind'].fields.append(
  _NULLABLECONSTRAINTOPERATOR.fields_by_name['null'])
_NULLABLECONSTRAINTOPERATOR.fields_by_name['null'].containing_oneof = _NULLABLECONSTRAINTOPERATOR.oneofs_by_name['kind']
_NULLABLECONSTRAINTOPERATOR.oneofs_by_name['kind'].fields.append(
  _NULLABLECONSTRAINTOPERATOR.fields_by_name['data'])
_NULLABLECONSTRAINTOPERATOR.fields_by_name['data'].containing_oneof = _NULLABLECONSTRAINTOPERATOR.oneofs_by_name['kind']
_NULLABLECONSTRAINTTYPE.fields_by_name['null'].enum_type = google_dot_protobuf_dot_struct__pb2._NULLVALUE
_NULLABLECONSTRAINTTYPE.fields_by_name['data'].enum_type = _CONSTRAINTTYPE
_NULLABLECONSTRAINTTYPE.oneofs_by_name['kind'].fields.append(
  _NULLABLECONSTRAINTTYPE.fields_by_name['null'])
_NULLABLECONSTRAINTTYPE.fields_by_name['null'].containing_oneof = _NULLABLECONSTRAINTTYPE.oneofs_by_name['kind']
_NULLABLECONSTRAINTTYPE.oneofs_by_name['kind'].fields.append(
  _NULLABLECONSTRAINTTYPE.fields_by_name['data'])
_NULLABLECONSTRAINTTYPE.fields_by_name['data'].containing_oneof = _NULLABLECONSTRAINTTYPE.oneofs_by_name['kind']
DESCRIPTOR.message_types_by_name['NullableTimestamp'] = _NULLABLETIMESTAMP
DESCRIPTOR.message_types_by_name['NullableString'] = _NULLABLESTRING
DESCRIPTOR.message_types_by_name['NullableFloat'] = _NULLABLEFLOAT
DESCRIPTOR.message_types_by_name['NullableBool'] = _NULLABLEBOOL
DESCRIPTOR.message_types_by_name['Empty'] = _EMPTY
DESCRIPTOR.message_types_by_name['Metric'] = _METRIC
DESCRIPTOR.message_types_by_name['GenerateMetricsRequest'] = _GENERATEMETRICSREQUEST
DESCRIPTOR.message_types_by_name['GenerateMetricsResponse'] = _GENERATEMETRICSRESPONSE
DESCRIPTOR.message_types_by_name['ListMetricsRequest'] = _LISTMETRICSREQUEST
DESCRIPTOR.message_types_by_name['ListMetricsResponse'] = _LISTMETRICSRESPONSE
DESCRIPTOR.message_types_by_name['Alert'] = _ALERT
DESCRIPTOR.message_types_by_name['NullableState'] = _NULLABLESTATE
DESCRIPTOR.message_types_by_name['CreateAlertRequest'] = _CREATEALERTREQUEST
DESCRIPTOR.message_types_by_name['CreateAlertResponse'] = _CREATEALERTRESPONSE
DESCRIPTOR.message_types_by_name['ListAlertsRequest'] = _LISTALERTSREQUEST
DESCRIPTOR.message_types_by_name['ListAlertsResponse'] = _LISTALERTSRESPONSE
DESCRIPTOR.message_types_by_name['ListTriggeredAlertsRequest'] = _LISTTRIGGEREDALERTSREQUEST
DESCRIPTOR.message_types_by_name['ListTriggeredAlertsResponse'] = _LISTTRIGGEREDALERTSRESPONSE
DESCRIPTOR.message_types_by_name['GetAlertRequest'] = _GETALERTREQUEST
DESCRIPTOR.message_types_by_name['GetAlertResponse'] = _GETALERTRESPONSE
DESCRIPTOR.message_types_by_name['UpdateAlertRequest'] = _UPDATEALERTREQUEST
DESCRIPTOR.message_types_by_name['UpdateAlertResponse'] = _UPDATEALERTRESPONSE
DESCRIPTOR.message_types_by_name['DeleteAlertRequest'] = _DELETEALERTREQUEST
DESCRIPTOR.message_types_by_name['DeleteAlertResponse'] = _DELETEALERTRESPONSE
DESCRIPTOR.message_types_by_name['Limit'] = _LIMIT
DESCRIPTOR.message_types_by_name['Offset'] = _OFFSET
DESCRIPTOR.message_types_by_name['Sort'] = _SORT
DESCRIPTOR.message_types_by_name['TriggeredAlert'] = _TRIGGEREDALERT
DESCRIPTOR.message_types_by_name['AlertUpdate'] = _ALERTUPDATE
DESCRIPTOR.message_types_by_name['NullableConstraintOperator'] = _NULLABLECONSTRAINTOPERATOR
DESCRIPTOR.message_types_by_name['NullableConstraintType'] = _NULLABLECONSTRAINTTYPE
DESCRIPTOR.enum_types_by_name['StateType'] = _STATETYPE
DESCRIPTOR.enum_types_by_name['ConstraintOperator'] = _CONSTRAINTOPERATOR
DESCRIPTOR.enum_types_by_name['ConstraintType'] = _CONSTRAINTTYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

NullableTimestamp = _reflection.GeneratedProtocolMessageType('NullableTimestamp', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLETIMESTAMP,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableTimestamp)
  ))
_sym_db.RegisterMessage(NullableTimestamp)

NullableString = _reflection.GeneratedProtocolMessageType('NullableString', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLESTRING,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableString)
  ))
_sym_db.RegisterMessage(NullableString)

NullableFloat = _reflection.GeneratedProtocolMessageType('NullableFloat', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLEFLOAT,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableFloat)
  ))
_sym_db.RegisterMessage(NullableFloat)

NullableBool = _reflection.GeneratedProtocolMessageType('NullableBool', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLEBOOL,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableBool)
  ))
_sym_db.RegisterMessage(NullableBool)

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

Metric = _reflection.GeneratedProtocolMessageType('Metric', (_message.Message,), dict(
  DESCRIPTOR = _METRIC,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.Metric)
  ))
_sym_db.RegisterMessage(Metric)

GenerateMetricsRequest = _reflection.GeneratedProtocolMessageType('GenerateMetricsRequest', (_message.Message,), dict(
  DESCRIPTOR = _GENERATEMETRICSREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.GenerateMetricsRequest)
  ))
_sym_db.RegisterMessage(GenerateMetricsRequest)

GenerateMetricsResponse = _reflection.GeneratedProtocolMessageType('GenerateMetricsResponse', (_message.Message,), dict(
  DESCRIPTOR = _GENERATEMETRICSRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.GenerateMetricsResponse)
  ))
_sym_db.RegisterMessage(GenerateMetricsResponse)

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTMETRICSREQUEST_FILTER,
    __module__ = 'dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListMetricsRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTMETRICSREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListMetricsRequest)
  ))
_sym_db.RegisterMessage(ListMetricsRequest)
_sym_db.RegisterMessage(ListMetricsRequest.Filter)

ListMetricsResponse = _reflection.GeneratedProtocolMessageType('ListMetricsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTMETRICSRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListMetricsResponse)
  ))
_sym_db.RegisterMessage(ListMetricsResponse)

Alert = _reflection.GeneratedProtocolMessageType('Alert', (_message.Message,), dict(
  DESCRIPTOR = _ALERT,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.Alert)
  ))
_sym_db.RegisterMessage(Alert)

NullableState = _reflection.GeneratedProtocolMessageType('NullableState', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLESTATE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableState)
  ))
_sym_db.RegisterMessage(NullableState)

CreateAlertRequest = _reflection.GeneratedProtocolMessageType('CreateAlertRequest', (_message.Message,), dict(
  DESCRIPTOR = _CREATEALERTREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.CreateAlertRequest)
  ))
_sym_db.RegisterMessage(CreateAlertRequest)

CreateAlertResponse = _reflection.GeneratedProtocolMessageType('CreateAlertResponse', (_message.Message,), dict(
  DESCRIPTOR = _CREATEALERTRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.CreateAlertResponse)
  ))
_sym_db.RegisterMessage(CreateAlertResponse)

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTALERTSREQUEST_FILTER,
    __module__ = 'dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListAlertsRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTALERTSREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListAlertsRequest)
  ))
_sym_db.RegisterMessage(ListAlertsRequest)
_sym_db.RegisterMessage(ListAlertsRequest.Filter)

ListAlertsResponse = _reflection.GeneratedProtocolMessageType('ListAlertsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTALERTSRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListAlertsResponse)
  ))
_sym_db.RegisterMessage(ListAlertsResponse)

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTTRIGGEREDALERTSREQUEST_FILTER,
    __module__ = 'dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListTriggeredAlertsRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTTRIGGEREDALERTSREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListTriggeredAlertsRequest)
  ))
_sym_db.RegisterMessage(ListTriggeredAlertsRequest)
_sym_db.RegisterMessage(ListTriggeredAlertsRequest.Filter)

ListTriggeredAlertsResponse = _reflection.GeneratedProtocolMessageType('ListTriggeredAlertsResponse', (_message.Message,), dict(
  DESCRIPTOR = _LISTTRIGGEREDALERTSRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListTriggeredAlertsResponse)
  ))
_sym_db.RegisterMessage(ListTriggeredAlertsResponse)

GetAlertRequest = _reflection.GeneratedProtocolMessageType('GetAlertRequest', (_message.Message,), dict(
  DESCRIPTOR = _GETALERTREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.GetAlertRequest)
  ))
_sym_db.RegisterMessage(GetAlertRequest)

GetAlertResponse = _reflection.GeneratedProtocolMessageType('GetAlertResponse', (_message.Message,), dict(
  DESCRIPTOR = _GETALERTRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.GetAlertResponse)
  ))
_sym_db.RegisterMessage(GetAlertResponse)

UpdateAlertRequest = _reflection.GeneratedProtocolMessageType('UpdateAlertRequest', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEALERTREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.UpdateAlertRequest)
  ))
_sym_db.RegisterMessage(UpdateAlertRequest)

UpdateAlertResponse = _reflection.GeneratedProtocolMessageType('UpdateAlertResponse', (_message.Message,), dict(
  DESCRIPTOR = _UPDATEALERTRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.UpdateAlertResponse)
  ))
_sym_db.RegisterMessage(UpdateAlertResponse)

DeleteAlertRequest = _reflection.GeneratedProtocolMessageType('DeleteAlertRequest', (_message.Message,), dict(
  DESCRIPTOR = _DELETEALERTREQUEST,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.DeleteAlertRequest)
  ))
_sym_db.RegisterMessage(DeleteAlertRequest)

DeleteAlertResponse = _reflection.GeneratedProtocolMessageType('DeleteAlertResponse', (_message.Message,), dict(
  DESCRIPTOR = _DELETEALERTRESPONSE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.DeleteAlertResponse)
  ))
_sym_db.RegisterMessage(DeleteAlertResponse)

Limit = _reflection.GeneratedProtocolMessageType('Limit', (_message.Message,), dict(
  DESCRIPTOR = _LIMIT,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.Limit)
  ))
_sym_db.RegisterMessage(Limit)

Offset = _reflection.GeneratedProtocolMessageType('Offset', (_message.Message,), dict(
  DESCRIPTOR = _OFFSET,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.Offset)
  ))
_sym_db.RegisterMessage(Offset)

Sort = _reflection.GeneratedProtocolMessageType('Sort', (_message.Message,), dict(
  DESCRIPTOR = _SORT,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.Sort)
  ))
_sym_db.RegisterMessage(Sort)

TriggeredAlert = _reflection.GeneratedProtocolMessageType('TriggeredAlert', (_message.Message,), dict(
  DESCRIPTOR = _TRIGGEREDALERT,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.TriggeredAlert)
  ))
_sym_db.RegisterMessage(TriggeredAlert)

AlertUpdate = _reflection.GeneratedProtocolMessageType('AlertUpdate', (_message.Message,), dict(
  DESCRIPTOR = _ALERTUPDATE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.AlertUpdate)
  ))
_sym_db.RegisterMessage(AlertUpdate)

NullableConstraintOperator = _reflection.GeneratedProtocolMessageType('NullableConstraintOperator', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLECONSTRAINTOPERATOR,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableConstraintOperator)
  ))
_sym_db.RegisterMessage(NullableConstraintOperator)

NullableConstraintType = _reflection.GeneratedProtocolMessageType('NullableConstraintType', (_message.Message,), dict(
  DESCRIPTOR = _NULLABLECONSTRAINTTYPE,
  __module__ = 'dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableConstraintType)
  ))
_sym_db.RegisterMessage(NullableConstraintType)


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\023com.namara.dataspecB\010DataspecZ1github.com/thinkdata-works/namara-go/rpc/dataspec'))
_ALERT.fields_by_name['old_left_constraint_string_value'].has_options = True
_ALERT.fields_by_name['old_left_constraint_string_value']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
_ALERT.fields_by_name['old_left_constraint_float_value'].has_options = True
_ALERT.fields_by_name['old_left_constraint_float_value']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
_ALERT.fields_by_name['old_right_constraint_string_value'].has_options = True
_ALERT.fields_by_name['old_right_constraint_string_value']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
_ALERT.fields_by_name['old_right_constraint_float_value'].has_options = True
_ALERT.fields_by_name['old_right_constraint_float_value']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))
_UPDATEALERTREQUEST.fields_by_name['alert'].has_options = True
_UPDATEALERTREQUEST.fields_by_name['alert']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\030\001'))

_DATASPECSERVICE = _descriptor.ServiceDescriptor(
  name='DataspecService',
  full_name='dataspec.DataspecService',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=6013,
  serialized_end=6711,
  methods=[
  _descriptor.MethodDescriptor(
    name='GenerateMetrics',
    full_name='dataspec.DataspecService.GenerateMetrics',
    index=0,
    containing_service=None,
    input_type=_GENERATEMETRICSREQUEST,
    output_type=_GENERATEMETRICSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListMetrics',
    full_name='dataspec.DataspecService.ListMetrics',
    index=1,
    containing_service=None,
    input_type=_LISTMETRICSREQUEST,
    output_type=_LISTMETRICSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='CreateAlert',
    full_name='dataspec.DataspecService.CreateAlert',
    index=2,
    containing_service=None,
    input_type=_CREATEALERTREQUEST,
    output_type=_CREATEALERTRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListAlerts',
    full_name='dataspec.DataspecService.ListAlerts',
    index=3,
    containing_service=None,
    input_type=_LISTALERTSREQUEST,
    output_type=_LISTALERTSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListTriggeredAlerts',
    full_name='dataspec.DataspecService.ListTriggeredAlerts',
    index=4,
    containing_service=None,
    input_type=_LISTTRIGGEREDALERTSREQUEST,
    output_type=_LISTTRIGGEREDALERTSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAlert',
    full_name='dataspec.DataspecService.GetAlert',
    index=5,
    containing_service=None,
    input_type=_GETALERTREQUEST,
    output_type=_GETALERTRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='UpdateAlert',
    full_name='dataspec.DataspecService.UpdateAlert',
    index=6,
    containing_service=None,
    input_type=_UPDATEALERTREQUEST,
    output_type=_UPDATEALERTRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='DeleteAlert',
    full_name='dataspec.DataspecService.DeleteAlert',
    index=7,
    containing_service=None,
    input_type=_DELETEALERTREQUEST,
    output_type=_DELETEALERTRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='HealthCheck',
    full_name='dataspec.DataspecService.HealthCheck',
    index=8,
    containing_service=None,
    input_type=_EMPTY,
    output_type=_EMPTY,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_DATASPECSERVICE)

DESCRIPTOR.services_by_name['DataspecService'] = _DATASPECSERVICE

# @@protoc_insertion_point(module_scope)