# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: test_platform/suite_scheduler/analytics.proto

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

_sym_db = _symbol_database.Default()


from chromite.api.gen.chromite.api import artifacts_pb2 as chromite_dot_api_dot_artifacts__pb2
from chromite.api.gen.chromiumos import common_pb2 as chromiumos_dot_common__pb2
from chromite.api.gen.chromiumos import branch_pb2 as chromiumos_dot_branch__pb2
from chromite.api.gen.device import model_id_pb2 as device_dot_model__id__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='test_platform/suite_scheduler/analytics.proto',
  package='test_platform.suite_scheduler',
  syntax='proto3',
  serialized_options=_b('ZGgo.chromium.org/chromiumos/infra/proto/go/test_platform/suite_scheduler'),
  serialized_pb=_b('\n-test_platform/suite_scheduler/analytics.proto\x12\x1dtest_platform.suite_scheduler\x1a\x1c\x63hromite/api/artifacts.proto\x1a\x17\x63hromiumos/common.proto\x1a\x17\x63hromiumos/branch.proto\x1a\x15\x64\x65vice/model_id.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\x95\x01\n\tBuildInfo\x12-\n\x0c\x62uild_target\x18\x01 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\x11\n\tmilestone\x18\x02 \x01(\r\x12\x19\n\x11\x63hrome_os_version\x18\x03 \x01(\t\x12+\n\x04type\x18\x04 \x01(\x0e\x32\x1d.chromiumos.Branch.BranchType\"\x99\x01\n\x11\x46irmwareBuildInfo\x12-\n\x0c\x62uild_target\x18\x01 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12+\n\x04type\x18\x02 \x01(\x0e\x32\x1d.chromiumos.Branch.BranchType\x12(\n\x08\x61rtifact\x18\x03 \x01(\x0b\x32\x16.chromite.api.Artifact\"\xaa\x02\n\x0c\x42ranchFilter\x12\x44\n\x07\x63hannel\x18\x01 \x01(\x0e\x32\x33.test_platform.suite_scheduler.BranchFilter.Channel\x12\x46\n\x08operator\x18\x02 \x01(\x0e\x32\x34.test_platform.suite_scheduler.BranchFilter.Operator\x12\x0b\n\x03lag\x18\x03 \x01(\x05\"L\n\x07\x43hannel\x12\x16\n\x12\x42RANCH_REF_NOT_SET\x10\x00\x12\n\n\x06MASTER\x10\x01\x12\x07\n\x03\x44\x45V\x10\x02\x12\x08\n\x04\x42\x45TA\x10\x03\x12\n\n\x06STABLE\x10\x04\"1\n\x08Operator\x12\r\n\tUNDEFINED\x10\x00\x12\x06\n\x02\x45Q\x10\x01\x12\x06\n\x02GE\x10\x02\x12\x06\n\x02LE\x10\x03\"\xf6\x01\n\x0c\x42uildFilters\x12#\n\x1bonly_hwtest_sanity_required\x18\x01 \x01(\x08\x12\x43\n\x0e\x62ranch_filters\x18\x02 \x03(\x0b\x32+.test_platform.suite_scheduler.BranchFilter\x12=\n\x16\x66irmware_ro_build_spec\x18\x03 \x01(\x0e\x32\x1d.chromiumos.Branch.BranchType\x12=\n\x16\x66irmware_rw_build_spec\x18\x04 \x01(\x0e\x32\x1d.chromiumos.Branch.BranchType\"\xc2\x03\n\x12ScheduleJobTrigger\x12Q\n\x06weekly\x18\x01 \x01(\x0b\x32?.test_platform.suite_scheduler.ScheduleJobTrigger.WeeklyTriggerH\x00\x12S\n\x07nightly\x18\x02 \x01(\x0b\x32@.test_platform.suite_scheduler.ScheduleJobTrigger.NightlyTriggerH\x00\x12U\n\x08interval\x18\x03 \x01(\x0b\x32\x41.test_platform.suite_scheduler.ScheduleJobTrigger.IntervalTriggerH\x00\x12\x42\n\rbuild_filters\x18\x04 \x01(\x0b\x32+.test_platform.suite_scheduler.BuildFilters\x1a\x1c\n\rWeeklyTrigger\x12\x0b\n\x03\x64\x61y\x18\x01 \x01(\r\x1a\x1e\n\x0eNightlyTrigger\x12\x0c\n\x04hour\x18\x01 \x01(\r\x1a \n\x0fIntervalTrigger\x12\r\n\x05pause\x18\x01 \x01(\rB\t\n\x07trigger\"\xcd\x01\n\x0bScheduleJob\x12\x1e\n\x05model\x18\x01 \x01(\x0b\x32\x0f.device.ModelId\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\x18\n\x0equeued_task_id\x18\x03 \x01(\tH\x00\x12\x17\n\rjustification\x18\x04 \x01(\tH\x00\x12\x32\n\x0egenerated_time\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x08\n\x06result\"\xc1\x05\n\x12ScheduleJobSection\x12\x10\n\x08job_name\x18\x01 \x01(\t\x12O\n\x14schedule_job_trigger\x18\x02 \x01(\x0b\x32\x31.test_platform.suite_scheduler.ScheduleJobTrigger\x12\x1f\n\x06models\x18\x03 \x03(\x0b\x32\x0f.device.ModelId\x12.\n\rbuild_targets\x18\x04 \x03(\x0b\x32\x17.chromiumos.BuildTarget\x12V\n\x0ematched_builds\x18\x05 \x03(\x0b\x32>.test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild\x12\x41\n\rschedule_jobs\x18\x06 \x03(\x0b\x32*.test_platform.suite_scheduler.ScheduleJob\x12\x0c\n\x04pool\x18\x07 \x01(\t\x12\r\n\x05suite\x18\x08 \x01(\t\x1a\xbe\x02\n\x0cMatchedBuild\x12\x41\n\rrelease_build\x18\x01 \x01(\x0b\x32(.test_platform.suite_scheduler.BuildInfoH\x00\x12?\n\x0brelax_build\x18\x02 \x01(\x0b\x32(.test_platform.suite_scheduler.BuildInfoH\x00\x12M\n\x11\x66irmware_ro_build\x18\x03 \x01(\x0b\x32\x30.test_platform.suite_scheduler.FirmwareBuildInfoH\x00\x12M\n\x11\x66irmware_rw_build\x18\x04 \x01(\x0b\x32\x30.test_platform.suite_scheduler.FirmwareBuildInfoH\x00\x42\x0c\n\ncros_build\")\n\x11\x45xecutionResponse\x12\x14\n\x0c\x63tp_build_id\x18\x01 \x01(\t\"\'\n\x0e\x45xecutionError\x12\x15\n\rerror_message\x18\x01 \x01(\t\"\xfe\x01\n\rExecutionTask\x12\x16\n\x0equeued_task_id\x18\x01 \x01(\t\x12\x44\n\x08response\x18\x02 \x01(\x0b\x32\x30.test_platform.suite_scheduler.ExecutionResponseH\x00\x12>\n\x05\x65rror\x18\x03 \x01(\x0b\x32-.test_platform.suite_scheduler.ExecutionErrorH\x00\x12\x30\n\x0crequest_sent\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x13\n\x0brequest_tag\x18\x05 \x01(\tB\x08\n\x06resultBIZGgo.chromium.org/chromiumos/infra/proto/go/test_platform/suite_schedulerb\x06proto3')
  ,
  dependencies=[chromite_dot_api_dot_artifacts__pb2.DESCRIPTOR,chromiumos_dot_common__pb2.DESCRIPTOR,chromiumos_dot_branch__pb2.DESCRIPTOR,device_dot_model__id__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])



_BRANCHFILTER_CHANNEL = _descriptor.EnumDescriptor(
  name='Channel',
  full_name='test_platform.suite_scheduler.BranchFilter.Channel',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='BRANCH_REF_NOT_SET', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MASTER', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DEV', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BETA', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='STABLE', index=4, number=4,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=696,
  serialized_end=772,
)
_sym_db.RegisterEnumDescriptor(_BRANCHFILTER_CHANNEL)

_BRANCHFILTER_OPERATOR = _descriptor.EnumDescriptor(
  name='Operator',
  full_name='test_platform.suite_scheduler.BranchFilter.Operator',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNDEFINED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EQ', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GE', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LE', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=774,
  serialized_end=823,
)
_sym_db.RegisterEnumDescriptor(_BRANCHFILTER_OPERATOR)


_BUILDINFO = _descriptor.Descriptor(
  name='BuildInfo',
  full_name='test_platform.suite_scheduler.BuildInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='test_platform.suite_scheduler.BuildInfo.build_target', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='milestone', full_name='test_platform.suite_scheduler.BuildInfo.milestone', index=1,
      number=2, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='chrome_os_version', full_name='test_platform.suite_scheduler.BuildInfo.chrome_os_version', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='test_platform.suite_scheduler.BuildInfo.type', index=3,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=217,
  serialized_end=366,
)


_FIRMWAREBUILDINFO = _descriptor.Descriptor(
  name='FirmwareBuildInfo',
  full_name='test_platform.suite_scheduler.FirmwareBuildInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='test_platform.suite_scheduler.FirmwareBuildInfo.build_target', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='type', full_name='test_platform.suite_scheduler.FirmwareBuildInfo.type', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='artifact', full_name='test_platform.suite_scheduler.FirmwareBuildInfo.artifact', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=369,
  serialized_end=522,
)


_BRANCHFILTER = _descriptor.Descriptor(
  name='BranchFilter',
  full_name='test_platform.suite_scheduler.BranchFilter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='channel', full_name='test_platform.suite_scheduler.BranchFilter.channel', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='operator', full_name='test_platform.suite_scheduler.BranchFilter.operator', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='lag', full_name='test_platform.suite_scheduler.BranchFilter.lag', index=2,
      number=3, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BRANCHFILTER_CHANNEL,
    _BRANCHFILTER_OPERATOR,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=525,
  serialized_end=823,
)


_BUILDFILTERS = _descriptor.Descriptor(
  name='BuildFilters',
  full_name='test_platform.suite_scheduler.BuildFilters',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='only_hwtest_sanity_required', full_name='test_platform.suite_scheduler.BuildFilters.only_hwtest_sanity_required', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='branch_filters', full_name='test_platform.suite_scheduler.BuildFilters.branch_filters', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='firmware_ro_build_spec', full_name='test_platform.suite_scheduler.BuildFilters.firmware_ro_build_spec', index=2,
      number=3, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='firmware_rw_build_spec', full_name='test_platform.suite_scheduler.BuildFilters.firmware_rw_build_spec', index=3,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=826,
  serialized_end=1072,
)


_SCHEDULEJOBTRIGGER_WEEKLYTRIGGER = _descriptor.Descriptor(
  name='WeeklyTrigger',
  full_name='test_platform.suite_scheduler.ScheduleJobTrigger.WeeklyTrigger',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='day', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.WeeklyTrigger.day', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1420,
  serialized_end=1448,
)

_SCHEDULEJOBTRIGGER_NIGHTLYTRIGGER = _descriptor.Descriptor(
  name='NightlyTrigger',
  full_name='test_platform.suite_scheduler.ScheduleJobTrigger.NightlyTrigger',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hour', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.NightlyTrigger.hour', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1450,
  serialized_end=1480,
)

_SCHEDULEJOBTRIGGER_INTERVALTRIGGER = _descriptor.Descriptor(
  name='IntervalTrigger',
  full_name='test_platform.suite_scheduler.ScheduleJobTrigger.IntervalTrigger',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pause', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.IntervalTrigger.pause', index=0,
      number=1, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1482,
  serialized_end=1514,
)

_SCHEDULEJOBTRIGGER = _descriptor.Descriptor(
  name='ScheduleJobTrigger',
  full_name='test_platform.suite_scheduler.ScheduleJobTrigger',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='weekly', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.weekly', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='nightly', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.nightly', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='interval', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.interval', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='build_filters', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.build_filters', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_SCHEDULEJOBTRIGGER_WEEKLYTRIGGER, _SCHEDULEJOBTRIGGER_NIGHTLYTRIGGER, _SCHEDULEJOBTRIGGER_INTERVALTRIGGER, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='trigger', full_name='test_platform.suite_scheduler.ScheduleJobTrigger.trigger',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1075,
  serialized_end=1525,
)


_SCHEDULEJOB = _descriptor.Descriptor(
  name='ScheduleJob',
  full_name='test_platform.suite_scheduler.ScheduleJob',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='model', full_name='test_platform.suite_scheduler.ScheduleJob.model', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='build_target', full_name='test_platform.suite_scheduler.ScheduleJob.build_target', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='queued_task_id', full_name='test_platform.suite_scheduler.ScheduleJob.queued_task_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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='justification', full_name='test_platform.suite_scheduler.ScheduleJob.justification', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='generated_time', full_name='test_platform.suite_scheduler.ScheduleJob.generated_time', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='result', full_name='test_platform.suite_scheduler.ScheduleJob.result',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1528,
  serialized_end=1733,
)


_SCHEDULEJOBSECTION_MATCHEDBUILD = _descriptor.Descriptor(
  name='MatchedBuild',
  full_name='test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='release_build', full_name='test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild.release_build', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='relax_build', full_name='test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild.relax_build', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='firmware_ro_build', full_name='test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild.firmware_ro_build', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='firmware_rw_build', full_name='test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild.firmware_rw_build', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='cros_build', full_name='test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild.cros_build',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2123,
  serialized_end=2441,
)

_SCHEDULEJOBSECTION = _descriptor.Descriptor(
  name='ScheduleJobSection',
  full_name='test_platform.suite_scheduler.ScheduleJobSection',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='job_name', full_name='test_platform.suite_scheduler.ScheduleJobSection.job_name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='schedule_job_trigger', full_name='test_platform.suite_scheduler.ScheduleJobSection.schedule_job_trigger', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='models', full_name='test_platform.suite_scheduler.ScheduleJobSection.models', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='build_targets', full_name='test_platform.suite_scheduler.ScheduleJobSection.build_targets', index=3,
      number=4, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='matched_builds', full_name='test_platform.suite_scheduler.ScheduleJobSection.matched_builds', index=4,
      number=5, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='schedule_jobs', full_name='test_platform.suite_scheduler.ScheduleJobSection.schedule_jobs', index=5,
      number=6, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='pool', full_name='test_platform.suite_scheduler.ScheduleJobSection.pool', index=6,
      number=7, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='suite', full_name='test_platform.suite_scheduler.ScheduleJobSection.suite', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_SCHEDULEJOBSECTION_MATCHEDBUILD, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1736,
  serialized_end=2441,
)


_EXECUTIONRESPONSE = _descriptor.Descriptor(
  name='ExecutionResponse',
  full_name='test_platform.suite_scheduler.ExecutionResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ctp_build_id', full_name='test_platform.suite_scheduler.ExecutionResponse.ctp_build_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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2443,
  serialized_end=2484,
)


_EXECUTIONERROR = _descriptor.Descriptor(
  name='ExecutionError',
  full_name='test_platform.suite_scheduler.ExecutionError',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='error_message', full_name='test_platform.suite_scheduler.ExecutionError.error_message', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2486,
  serialized_end=2525,
)


_EXECUTIONTASK = _descriptor.Descriptor(
  name='ExecutionTask',
  full_name='test_platform.suite_scheduler.ExecutionTask',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='queued_task_id', full_name='test_platform.suite_scheduler.ExecutionTask.queued_task_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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='response', full_name='test_platform.suite_scheduler.ExecutionTask.response', index=1,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='error', full_name='test_platform.suite_scheduler.ExecutionTask.error', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='request_sent', full_name='test_platform.suite_scheduler.ExecutionTask.request_sent', index=3,
      number=4, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='request_tag', full_name='test_platform.suite_scheduler.ExecutionTask.request_tag', index=4,
      number=5, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='result', full_name='test_platform.suite_scheduler.ExecutionTask.result',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2528,
  serialized_end=2782,
)

_BUILDINFO.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_BUILDINFO.fields_by_name['type'].enum_type = chromiumos_dot_branch__pb2._BRANCH_BRANCHTYPE
_FIRMWAREBUILDINFO.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_FIRMWAREBUILDINFO.fields_by_name['type'].enum_type = chromiumos_dot_branch__pb2._BRANCH_BRANCHTYPE
_FIRMWAREBUILDINFO.fields_by_name['artifact'].message_type = chromite_dot_api_dot_artifacts__pb2._ARTIFACT
_BRANCHFILTER.fields_by_name['channel'].enum_type = _BRANCHFILTER_CHANNEL
_BRANCHFILTER.fields_by_name['operator'].enum_type = _BRANCHFILTER_OPERATOR
_BRANCHFILTER_CHANNEL.containing_type = _BRANCHFILTER
_BRANCHFILTER_OPERATOR.containing_type = _BRANCHFILTER
_BUILDFILTERS.fields_by_name['branch_filters'].message_type = _BRANCHFILTER
_BUILDFILTERS.fields_by_name['firmware_ro_build_spec'].enum_type = chromiumos_dot_branch__pb2._BRANCH_BRANCHTYPE
_BUILDFILTERS.fields_by_name['firmware_rw_build_spec'].enum_type = chromiumos_dot_branch__pb2._BRANCH_BRANCHTYPE
_SCHEDULEJOBTRIGGER_WEEKLYTRIGGER.containing_type = _SCHEDULEJOBTRIGGER
_SCHEDULEJOBTRIGGER_NIGHTLYTRIGGER.containing_type = _SCHEDULEJOBTRIGGER
_SCHEDULEJOBTRIGGER_INTERVALTRIGGER.containing_type = _SCHEDULEJOBTRIGGER
_SCHEDULEJOBTRIGGER.fields_by_name['weekly'].message_type = _SCHEDULEJOBTRIGGER_WEEKLYTRIGGER
_SCHEDULEJOBTRIGGER.fields_by_name['nightly'].message_type = _SCHEDULEJOBTRIGGER_NIGHTLYTRIGGER
_SCHEDULEJOBTRIGGER.fields_by_name['interval'].message_type = _SCHEDULEJOBTRIGGER_INTERVALTRIGGER
_SCHEDULEJOBTRIGGER.fields_by_name['build_filters'].message_type = _BUILDFILTERS
_SCHEDULEJOBTRIGGER.oneofs_by_name['trigger'].fields.append(
  _SCHEDULEJOBTRIGGER.fields_by_name['weekly'])
_SCHEDULEJOBTRIGGER.fields_by_name['weekly'].containing_oneof = _SCHEDULEJOBTRIGGER.oneofs_by_name['trigger']
_SCHEDULEJOBTRIGGER.oneofs_by_name['trigger'].fields.append(
  _SCHEDULEJOBTRIGGER.fields_by_name['nightly'])
_SCHEDULEJOBTRIGGER.fields_by_name['nightly'].containing_oneof = _SCHEDULEJOBTRIGGER.oneofs_by_name['trigger']
_SCHEDULEJOBTRIGGER.oneofs_by_name['trigger'].fields.append(
  _SCHEDULEJOBTRIGGER.fields_by_name['interval'])
_SCHEDULEJOBTRIGGER.fields_by_name['interval'].containing_oneof = _SCHEDULEJOBTRIGGER.oneofs_by_name['trigger']
_SCHEDULEJOB.fields_by_name['model'].message_type = device_dot_model__id__pb2._MODELID
_SCHEDULEJOB.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_SCHEDULEJOB.fields_by_name['generated_time'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_SCHEDULEJOB.oneofs_by_name['result'].fields.append(
  _SCHEDULEJOB.fields_by_name['queued_task_id'])
_SCHEDULEJOB.fields_by_name['queued_task_id'].containing_oneof = _SCHEDULEJOB.oneofs_by_name['result']
_SCHEDULEJOB.oneofs_by_name['result'].fields.append(
  _SCHEDULEJOB.fields_by_name['justification'])
_SCHEDULEJOB.fields_by_name['justification'].containing_oneof = _SCHEDULEJOB.oneofs_by_name['result']
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['release_build'].message_type = _BUILDINFO
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['relax_build'].message_type = _BUILDINFO
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['firmware_ro_build'].message_type = _FIRMWAREBUILDINFO
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['firmware_rw_build'].message_type = _FIRMWAREBUILDINFO
_SCHEDULEJOBSECTION_MATCHEDBUILD.containing_type = _SCHEDULEJOBSECTION
_SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build'].fields.append(
  _SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['release_build'])
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['release_build'].containing_oneof = _SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build']
_SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build'].fields.append(
  _SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['relax_build'])
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['relax_build'].containing_oneof = _SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build']
_SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build'].fields.append(
  _SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['firmware_ro_build'])
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['firmware_ro_build'].containing_oneof = _SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build']
_SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build'].fields.append(
  _SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['firmware_rw_build'])
_SCHEDULEJOBSECTION_MATCHEDBUILD.fields_by_name['firmware_rw_build'].containing_oneof = _SCHEDULEJOBSECTION_MATCHEDBUILD.oneofs_by_name['cros_build']
_SCHEDULEJOBSECTION.fields_by_name['schedule_job_trigger'].message_type = _SCHEDULEJOBTRIGGER
_SCHEDULEJOBSECTION.fields_by_name['models'].message_type = device_dot_model__id__pb2._MODELID
_SCHEDULEJOBSECTION.fields_by_name['build_targets'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_SCHEDULEJOBSECTION.fields_by_name['matched_builds'].message_type = _SCHEDULEJOBSECTION_MATCHEDBUILD
_SCHEDULEJOBSECTION.fields_by_name['schedule_jobs'].message_type = _SCHEDULEJOB
_EXECUTIONTASK.fields_by_name['response'].message_type = _EXECUTIONRESPONSE
_EXECUTIONTASK.fields_by_name['error'].message_type = _EXECUTIONERROR
_EXECUTIONTASK.fields_by_name['request_sent'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_EXECUTIONTASK.oneofs_by_name['result'].fields.append(
  _EXECUTIONTASK.fields_by_name['response'])
_EXECUTIONTASK.fields_by_name['response'].containing_oneof = _EXECUTIONTASK.oneofs_by_name['result']
_EXECUTIONTASK.oneofs_by_name['result'].fields.append(
  _EXECUTIONTASK.fields_by_name['error'])
_EXECUTIONTASK.fields_by_name['error'].containing_oneof = _EXECUTIONTASK.oneofs_by_name['result']
DESCRIPTOR.message_types_by_name['BuildInfo'] = _BUILDINFO
DESCRIPTOR.message_types_by_name['FirmwareBuildInfo'] = _FIRMWAREBUILDINFO
DESCRIPTOR.message_types_by_name['BranchFilter'] = _BRANCHFILTER
DESCRIPTOR.message_types_by_name['BuildFilters'] = _BUILDFILTERS
DESCRIPTOR.message_types_by_name['ScheduleJobTrigger'] = _SCHEDULEJOBTRIGGER
DESCRIPTOR.message_types_by_name['ScheduleJob'] = _SCHEDULEJOB
DESCRIPTOR.message_types_by_name['ScheduleJobSection'] = _SCHEDULEJOBSECTION
DESCRIPTOR.message_types_by_name['ExecutionResponse'] = _EXECUTIONRESPONSE
DESCRIPTOR.message_types_by_name['ExecutionError'] = _EXECUTIONERROR
DESCRIPTOR.message_types_by_name['ExecutionTask'] = _EXECUTIONTASK
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

BuildInfo = _reflection.GeneratedProtocolMessageType('BuildInfo', (_message.Message,), dict(
  DESCRIPTOR = _BUILDINFO,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.BuildInfo)
  ))
_sym_db.RegisterMessage(BuildInfo)

FirmwareBuildInfo = _reflection.GeneratedProtocolMessageType('FirmwareBuildInfo', (_message.Message,), dict(
  DESCRIPTOR = _FIRMWAREBUILDINFO,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.FirmwareBuildInfo)
  ))
_sym_db.RegisterMessage(FirmwareBuildInfo)

BranchFilter = _reflection.GeneratedProtocolMessageType('BranchFilter', (_message.Message,), dict(
  DESCRIPTOR = _BRANCHFILTER,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.BranchFilter)
  ))
_sym_db.RegisterMessage(BranchFilter)

BuildFilters = _reflection.GeneratedProtocolMessageType('BuildFilters', (_message.Message,), dict(
  DESCRIPTOR = _BUILDFILTERS,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.BuildFilters)
  ))
_sym_db.RegisterMessage(BuildFilters)

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

  WeeklyTrigger = _reflection.GeneratedProtocolMessageType('WeeklyTrigger', (_message.Message,), dict(
    DESCRIPTOR = _SCHEDULEJOBTRIGGER_WEEKLYTRIGGER,
    __module__ = 'test_platform.suite_scheduler.analytics_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJobTrigger.WeeklyTrigger)
    ))
  ,

  NightlyTrigger = _reflection.GeneratedProtocolMessageType('NightlyTrigger', (_message.Message,), dict(
    DESCRIPTOR = _SCHEDULEJOBTRIGGER_NIGHTLYTRIGGER,
    __module__ = 'test_platform.suite_scheduler.analytics_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJobTrigger.NightlyTrigger)
    ))
  ,

  IntervalTrigger = _reflection.GeneratedProtocolMessageType('IntervalTrigger', (_message.Message,), dict(
    DESCRIPTOR = _SCHEDULEJOBTRIGGER_INTERVALTRIGGER,
    __module__ = 'test_platform.suite_scheduler.analytics_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJobTrigger.IntervalTrigger)
    ))
  ,
  DESCRIPTOR = _SCHEDULEJOBTRIGGER,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJobTrigger)
  ))
_sym_db.RegisterMessage(ScheduleJobTrigger)
_sym_db.RegisterMessage(ScheduleJobTrigger.WeeklyTrigger)
_sym_db.RegisterMessage(ScheduleJobTrigger.NightlyTrigger)
_sym_db.RegisterMessage(ScheduleJobTrigger.IntervalTrigger)

ScheduleJob = _reflection.GeneratedProtocolMessageType('ScheduleJob', (_message.Message,), dict(
  DESCRIPTOR = _SCHEDULEJOB,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJob)
  ))
_sym_db.RegisterMessage(ScheduleJob)

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

  MatchedBuild = _reflection.GeneratedProtocolMessageType('MatchedBuild', (_message.Message,), dict(
    DESCRIPTOR = _SCHEDULEJOBSECTION_MATCHEDBUILD,
    __module__ = 'test_platform.suite_scheduler.analytics_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJobSection.MatchedBuild)
    ))
  ,
  DESCRIPTOR = _SCHEDULEJOBSECTION,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ScheduleJobSection)
  ))
_sym_db.RegisterMessage(ScheduleJobSection)
_sym_db.RegisterMessage(ScheduleJobSection.MatchedBuild)

ExecutionResponse = _reflection.GeneratedProtocolMessageType('ExecutionResponse', (_message.Message,), dict(
  DESCRIPTOR = _EXECUTIONRESPONSE,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ExecutionResponse)
  ))
_sym_db.RegisterMessage(ExecutionResponse)

ExecutionError = _reflection.GeneratedProtocolMessageType('ExecutionError', (_message.Message,), dict(
  DESCRIPTOR = _EXECUTIONERROR,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ExecutionError)
  ))
_sym_db.RegisterMessage(ExecutionError)

ExecutionTask = _reflection.GeneratedProtocolMessageType('ExecutionTask', (_message.Message,), dict(
  DESCRIPTOR = _EXECUTIONTASK,
  __module__ = 'test_platform.suite_scheduler.analytics_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.suite_scheduler.ExecutionTask)
  ))
_sym_db.RegisterMessage(ExecutionTask)


DESCRIPTOR._options = None
# @@protoc_insertion_point(module_scope)
