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    
tdw-catalog / tdw_catalog / rpc / dataspec / dataspec_pb2.py
Size: Mime:
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: dataspec/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/dataspec.proto',
  package='dataspec',
  syntax='proto3',
  serialized_pb=_b('\n\x17\x64\x61taspec/dataspec.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\"\xa1\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\x12\n\n\x02id\x18\r \x01(\t\x12\x0e\n\x06job_id\x18\x0e \x01(\tB\r\n\x0bmetricValue\"\xbb\x03\n\x12ListMetricsRequest\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x33\n\x06\x66ilter\x18\x02 \x01(\x0b\x32#.dataspec.ListMetricsRequest.Filter\x1a\xdb\x02\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\x12\x34\n\x13version_identifiers\x18\x08 \x03(\tR\x17versionsIdentifiersList\x12%\n\x0crevision_ids\x18\t \x03(\tR\x0frevisionIdsList\"E\n\x13ListMetricsResponse\x12.\n\x07metrics\x18\x01 \x03(\x0b\x32\x10.dataspec.MetricR\x0bmetricsList\"\xfb\x08\n\x04Rule\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\x0e\n\x06metric\x18\x04 \x01(\t\x12\x0b\n\x03key\x18\x05 \x01(\t\x12\x15\n\x0b\x66loat_value\x18\x08 \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\t \x01(\tH\x00\x12\x31\n\ntime_value\x18\n \x01(\x0b\x32\x1b.dataspec.NullableTimestampH\x00\x12>\n\x13\x63onstraint_operator\x18\x06 \x01(\x0e\x32!.dataspec.Rule.ConstraintOperator\x12\x36\n\x0f\x63onstraint_type\x18\x07 \x01(\x0e\x32\x1d.dataspec.Rule.ConstraintType\x12/\n\ncreated_at\x18\x0b \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12/\n\nupdated_at\x18\x0c \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x11\n\trule_name\x18\r \x01(\t\x12\x1e\n\x16\x63onstraint_query_value\x18\x0e \x01(\t\x12\x1d\n\x15left_constraint_alias\x18\x0f \x01(\t\x12\x1e\n\x16right_constraint_alias\x18\x10 \x01(\t\x12\x14\n\x0c\x65mail_opt_in\x18\x11 \x01(\x08\x12\x42\n\x1cleft_constraint_string_value\x18\x12 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x41\n\x1bleft_constraint_float_value\x18\x13 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12?\n\x1aleft_constraint_time_value\x18\x14 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x43\n\x1dright_constraint_string_value\x18\x15 \x01(\x0b\x32\x1c.google.protobuf.StringValue\x12\x42\n\x1cright_constraint_float_value\x18\x16 \x01(\x0b\x32\x1c.google.protobuf.DoubleValue\x12@\n\x1bright_constraint_time_value\x18\x17 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x0e\n\x06\x62roken\x18\x18 \x01(\x08\x12\x0e\n\x06\x61\x63tive\x18\x19 \x01(\x08\"\\\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\"1\n\x11\x43reateRuleRequest\x12\x1c\n\x04rule\x18\x01 \x01(\x0b\x32\x0e.dataspec.Rule\"2\n\x12\x43reateRuleResponse\x12\x1c\n\x04rule\x18\x01 \x01(\x0b\x32\x0e.dataspec.Rule\"\xfa\x01\n\x10ListRulesRequest\x12\x31\n\x06\x66ilter\x18\x01 \x01(\x0b\x32!.dataspec.ListRulesRequest.Filter\x12\x12\n\ndataset_id\x18\x02 \x01(\t\x1a\x9e\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\"R\n\x11ListRulesResponse\x12(\n\x05rules\x18\x01 \x03(\x0b\x32\x0e.dataspec.RuleR\trulesList\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\xef\x01\n\x11ListAlertsRequest\x12\x12\n\ndataset_id\x18\x01 \x01(\t\x12\x32\n\x06\x66ilter\x18\x02 \x01(\x0b\x32\".dataspec.ListAlertsRequest.Filter\x1a\x91\x01\n\x06\x46ilter\x12\x1c\n\x04sort\x18\x01 \x01(\x0b\x32\x0e.dataspec.Sort\x12 \n\x06offset\x18\x02 \x01(\x0b\x32\x10.dataspec.Offset\x12\x13\n\x0brevision_id\x18\x03 \x01(\t\x12\x12\n\nversion_id\x18\x04 \x01(\t\x12\x1e\n\x05limit\x18\x05 \x01(\x0b\x32\x0f.dataspec.Limit\"A\n\x12ListAlertsResponse\x12+\n\x06\x61lerts\x18\x01 \x03(\x0b\x32\x0f.dataspec.AlertR\nalertsList\"0\n\x0eGetRuleRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\"/\n\x0fGetRuleResponse\x12\x1c\n\x04rule\x18\x01 \x01(\x0b\x32\x0e.dataspec.Rule\"^\n\x11UpdateRuleRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12)\n\x0brule_update\x18\x02 \x01(\x0b\x32\x14.dataspec.RuleUpdate\x12\x12\n\ndataset_id\x18\x03 \x01(\t\"2\n\x12UpdateRuleResponse\x12\x1c\n\x04rule\x18\x01 \x01(\x0b\x32\x0e.dataspec.Rule\"3\n\x11\x44\x65leteRuleRequest\x12\n\n\x02id\x18\x01 \x01(\t\x12\x12\n\ndataset_id\x18\x02 \x01(\t\"\x14\n\x12\x44\x65leteRuleResponse\"\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\"\xf9\x02\n\x05\x41lert\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0f\n\x07rule_id\x18\x02 \x01(\t\x12\x12\n\ndataset_id\x18\x03 \x01(\t\x12\x12\n\nversion_id\x18\x04 \x01(\t\x12\x13\n\x0brevision_id\x18\x05 \x01(\t\x12\x11\n\tmetric_id\x18\x06 \x01(\t\x12\x0f\n\x07\x65rrored\x18\x07 \x01(\x08\x12\x12\n\nerror_type\x18\x08 \x01(\t\x12\x15\n\rerror_message\x18\t \x01(\t\x12\x12\n\nemail_sent\x18\n \x01(\x08\x12/\n\ncreated_at\x18\x0b \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12\x15\n\x0b\x66loat_value\x18\x0c \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\r \x01(\tH\x00\x12\x31\n\ntime_value\x18\x0e \x01(\x0b\x32\x1b.dataspec.NullableTimestampH\x00\x12\x0e\n\x06job_id\x18\x0f \x01(\tB\x10\n\x0eOffendingValue\"\x81\x08\n\nRuleUpdate\x12(\n\x06metric\x18\x01 \x01(\x0b\x32\x18.dataspec.NullableString\x12%\n\x03key\x18\x02 \x01(\x0b\x32\x18.dataspec.NullableString\x12\x41\n\x13\x63onstraint_operator\x18\x03 \x01(\x0b\x32$.dataspec.NullableConstraintOperator\x12\x39\n\x0f\x63onstraint_type\x18\x04 \x01(\x0b\x32 .dataspec.NullableConstraintType\x12\x15\n\x0b\x66loat_value\x18\x05 \x01(\x02H\x00\x12\x16\n\x0cstring_value\x18\x06 \x01(\tH\x00\x12\x31\n\ntime_value\x18\x07 \x01(\x0b\x32\x1b.dataspec.NullableTimestampH\x00\x12+\n\trule_name\x18\x08 \x01(\x0b\x32\x18.dataspec.NullableString\x12\x38\n\x16\x63onstraint_query_value\x18\t \x01(\x0b\x32\x18.dataspec.NullableString\x12\x37\n\x15left_constraint_alias\x18\n \x01(\x0b\x32\x18.dataspec.NullableString\x12>\n\x1cleft_constraint_string_value\x18\x0b \x01(\x0b\x32\x18.dataspec.NullableString\x12<\n\x1bleft_constraint_float_value\x18\x0c \x01(\x0b\x32\x17.dataspec.NullableFloat\x12\x38\n\x16right_constraint_alias\x18\r \x01(\x0b\x32\x18.dataspec.NullableString\x12?\n\x1dright_constraint_string_value\x18\x0e \x01(\x0b\x32\x18.dataspec.NullableString\x12=\n\x1cright_constraint_float_value\x18\x0f \x01(\x0b\x32\x17.dataspec.NullableFloat\x12,\n\x0c\x65mail_opt_in\x18\x10 \x01(\x0b\x32\x16.dataspec.NullableBool\x12?\n\x1aleft_constraint_time_value\x18\x11 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12@\n\x1bright_constraint_time_value\x18\x12 \x01(\x0b\x32\x1b.dataspec.NullableTimestamp\x12&\n\x06\x61\x63tive\x18\x13 \x01(\x0b\x32\x16.dataspec.NullableBoolB\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\"\xb9\x03\n\x03Job\x12\n\n\x02id\x18\x01 \x01(\t\x12\x13\n\x0brevision_id\x18\x02 \x01(\t\x12\x14\n\x0creference_id\x18\x03 \x01(\t\x12\x12\n\ndataset_id\x18\x04 \x01(\t\x12$\n\x1c\x64\x61taspec_pipeline_version_id\x18\x05 \x01(\t\x12.\n\ncreated_at\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nupdated_at\x18\x07 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nstarted_at\x18\x08 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12/\n\x0b\x66inished_at\x18\t \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12.\n\nerrored_at\x18\n \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x15\n\rerror_message\x18\x0b \x01(\t\x12\x16\n\x0erows_processed\x18\x0c \x01(\t\x12\x12\n\ntotal_rows\x18\r \x01(\t\x12\r\n\x05state\x18\x0e \x01(\t\"\xdc\x02\n\x0fListJobsRequest\x12\x30\n\x06\x66ilter\x18\x01 \x01(\x0b\x32 .dataspec.ListJobsRequest.Filter\x12#\n\x0b\x64\x61taset_ids\x18\x02 \x03(\tR\x0e\x64\x61tasetIdsList\x1a\xf1\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\x04sort\x18\x03 \x01(\x0b\x32\x0e.dataspec.Sort\x12\'\n\rreference_ids\x18\x04 \x03(\tR\x10referenceIdsList\x12%\n\x0crevision_ids\x18\x05 \x03(\tR\x0frevisionIdsList\x12\x1a\n\x06states\x18\x06 \x03(\tR\nstatesList\x12\x1b\n\x07job_ids\x18\x07 \x03(\tR\njobIdsList\"D\n\x10ListJobsResponse\x12\x1b\n\x04jobs\x18\x01 \x03(\x0b\x32\r.dataspec.Job\x12\x13\n\x0btotal_count\x18\x02 \x01(\x05\"\x1b\n\rGetJobRequest\x12\n\n\x02id\x18\x01 \x01(\t\",\n\x0eGetJobResponse\x12\x1a\n\x03job\x18\x01 \x01(\x0b\x32\r.dataspec.Job*\\\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\x89\x05\n\x11\x44\x61taspecV2Service\x12J\n\x0bListMetrics\x12\x1c.dataspec.ListMetricsRequest\x1a\x1d.dataspec.ListMetricsResponse\x12G\n\nCreateRule\x12\x1b.dataspec.CreateRuleRequest\x1a\x1c.dataspec.CreateRuleResponse\x12\x44\n\tListRules\x12\x1a.dataspec.ListRulesRequest\x1a\x1b.dataspec.ListRulesResponse\x12G\n\nListAlerts\x12\x1b.dataspec.ListAlertsRequest\x1a\x1c.dataspec.ListAlertsResponse\x12>\n\x07GetRule\x12\x18.dataspec.GetRuleRequest\x1a\x19.dataspec.GetRuleResponse\x12G\n\nUpdateRule\x12\x1b.dataspec.UpdateRuleRequest\x1a\x1c.dataspec.UpdateRuleResponse\x12G\n\nDeleteRule\x12\x1b.dataspec.DeleteRuleRequest\x1a\x1c.dataspec.DeleteRuleResponse\x12\x41\n\x08ListJobs\x12\x19.dataspec.ListJobsRequest\x1a\x1a.dataspec.ListJobsResponse\x12;\n\x06GetJob\x12\x17.dataspec.GetJobRequest\x1a\x18.dataspec.GetJobResponseBg\n\x10\x63om.tdw.dataspecB\x08\x44\x61taspecZIgithub.com/thinkdata-works/tdw-catalog-platform/namara-go/v2/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,])

_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=2383,
  serialized_end=2475,
)
_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=2477,
  serialized_end=2538,
)
_sym_db.RegisterEnumDescriptor(_CONSTRAINTTYPE)

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


_RULE_CONSTRAINTOPERATOR = _descriptor.EnumDescriptor(
  name='ConstraintOperator',
  full_name='dataspec.Rule.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=2383,
  serialized_end=2475,
)
_sym_db.RegisterEnumDescriptor(_RULE_CONSTRAINTOPERATOR)

_RULE_CONSTRAINTTYPE = _descriptor.EnumDescriptor(
  name='ConstraintType',
  full_name='dataspec.Rule.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=2477,
  serialized_end=2538,
)
_sym_db.RegisterEnumDescriptor(_RULE_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=132,
  serialized_end=215,
)


_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=217,
  serialized_end=301,
)


_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=303,
  serialized_end=386,
)


_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=388,
  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),
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.Metric.id', index=12,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='job_id', full_name='dataspec.Metric.job_id', 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),
  ],
  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=890,
)


_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),
    _descriptor.FieldDescriptor(
      name='version_identifiers', full_name='dataspec.ListMetricsRequest.Filter.version_identifiers', index=7,
      number=8, 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='versionsIdentifiersList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='revision_ids', full_name='dataspec.ListMetricsRequest.Filter.revision_ids', index=8,
      number=9, 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='revisionIdsList', file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=989,
  serialized_end=1336,
)

_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=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='filter', full_name='dataspec.ListMetricsRequest.filter', 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=[_LISTMETRICSREQUEST_FILTER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=893,
  serialized_end=1336,
)


_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=1338,
  serialized_end=1407,
)


_RULE = _descriptor.Descriptor(
  name='Rule',
  full_name='dataspec.Rule',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.Rule.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.Rule.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.Rule.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='metric', full_name='dataspec.Rule.metric', 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='key', full_name='dataspec.Rule.key', 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='float_value', full_name='dataspec.Rule.float_value', index=5,
      number=8, 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.Rule.string_value', index=6,
      number=9, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time_value', full_name='dataspec.Rule.time_value', index=7,
      number=10, 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.Rule.constraint_operator', index=8,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_type', full_name='dataspec.Rule.constraint_type', 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='created_at', full_name='dataspec.Rule.created_at', index=10,
      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='updated_at', full_name='dataspec.Rule.updated_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='rule_name', full_name='dataspec.Rule.rule_name', index=12,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='constraint_query_value', full_name='dataspec.Rule.constraint_query_value', 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='left_constraint_alias', full_name='dataspec.Rule.left_constraint_alias', 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='right_constraint_alias', full_name='dataspec.Rule.right_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='email_opt_in', full_name='dataspec.Rule.email_opt_in', index=16,
      number=17, 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.Rule.left_constraint_string_value', index=17,
      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='left_constraint_float_value', full_name='dataspec.Rule.left_constraint_float_value', index=18,
      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='left_constraint_time_value', full_name='dataspec.Rule.left_constraint_time_value', index=19,
      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_string_value', full_name='dataspec.Rule.right_constraint_string_value', index=20,
      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='right_constraint_float_value', full_name='dataspec.Rule.right_constraint_float_value', index=21,
      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='right_constraint_time_value', full_name='dataspec.Rule.right_constraint_time_value', index=22,
      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='broken', full_name='dataspec.Rule.broken', 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='active', full_name='dataspec.Rule.active', index=24,
      number=25, 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=[
    _RULE_CONSTRAINTOPERATOR,
    _RULE_CONSTRAINTTYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='ConstraintValue', full_name='dataspec.Rule.ConstraintValue',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1410,
  serialized_end=2557,
)


_CREATERULEREQUEST = _descriptor.Descriptor(
  name='CreateRuleRequest',
  full_name='dataspec.CreateRuleRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rule', full_name='dataspec.CreateRuleRequest.rule', 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=2559,
  serialized_end=2608,
)


_CREATERULERESPONSE = _descriptor.Descriptor(
  name='CreateRuleResponse',
  full_name='dataspec.CreateRuleResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rule', full_name='dataspec.CreateRuleResponse.rule', 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=2610,
  serialized_end=2660,
)


_LISTRULESREQUEST_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='dataspec.ListRulesRequest.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='limit', full_name='dataspec.ListRulesRequest.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.ListRulesRequest.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.ListRulesRequest.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.ListRulesRequest.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.ListRulesRequest.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=989,
  serialized_end=1147,
)

_LISTRULESREQUEST = _descriptor.Descriptor(
  name='ListRulesRequest',
  full_name='dataspec.ListRulesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filter', full_name='dataspec.ListRulesRequest.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='dataset_id', full_name='dataspec.ListRulesRequest.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=[_LISTRULESREQUEST_FILTER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2663,
  serialized_end=2913,
)


_LISTRULESRESPONSE = _descriptor.Descriptor(
  name='ListRulesResponse',
  full_name='dataspec.ListRulesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rules', full_name='dataspec.ListRulesResponse.rules', 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='rulesList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='total_count', full_name='dataspec.ListRulesResponse.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=2915,
  serialized_end=2997,
)


_LISTALERTSREQUEST_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='dataspec.ListAlertsRequest.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='sort', full_name='dataspec.ListAlertsRequest.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='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='revision_id', full_name='dataspec.ListAlertsRequest.Filter.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),
    _descriptor.FieldDescriptor(
      name='version_id', full_name='dataspec.ListAlertsRequest.Filter.version_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='limit', full_name='dataspec.ListAlertsRequest.Filter.limit', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3094,
  serialized_end=3239,
)

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


_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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3241,
  serialized_end=3306,
)


_GETRULEREQUEST = _descriptor.Descriptor(
  name='GetRuleRequest',
  full_name='dataspec.GetRuleRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.GetRuleRequest.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.GetRuleRequest.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=3308,
  serialized_end=3356,
)


_GETRULERESPONSE = _descriptor.Descriptor(
  name='GetRuleResponse',
  full_name='dataspec.GetRuleResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rule', full_name='dataspec.GetRuleResponse.rule', 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=3358,
  serialized_end=3405,
)


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


_UPDATERULERESPONSE = _descriptor.Descriptor(
  name='UpdateRuleResponse',
  full_name='dataspec.UpdateRuleResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='rule', full_name='dataspec.UpdateRuleResponse.rule', 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=3503,
  serialized_end=3553,
)


_DELETERULEREQUEST = _descriptor.Descriptor(
  name='DeleteRuleRequest',
  full_name='dataspec.DeleteRuleRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.DeleteRuleRequest.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.DeleteRuleRequest.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=3555,
  serialized_end=3606,
)


_DELETERULERESPONSE = _descriptor.Descriptor(
  name='DeleteRuleResponse',
  full_name='dataspec.DeleteRuleResponse',
  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=3608,
  serialized_end=3628,
)


_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=3630,
  serialized_end=3652,
)


_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=3654,
  serialized_end=3677,
)


_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=3679,
  serialized_end=3715,
)


_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='rule_id', full_name='dataspec.Alert.rule_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_id', full_name='dataspec.Alert.version_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='revision_id', full_name='dataspec.Alert.revision_id', 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='metric_id', full_name='dataspec.Alert.metric_id', index=5,
      number=6, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='errored', full_name='dataspec.Alert.errored', index=6,
      number=7, 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='error_type', full_name='dataspec.Alert.error_type', index=7,
      number=8, 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='error_message', full_name='dataspec.Alert.error_message', index=8,
      number=9, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='email_sent', full_name='dataspec.Alert.email_sent', index=9,
      number=10, 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='created_at', full_name='dataspec.Alert.created_at', index=10,
      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='float_value', full_name='dataspec.Alert.float_value', index=11,
      number=12, 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=12,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time_value', full_name='dataspec.Alert.time_value', index=13,
      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='job_id', full_name='dataspec.Alert.job_id', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='OffendingValue', full_name='dataspec.Alert.OffendingValue',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=3718,
  serialized_end=4095,
)


_RULEUPDATE = _descriptor.Descriptor(
  name='RuleUpdate',
  full_name='dataspec.RuleUpdate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metric', full_name='dataspec.RuleUpdate.metric', 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='key', full_name='dataspec.RuleUpdate.key', 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='constraint_operator', full_name='dataspec.RuleUpdate.constraint_operator', 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),
    _descriptor.FieldDescriptor(
      name='constraint_type', full_name='dataspec.RuleUpdate.constraint_type', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='float_value', full_name='dataspec.RuleUpdate.float_value', index=4,
      number=5, 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.RuleUpdate.string_value', 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='time_value', full_name='dataspec.RuleUpdate.time_value', 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='rule_name', full_name='dataspec.RuleUpdate.rule_name', 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='constraint_query_value', full_name='dataspec.RuleUpdate.constraint_query_value', index=8,
      number=9, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='left_constraint_alias', full_name='dataspec.RuleUpdate.left_constraint_alias', index=9,
      number=10, 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.RuleUpdate.left_constraint_string_value', index=10,
      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='left_constraint_float_value', full_name='dataspec.RuleUpdate.left_constraint_float_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),
    _descriptor.FieldDescriptor(
      name='right_constraint_alias', full_name='dataspec.RuleUpdate.right_constraint_alias', 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='right_constraint_string_value', full_name='dataspec.RuleUpdate.right_constraint_string_value', index=13,
      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='right_constraint_float_value', full_name='dataspec.RuleUpdate.right_constraint_float_value', index=14,
      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='email_opt_in', full_name='dataspec.RuleUpdate.email_opt_in', index=15,
      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_time_value', full_name='dataspec.RuleUpdate.left_constraint_time_value', index=16,
      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='right_constraint_time_value', full_name='dataspec.RuleUpdate.right_constraint_time_value', index=17,
      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='active', full_name='dataspec.RuleUpdate.active', index=18,
      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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='ConstraintValue', full_name='dataspec.RuleUpdate.ConstraintValue',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=4098,
  serialized_end=5123,
)


_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=5125,
  serialized_end=5251,
)


_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=5253,
  serialized_end=5371,
)


_JOB = _descriptor.Descriptor(
  name='Job',
  full_name='dataspec.Job',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.Job.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='revision_id', full_name='dataspec.Job.revision_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='reference_id', full_name='dataspec.Job.reference_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='dataset_id', full_name='dataspec.Job.dataset_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='dataspec_pipeline_version_id', full_name='dataspec.Job.dataspec_pipeline_version_id', 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='created_at', full_name='dataspec.Job.created_at', 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='updated_at', full_name='dataspec.Job.updated_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='started_at', full_name='dataspec.Job.started_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='finished_at', full_name='dataspec.Job.finished_at', index=8,
      number=9, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='errored_at', full_name='dataspec.Job.errored_at', index=9,
      number=10, 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='error_message', full_name='dataspec.Job.error_message', 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='rows_processed', full_name='dataspec.Job.rows_processed', index=11,
      number=12, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='total_rows', full_name='dataspec.Job.total_rows', index=12,
      number=13, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='state', full_name='dataspec.Job.state', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5374,
  serialized_end=5815,
)


_LISTJOBSREQUEST_FILTER = _descriptor.Descriptor(
  name='Filter',
  full_name='dataspec.ListJobsRequest.Filter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='limit', full_name='dataspec.ListJobsRequest.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.ListJobsRequest.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='sort', full_name='dataspec.ListJobsRequest.Filter.sort', 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),
    _descriptor.FieldDescriptor(
      name='reference_ids', full_name='dataspec.ListJobsRequest.Filter.reference_ids', 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='referenceIdsList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='revision_ids', full_name='dataspec.ListJobsRequest.Filter.revision_ids', 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='revisionIdsList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='states', full_name='dataspec.ListJobsRequest.Filter.states', index=5,
      number=6, 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='statesList', file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='job_ids', full_name='dataspec.ListJobsRequest.Filter.job_ids', index=6,
      number=7, 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='jobIdsList', file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5925,
  serialized_end=6166,
)

_LISTJOBSREQUEST = _descriptor.Descriptor(
  name='ListJobsRequest',
  full_name='dataspec.ListJobsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filter', full_name='dataspec.ListJobsRequest.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='dataset_ids', full_name='dataspec.ListJobsRequest.dataset_ids', index=1,
      number=2, 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),
  ],
  extensions=[
  ],
  nested_types=[_LISTJOBSREQUEST_FILTER, ],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5818,
  serialized_end=6166,
)


_LISTJOBSRESPONSE = _descriptor.Descriptor(
  name='ListJobsResponse',
  full_name='dataspec.ListJobsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='jobs', full_name='dataspec.ListJobsResponse.jobs', 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, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='total_count', full_name='dataspec.ListJobsResponse.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=6168,
  serialized_end=6236,
)


_GETJOBREQUEST = _descriptor.Descriptor(
  name='GetJobRequest',
  full_name='dataspec.GetJobRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='dataspec.GetJobRequest.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=6238,
  serialized_end=6265,
)


_GETJOBRESPONSE = _descriptor.Descriptor(
  name='GetJobResponse',
  full_name='dataspec.GetJobResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='job', full_name='dataspec.GetJobResponse.job', 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=6267,
  serialized_end=6311,
)

_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
_RULE.fields_by_name['time_value'].message_type = _NULLABLETIMESTAMP
_RULE.fields_by_name['constraint_operator'].enum_type = _RULE_CONSTRAINTOPERATOR
_RULE.fields_by_name['constraint_type'].enum_type = _RULE_CONSTRAINTTYPE
_RULE.fields_by_name['created_at'].message_type = _NULLABLETIMESTAMP
_RULE.fields_by_name['updated_at'].message_type = _NULLABLETIMESTAMP
_RULE.fields_by_name['left_constraint_string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_RULE.fields_by_name['left_constraint_float_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_RULE.fields_by_name['left_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_RULE.fields_by_name['right_constraint_string_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._STRINGVALUE
_RULE.fields_by_name['right_constraint_float_value'].message_type = google_dot_protobuf_dot_wrappers__pb2._DOUBLEVALUE
_RULE.fields_by_name['right_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_RULE_CONSTRAINTOPERATOR.containing_type = _RULE
_RULE_CONSTRAINTTYPE.containing_type = _RULE
_RULE.oneofs_by_name['ConstraintValue'].fields.append(
  _RULE.fields_by_name['float_value'])
_RULE.fields_by_name['float_value'].containing_oneof = _RULE.oneofs_by_name['ConstraintValue']
_RULE.oneofs_by_name['ConstraintValue'].fields.append(
  _RULE.fields_by_name['string_value'])
_RULE.fields_by_name['string_value'].containing_oneof = _RULE.oneofs_by_name['ConstraintValue']
_RULE.oneofs_by_name['ConstraintValue'].fields.append(
  _RULE.fields_by_name['time_value'])
_RULE.fields_by_name['time_value'].containing_oneof = _RULE.oneofs_by_name['ConstraintValue']
_CREATERULEREQUEST.fields_by_name['rule'].message_type = _RULE
_CREATERULERESPONSE.fields_by_name['rule'].message_type = _RULE
_LISTRULESREQUEST_FILTER.fields_by_name['limit'].message_type = _LIMIT
_LISTRULESREQUEST_FILTER.fields_by_name['offset'].message_type = _OFFSET
_LISTRULESREQUEST_FILTER.fields_by_name['sort'].message_type = _SORT
_LISTRULESREQUEST_FILTER.containing_type = _LISTRULESREQUEST
_LISTRULESREQUEST.fields_by_name['filter'].message_type = _LISTRULESREQUEST_FILTER
_LISTRULESRESPONSE.fields_by_name['rules'].message_type = _RULE
_LISTALERTSREQUEST_FILTER.fields_by_name['sort'].message_type = _SORT
_LISTALERTSREQUEST_FILTER.fields_by_name['offset'].message_type = _OFFSET
_LISTALERTSREQUEST_FILTER.fields_by_name['limit'].message_type = _LIMIT
_LISTALERTSREQUEST_FILTER.containing_type = _LISTALERTSREQUEST
_LISTALERTSREQUEST.fields_by_name['filter'].message_type = _LISTALERTSREQUEST_FILTER
_LISTALERTSRESPONSE.fields_by_name['alerts'].message_type = _ALERT
_GETRULERESPONSE.fields_by_name['rule'].message_type = _RULE
_UPDATERULEREQUEST.fields_by_name['rule_update'].message_type = _RULEUPDATE
_UPDATERULERESPONSE.fields_by_name['rule'].message_type = _RULE
_ALERT.fields_by_name['created_at'].message_type = _NULLABLETIMESTAMP
_ALERT.fields_by_name['time_value'].message_type = _NULLABLETIMESTAMP
_ALERT.oneofs_by_name['OffendingValue'].fields.append(
  _ALERT.fields_by_name['float_value'])
_ALERT.fields_by_name['float_value'].containing_oneof = _ALERT.oneofs_by_name['OffendingValue']
_ALERT.oneofs_by_name['OffendingValue'].fields.append(
  _ALERT.fields_by_name['string_value'])
_ALERT.fields_by_name['string_value'].containing_oneof = _ALERT.oneofs_by_name['OffendingValue']
_ALERT.oneofs_by_name['OffendingValue'].fields.append(
  _ALERT.fields_by_name['time_value'])
_ALERT.fields_by_name['time_value'].containing_oneof = _ALERT.oneofs_by_name['OffendingValue']
_RULEUPDATE.fields_by_name['metric'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['key'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['constraint_operator'].message_type = _NULLABLECONSTRAINTOPERATOR
_RULEUPDATE.fields_by_name['constraint_type'].message_type = _NULLABLECONSTRAINTTYPE
_RULEUPDATE.fields_by_name['time_value'].message_type = _NULLABLETIMESTAMP
_RULEUPDATE.fields_by_name['rule_name'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['constraint_query_value'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['left_constraint_alias'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['left_constraint_string_value'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['left_constraint_float_value'].message_type = _NULLABLEFLOAT
_RULEUPDATE.fields_by_name['right_constraint_alias'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['right_constraint_string_value'].message_type = _NULLABLESTRING
_RULEUPDATE.fields_by_name['right_constraint_float_value'].message_type = _NULLABLEFLOAT
_RULEUPDATE.fields_by_name['email_opt_in'].message_type = _NULLABLEBOOL
_RULEUPDATE.fields_by_name['left_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_RULEUPDATE.fields_by_name['right_constraint_time_value'].message_type = _NULLABLETIMESTAMP
_RULEUPDATE.fields_by_name['active'].message_type = _NULLABLEBOOL
_RULEUPDATE.oneofs_by_name['ConstraintValue'].fields.append(
  _RULEUPDATE.fields_by_name['float_value'])
_RULEUPDATE.fields_by_name['float_value'].containing_oneof = _RULEUPDATE.oneofs_by_name['ConstraintValue']
_RULEUPDATE.oneofs_by_name['ConstraintValue'].fields.append(
  _RULEUPDATE.fields_by_name['string_value'])
_RULEUPDATE.fields_by_name['string_value'].containing_oneof = _RULEUPDATE.oneofs_by_name['ConstraintValue']
_RULEUPDATE.oneofs_by_name['ConstraintValue'].fields.append(
  _RULEUPDATE.fields_by_name['time_value'])
_RULEUPDATE.fields_by_name['time_value'].containing_oneof = _RULEUPDATE.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']
_JOB.fields_by_name['created_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_JOB.fields_by_name['updated_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_JOB.fields_by_name['started_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_JOB.fields_by_name['finished_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_JOB.fields_by_name['errored_at'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_LISTJOBSREQUEST_FILTER.fields_by_name['limit'].message_type = _LIMIT
_LISTJOBSREQUEST_FILTER.fields_by_name['offset'].message_type = _OFFSET
_LISTJOBSREQUEST_FILTER.fields_by_name['sort'].message_type = _SORT
_LISTJOBSREQUEST_FILTER.containing_type = _LISTJOBSREQUEST
_LISTJOBSREQUEST.fields_by_name['filter'].message_type = _LISTJOBSREQUEST_FILTER
_LISTJOBSRESPONSE.fields_by_name['jobs'].message_type = _JOB
_GETJOBRESPONSE.fields_by_name['job'].message_type = _JOB
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['Metric'] = _METRIC
DESCRIPTOR.message_types_by_name['ListMetricsRequest'] = _LISTMETRICSREQUEST
DESCRIPTOR.message_types_by_name['ListMetricsResponse'] = _LISTMETRICSRESPONSE
DESCRIPTOR.message_types_by_name['Rule'] = _RULE
DESCRIPTOR.message_types_by_name['CreateRuleRequest'] = _CREATERULEREQUEST
DESCRIPTOR.message_types_by_name['CreateRuleResponse'] = _CREATERULERESPONSE
DESCRIPTOR.message_types_by_name['ListRulesRequest'] = _LISTRULESREQUEST
DESCRIPTOR.message_types_by_name['ListRulesResponse'] = _LISTRULESRESPONSE
DESCRIPTOR.message_types_by_name['ListAlertsRequest'] = _LISTALERTSREQUEST
DESCRIPTOR.message_types_by_name['ListAlertsResponse'] = _LISTALERTSRESPONSE
DESCRIPTOR.message_types_by_name['GetRuleRequest'] = _GETRULEREQUEST
DESCRIPTOR.message_types_by_name['GetRuleResponse'] = _GETRULERESPONSE
DESCRIPTOR.message_types_by_name['UpdateRuleRequest'] = _UPDATERULEREQUEST
DESCRIPTOR.message_types_by_name['UpdateRuleResponse'] = _UPDATERULERESPONSE
DESCRIPTOR.message_types_by_name['DeleteRuleRequest'] = _DELETERULEREQUEST
DESCRIPTOR.message_types_by_name['DeleteRuleResponse'] = _DELETERULERESPONSE
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['Alert'] = _ALERT
DESCRIPTOR.message_types_by_name['RuleUpdate'] = _RULEUPDATE
DESCRIPTOR.message_types_by_name['NullableConstraintOperator'] = _NULLABLECONSTRAINTOPERATOR
DESCRIPTOR.message_types_by_name['NullableConstraintType'] = _NULLABLECONSTRAINTTYPE
DESCRIPTOR.message_types_by_name['Job'] = _JOB
DESCRIPTOR.message_types_by_name['ListJobsRequest'] = _LISTJOBSREQUEST
DESCRIPTOR.message_types_by_name['ListJobsResponse'] = _LISTJOBSRESPONSE
DESCRIPTOR.message_types_by_name['GetJobRequest'] = _GETJOBREQUEST
DESCRIPTOR.message_types_by_name['GetJobResponse'] = _GETJOBRESPONSE
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.dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.NullableTimestamp)
  ))
_sym_db.RegisterMessage(NullableTimestamp)

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

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

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

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

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTMETRICSREQUEST_FILTER,
    __module__ = 'dataspec.dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListMetricsRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTMETRICSREQUEST,
  __module__ = 'dataspec.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.dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListMetricsResponse)
  ))
_sym_db.RegisterMessage(ListMetricsResponse)

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

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

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

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTRULESREQUEST_FILTER,
    __module__ = 'dataspec.dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListRulesRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTRULESREQUEST,
  __module__ = 'dataspec.dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListRulesRequest)
  ))
_sym_db.RegisterMessage(ListRulesRequest)
_sym_db.RegisterMessage(ListRulesRequest.Filter)

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

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTALERTSREQUEST_FILTER,
    __module__ = 'dataspec.dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListAlertsRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTALERTSREQUEST,
  __module__ = 'dataspec.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.dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListAlertsResponse)
  ))
_sym_db.RegisterMessage(ListAlertsResponse)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  Filter = _reflection.GeneratedProtocolMessageType('Filter', (_message.Message,), dict(
    DESCRIPTOR = _LISTJOBSREQUEST_FILTER,
    __module__ = 'dataspec.dataspec_pb2'
    # @@protoc_insertion_point(class_scope:dataspec.ListJobsRequest.Filter)
    ))
  ,
  DESCRIPTOR = _LISTJOBSREQUEST,
  __module__ = 'dataspec.dataspec_pb2'
  # @@protoc_insertion_point(class_scope:dataspec.ListJobsRequest)
  ))
_sym_db.RegisterMessage(ListJobsRequest)
_sym_db.RegisterMessage(ListJobsRequest.Filter)

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

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

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


DESCRIPTOR.has_options = True
DESCRIPTOR._options = _descriptor._ParseOptions(descriptor_pb2.FileOptions(), _b('\n\020com.tdw.dataspecB\010DataspecZIgithub.com/thinkdata-works/tdw-catalog-platform/namara-go/v2/rpc/dataspec'))

_DATASPECV2SERVICE = _descriptor.ServiceDescriptor(
  name='DataspecV2Service',
  full_name='dataspec.DataspecV2Service',
  file=DESCRIPTOR,
  index=0,
  options=None,
  serialized_start=6471,
  serialized_end=7120,
  methods=[
  _descriptor.MethodDescriptor(
    name='ListMetrics',
    full_name='dataspec.DataspecV2Service.ListMetrics',
    index=0,
    containing_service=None,
    input_type=_LISTMETRICSREQUEST,
    output_type=_LISTMETRICSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='CreateRule',
    full_name='dataspec.DataspecV2Service.CreateRule',
    index=1,
    containing_service=None,
    input_type=_CREATERULEREQUEST,
    output_type=_CREATERULERESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListRules',
    full_name='dataspec.DataspecV2Service.ListRules',
    index=2,
    containing_service=None,
    input_type=_LISTRULESREQUEST,
    output_type=_LISTRULESRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListAlerts',
    full_name='dataspec.DataspecV2Service.ListAlerts',
    index=3,
    containing_service=None,
    input_type=_LISTALERTSREQUEST,
    output_type=_LISTALERTSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetRule',
    full_name='dataspec.DataspecV2Service.GetRule',
    index=4,
    containing_service=None,
    input_type=_GETRULEREQUEST,
    output_type=_GETRULERESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='UpdateRule',
    full_name='dataspec.DataspecV2Service.UpdateRule',
    index=5,
    containing_service=None,
    input_type=_UPDATERULEREQUEST,
    output_type=_UPDATERULERESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='DeleteRule',
    full_name='dataspec.DataspecV2Service.DeleteRule',
    index=6,
    containing_service=None,
    input_type=_DELETERULEREQUEST,
    output_type=_DELETERULERESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ListJobs',
    full_name='dataspec.DataspecV2Service.ListJobs',
    index=7,
    containing_service=None,
    input_type=_LISTJOBSREQUEST,
    output_type=_LISTJOBSRESPONSE,
    options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetJob',
    full_name='dataspec.DataspecV2Service.GetJob',
    index=8,
    containing_service=None,
    input_type=_GETJOBREQUEST,
    output_type=_GETJOBRESPONSE,
    options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_DATASPECV2SERVICE)

DESCRIPTOR.services_by_name['DataspecV2Service'] = _DATASPECV2SERVICE

# @@protoc_insertion_point(module_scope)