# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: test_platform/request.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 test_metadata_pb2 as chromite_dot_api_dot_test__metadata__pb2
from chromite.api.gen.client import request_id_pb2 as client_dot_request__id__pb2
from chromite.api.gen.client import profile_id_pb2 as client_dot_profile__id__pb2
from chromite.api.gen.chromiumos import common_pb2 as chromiumos_dot_common__pb2
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='test_platform/request.proto',
  package='test_platform',
  syntax='proto3',
  serialized_options=_b('Z7go.chromium.org/chromiumos/infra/proto/go/test_platform'),
  serialized_pb=_b('\n\x1btest_platform/request.proto\x12\rtest_platform\x1a chromite/api/test_metadata.proto\x1a\x17\x63lient/request_id.proto\x1a\x17\x63lient/profile_id.proto\x1a\x17\x63hromiumos/common.proto\x1a\x1egoogle/protobuf/duration.proto\"\xcd\x16\n\x07Request\x12-\n\x06params\x18\x01 \x01(\x0b\x32\x1d.test_platform.Request.Params\x12\x32\n\ttest_plan\x18\x05 \x01(\x0b\x32\x1f.test_platform.Request.TestPlan\x12,\n\x11\x63lient_request_id\x18\x06 \x01(\x0b\x32\x11.client.RequestId\x12,\n\x11\x63lient_profile_id\x18\x07 \x01(\x0b\x32\x11.client.ProfileId\x1a\xd5\x0f\n\x06Params\x12M\n\x13hardware_attributes\x18\x01 \x01(\x0b\x32\x30.test_platform.Request.Params.HardwareAttributes\x12M\n\x13software_attributes\x18\x02 \x01(\x0b\x32\x30.test_platform.Request.Params.SoftwareAttributes\x12M\n\x13\x66reeform_attributes\x18\t \x01(\x0b\x32\x30.test_platform.Request.Params.FreeformAttributes\x12O\n\x15software_dependencies\x18\x03 \x03(\x0b\x32\x30.test_platform.Request.Params.SoftwareDependency\x12<\n\nscheduling\x18\x04 \x01(\x0b\x32(.test_platform.Request.Params.Scheduling\x12\x32\n\x05retry\x18\x05 \x01(\x0b\x32#.test_platform.Request.Params.Retry\x12\x38\n\x08metadata\x18\x06 \x01(\x0b\x32&.test_platform.Request.Params.Metadata\x12\x30\n\x04time\x18\x07 \x01(\x0b\x32\".test_platform.Request.Params.Time\x12>\n\x0b\x64\x65\x63orations\x18\x08 \x01(\x0b\x32).test_platform.Request.Params.Decorations\x12\x34\n\x06legacy\x18\n \x01(\x0b\x32$.test_platform.Request.Params.Legacy\x12@\n\x0cnotification\x18\x0b \x01(\x0b\x32*.test_platform.Request.Params.Notification\x12<\n\nmigrations\x18\x0c \x01(\x0b\x32(.test_platform.Request.Params.Migrations\x1a#\n\x12HardwareAttributes\x12\r\n\x05model\x18\x01 \x01(\t\x1a\x43\n\x12SoftwareAttributes\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x1a\x31\n\x12\x46reeformAttributes\x12\x1b\n\x13swarming_dimensions\x18\x01 \x03(\t\x1ao\n\x12SoftwareDependency\x12\x18\n\x0e\x63hromeos_build\x18\x03 \x01(\tH\x00\x12\x1b\n\x11ro_firmware_build\x18\x04 \x01(\tH\x00\x12\x1b\n\x11rw_firmware_build\x18\x05 \x01(\tH\x00\x42\x05\n\x03\x64\x65p\x1a\xbb\x03\n\nScheduling\x12L\n\x0cmanaged_pool\x18\x01 \x01(\x0e\x32\x34.test_platform.Request.Params.Scheduling.ManagedPoolH\x00\x12\x18\n\x0eunmanaged_pool\x18\x02 \x01(\tH\x00\x12\x1b\n\rquota_account\x18\x03 \x01(\tB\x02\x18\x01H\x00\x12\x10\n\x08priority\x18\x04 \x01(\x03\x12\x12\n\nqs_account\x18\x05 \x01(\t\"\xf9\x01\n\x0bManagedPool\x12\x1c\n\x18MANAGED_POOL_UNSPECIFIED\x10\x00\x12\x13\n\x0fMANAGED_POOL_CQ\x10\x01\x12\x14\n\x10MANAGED_POOL_BVT\x10\x02\x12\x17\n\x13MANAGED_POOL_SUITES\x10\x03\x12\x14\n\x10MANAGED_POOL_CTS\x10\x04\x12\x1d\n\x19MANAGED_POOL_CTS_PERBUILD\x10\x05\x12\x1b\n\x17MANAGED_POOL_CONTINUOUS\x10\x06\x12\x1e\n\x1aMANAGED_POOL_ARC_PRESUBMIT\x10\x07\x12\x16\n\x12MANAGED_POOL_QUOTA\x10\x08\x42\x06\n\x04pool\x1a#\n\x05Retry\x12\r\n\x05\x61llow\x18\x01 \x01(\x08\x12\x0b\n\x03max\x18\x02 \x01(\x05\x1aH\n\x08Metadata\x12\x19\n\x11test_metadata_url\x18\x01 \x01(\t\x12!\n\x19\x64\x65\x62ug_symbols_archive_url\x18\x02 \x01(\t\x1a;\n\x04Time\x12\x33\n\x10maximum_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xad\x01\n\x0b\x44\x65\x63orations\x12X\n\x10\x61utotest_keyvals\x18\x01 \x03(\x0b\x32>.test_platform.Request.Params.Decorations.AutotestKeyvalsEntry\x12\x0c\n\x04tags\x18\x02 \x03(\t\x1a\x36\n\x14\x41utotestKeyvalsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a \n\x06Legacy\x12\x16\n\x0e\x61utotest_suite\x18\x01 \x01(\t\x1a$\n\x0cNotification\x12\x14\n\x0cpubsub_topic\x18\x01 \x01(\t\x1aI\n\nMigrations\x12\x17\n\x0fuse_test_runner\x18\x01 \x01(\x08\x12\"\n\x1a\x65nable_synchronous_offload\x18\x02 \x01(\x08\x1a\x15\n\x05Suite\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\x8e\x01\n\x04Test\x12\x38\n\x08\x61utotest\x18\x01 \x01(\x0b\x32$.test_platform.Request.Test.AutotestH\x00\x1a\x41\n\x08\x41utotest\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\ttest_args\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\tB\t\n\x07harness\x1a\xe4\x02\n\x0b\x45numeration\x12S\n\x14\x61utotest_invocations\x18\x02 \x03(\x0b\x32\x35.test_platform.Request.Enumeration.AutotestInvocation\x1a\xff\x01\n\x12\x41utotestInvocation\x12(\n\x04test\x18\x01 \x01(\x0b\x32\x1a.chromite.api.AutotestTest\x12\x11\n\ttest_args\x18\x02 \x01(\t\x12\x14\n\x0c\x64isplay_name\x18\x03 \x01(\t\x12`\n\x0eresult_keyvals\x18\x04 \x03(\x0b\x32H.test_platform.Request.Enumeration.AutotestInvocation.ResultKeyvalsEntry\x1a\x34\n\x12ResultKeyvalsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x9b\x01\n\x08TestPlan\x12+\n\x05suite\x18\x01 \x03(\x0b\x32\x1c.test_platform.Request.Suite\x12)\n\x04test\x18\x02 \x03(\x0b\x32\x1b.test_platform.Request.Test\x12\x37\n\x0b\x65numeration\x18\x03 \x01(\x0b\x32\".test_platform.Request.EnumerationB9Z7go.chromium.org/chromiumos/infra/proto/go/test_platformb\x06proto3')
  ,
  dependencies=[chromite_dot_api_dot_test__metadata__pb2.DESCRIPTOR,client_dot_request__id__pb2.DESCRIPTOR,client_dot_profile__id__pb2.DESCRIPTOR,chromiumos_dot_common__pb2.DESCRIPTOR,google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,])



_REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL = _descriptor.EnumDescriptor(
  name='ManagedPool',
  full_name='test_platform.Request.Params.Scheduling.ManagedPool',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_CQ', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_BVT', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_SUITES', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_CTS', index=4, number=4,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_CTS_PERBUILD', index=5, number=5,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_CONTINUOUS', index=6, number=6,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_ARC_PRESUBMIT', index=7, number=7,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MANAGED_POOL_QUOTA', index=8, number=8,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1644,
  serialized_end=1893,
)
_sym_db.RegisterEnumDescriptor(_REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL)


_REQUEST_PARAMS_HARDWAREATTRIBUTES = _descriptor.Descriptor(
  name='HardwareAttributes',
  full_name='test_platform.Request.Params.HardwareAttributes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='model', full_name='test_platform.Request.Params.HardwareAttributes.model', 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=1187,
  serialized_end=1222,
)

_REQUEST_PARAMS_SOFTWAREATTRIBUTES = _descriptor.Descriptor(
  name='SoftwareAttributes',
  full_name='test_platform.Request.Params.SoftwareAttributes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='test_platform.Request.Params.SoftwareAttributes.build_target', index=0,
      number=2, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1224,
  serialized_end=1291,
)

_REQUEST_PARAMS_FREEFORMATTRIBUTES = _descriptor.Descriptor(
  name='FreeformAttributes',
  full_name='test_platform.Request.Params.FreeformAttributes',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='swarming_dimensions', full_name='test_platform.Request.Params.FreeformAttributes.swarming_dimensions', index=0,
      number=1, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1293,
  serialized_end=1342,
)

_REQUEST_PARAMS_SOFTWAREDEPENDENCY = _descriptor.Descriptor(
  name='SoftwareDependency',
  full_name='test_platform.Request.Params.SoftwareDependency',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chromeos_build', full_name='test_platform.Request.Params.SoftwareDependency.chromeos_build', index=0,
      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='ro_firmware_build', full_name='test_platform.Request.Params.SoftwareDependency.ro_firmware_build', index=1,
      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='rw_firmware_build', full_name='test_platform.Request.Params.SoftwareDependency.rw_firmware_build', index=2,
      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='dep', full_name='test_platform.Request.Params.SoftwareDependency.dep',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1344,
  serialized_end=1455,
)

_REQUEST_PARAMS_SCHEDULING = _descriptor.Descriptor(
  name='Scheduling',
  full_name='test_platform.Request.Params.Scheduling',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='managed_pool', full_name='test_platform.Request.Params.Scheduling.managed_pool', 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='unmanaged_pool', full_name='test_platform.Request.Params.Scheduling.unmanaged_pool', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='quota_account', full_name='test_platform.Request.Params.Scheduling.quota_account', 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=_b('\030\001'), file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='priority', full_name='test_platform.Request.Params.Scheduling.priority', index=3,
      number=4, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='qs_account', full_name='test_platform.Request.Params.Scheduling.qs_account', 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=[
    _REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='pool', full_name='test_platform.Request.Params.Scheduling.pool',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1458,
  serialized_end=1901,
)

_REQUEST_PARAMS_RETRY = _descriptor.Descriptor(
  name='Retry',
  full_name='test_platform.Request.Params.Retry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='allow', full_name='test_platform.Request.Params.Retry.allow', 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='max', full_name='test_platform.Request.Params.Retry.max', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1903,
  serialized_end=1938,
)

_REQUEST_PARAMS_METADATA = _descriptor.Descriptor(
  name='Metadata',
  full_name='test_platform.Request.Params.Metadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='test_metadata_url', full_name='test_platform.Request.Params.Metadata.test_metadata_url', 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='debug_symbols_archive_url', full_name='test_platform.Request.Params.Metadata.debug_symbols_archive_url', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1940,
  serialized_end=2012,
)

_REQUEST_PARAMS_TIME = _descriptor.Descriptor(
  name='Time',
  full_name='test_platform.Request.Params.Time',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='maximum_duration', full_name='test_platform.Request.Params.Time.maximum_duration', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2014,
  serialized_end=2073,
)

_REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY = _descriptor.Descriptor(
  name='AutotestKeyvalsEntry',
  full_name='test_platform.Request.Params.Decorations.AutotestKeyvalsEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='test_platform.Request.Params.Decorations.AutotestKeyvalsEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='test_platform.Request.Params.Decorations.AutotestKeyvalsEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=_b('8\001'),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2195,
  serialized_end=2249,
)

_REQUEST_PARAMS_DECORATIONS = _descriptor.Descriptor(
  name='Decorations',
  full_name='test_platform.Request.Params.Decorations',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='autotest_keyvals', full_name='test_platform.Request.Params.Decorations.autotest_keyvals', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='tags', full_name='test_platform.Request.Params.Decorations.tags', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2076,
  serialized_end=2249,
)

_REQUEST_PARAMS_LEGACY = _descriptor.Descriptor(
  name='Legacy',
  full_name='test_platform.Request.Params.Legacy',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='autotest_suite', full_name='test_platform.Request.Params.Legacy.autotest_suite', 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=2251,
  serialized_end=2283,
)

_REQUEST_PARAMS_NOTIFICATION = _descriptor.Descriptor(
  name='Notification',
  full_name='test_platform.Request.Params.Notification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pubsub_topic', full_name='test_platform.Request.Params.Notification.pubsub_topic', 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=2285,
  serialized_end=2321,
)

_REQUEST_PARAMS_MIGRATIONS = _descriptor.Descriptor(
  name='Migrations',
  full_name='test_platform.Request.Params.Migrations',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='use_test_runner', full_name='test_platform.Request.Params.Migrations.use_test_runner', 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='enable_synchronous_offload', full_name='test_platform.Request.Params.Migrations.enable_synchronous_offload', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2323,
  serialized_end=2396,
)

_REQUEST_PARAMS = _descriptor.Descriptor(
  name='Params',
  full_name='test_platform.Request.Params',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hardware_attributes', full_name='test_platform.Request.Params.hardware_attributes', 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='software_attributes', full_name='test_platform.Request.Params.software_attributes', 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='freeform_attributes', full_name='test_platform.Request.Params.freeform_attributes', index=2,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='software_dependencies', full_name='test_platform.Request.Params.software_dependencies', index=3,
      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='scheduling', full_name='test_platform.Request.Params.scheduling', index=4,
      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='retry', full_name='test_platform.Request.Params.retry', index=5,
      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),
    _descriptor.FieldDescriptor(
      name='metadata', full_name='test_platform.Request.Params.metadata', index=6,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='time', full_name='test_platform.Request.Params.time', index=7,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='decorations', full_name='test_platform.Request.Params.decorations', index=8,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='legacy', full_name='test_platform.Request.Params.legacy', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='notification', full_name='test_platform.Request.Params.notification', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='migrations', full_name='test_platform.Request.Params.migrations', 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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_REQUEST_PARAMS_HARDWAREATTRIBUTES, _REQUEST_PARAMS_SOFTWAREATTRIBUTES, _REQUEST_PARAMS_FREEFORMATTRIBUTES, _REQUEST_PARAMS_SOFTWAREDEPENDENCY, _REQUEST_PARAMS_SCHEDULING, _REQUEST_PARAMS_RETRY, _REQUEST_PARAMS_METADATA, _REQUEST_PARAMS_TIME, _REQUEST_PARAMS_DECORATIONS, _REQUEST_PARAMS_LEGACY, _REQUEST_PARAMS_NOTIFICATION, _REQUEST_PARAMS_MIGRATIONS, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=391,
  serialized_end=2396,
)

_REQUEST_SUITE = _descriptor.Descriptor(
  name='Suite',
  full_name='test_platform.Request.Suite',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='test_platform.Request.Suite.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2398,
  serialized_end=2419,
)

_REQUEST_TEST_AUTOTEST = _descriptor.Descriptor(
  name='Autotest',
  full_name='test_platform.Request.Test.Autotest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='test_platform.Request.Test.Autotest.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='test_args', full_name='test_platform.Request.Test.Autotest.test_args', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='display_name', full_name='test_platform.Request.Test.Autotest.display_name', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2488,
  serialized_end=2553,
)

_REQUEST_TEST = _descriptor.Descriptor(
  name='Test',
  full_name='test_platform.Request.Test',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='autotest', full_name='test_platform.Request.Test.autotest', 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),
  ],
  extensions=[
  ],
  nested_types=[_REQUEST_TEST_AUTOTEST, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='harness', full_name='test_platform.Request.Test.harness',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=2422,
  serialized_end=2564,
)

_REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY = _descriptor.Descriptor(
  name='ResultKeyvalsEntry',
  full_name='test_platform.Request.Enumeration.AutotestInvocation.ResultKeyvalsEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='test_platform.Request.Enumeration.AutotestInvocation.ResultKeyvalsEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='value', full_name='test_platform.Request.Enumeration.AutotestInvocation.ResultKeyvalsEntry.value', index=1,
      number=2, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=_b('8\001'),
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2871,
  serialized_end=2923,
)

_REQUEST_ENUMERATION_AUTOTESTINVOCATION = _descriptor.Descriptor(
  name='AutotestInvocation',
  full_name='test_platform.Request.Enumeration.AutotestInvocation',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='test', full_name='test_platform.Request.Enumeration.AutotestInvocation.test', 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='test_args', full_name='test_platform.Request.Enumeration.AutotestInvocation.test_args', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='display_name', full_name='test_platform.Request.Enumeration.AutotestInvocation.display_name', 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='result_keyvals', full_name='test_platform.Request.Enumeration.AutotestInvocation.result_keyvals', 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),
  ],
  extensions=[
  ],
  nested_types=[_REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2668,
  serialized_end=2923,
)

_REQUEST_ENUMERATION = _descriptor.Descriptor(
  name='Enumeration',
  full_name='test_platform.Request.Enumeration',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='autotest_invocations', full_name='test_platform.Request.Enumeration.autotest_invocations', index=0,
      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),
  ],
  extensions=[
  ],
  nested_types=[_REQUEST_ENUMERATION_AUTOTESTINVOCATION, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2567,
  serialized_end=2923,
)

_REQUEST_TESTPLAN = _descriptor.Descriptor(
  name='TestPlan',
  full_name='test_platform.Request.TestPlan',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='suite', full_name='test_platform.Request.TestPlan.suite', 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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='test', full_name='test_platform.Request.TestPlan.test', 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='enumeration', full_name='test_platform.Request.TestPlan.enumeration', 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=2926,
  serialized_end=3081,
)

_REQUEST = _descriptor.Descriptor(
  name='Request',
  full_name='test_platform.Request',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='params', full_name='test_platform.Request.params', 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='test_plan', full_name='test_platform.Request.test_plan', index=1,
      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),
    _descriptor.FieldDescriptor(
      name='client_request_id', full_name='test_platform.Request.client_request_id', index=2,
      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,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='client_profile_id', full_name='test_platform.Request.client_profile_id', index=3,
      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,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_REQUEST_PARAMS, _REQUEST_SUITE, _REQUEST_TEST, _REQUEST_ENUMERATION, _REQUEST_TESTPLAN, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=188,
  serialized_end=3081,
)

_REQUEST_PARAMS_HARDWAREATTRIBUTES.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_SOFTWAREATTRIBUTES.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_REQUEST_PARAMS_SOFTWAREATTRIBUTES.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_FREEFORMATTRIBUTES.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.oneofs_by_name['dep'].fields.append(
  _REQUEST_PARAMS_SOFTWAREDEPENDENCY.fields_by_name['chromeos_build'])
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.fields_by_name['chromeos_build'].containing_oneof = _REQUEST_PARAMS_SOFTWAREDEPENDENCY.oneofs_by_name['dep']
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.oneofs_by_name['dep'].fields.append(
  _REQUEST_PARAMS_SOFTWAREDEPENDENCY.fields_by_name['ro_firmware_build'])
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.fields_by_name['ro_firmware_build'].containing_oneof = _REQUEST_PARAMS_SOFTWAREDEPENDENCY.oneofs_by_name['dep']
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.oneofs_by_name['dep'].fields.append(
  _REQUEST_PARAMS_SOFTWAREDEPENDENCY.fields_by_name['rw_firmware_build'])
_REQUEST_PARAMS_SOFTWAREDEPENDENCY.fields_by_name['rw_firmware_build'].containing_oneof = _REQUEST_PARAMS_SOFTWAREDEPENDENCY.oneofs_by_name['dep']
_REQUEST_PARAMS_SCHEDULING.fields_by_name['managed_pool'].enum_type = _REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL
_REQUEST_PARAMS_SCHEDULING.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL.containing_type = _REQUEST_PARAMS_SCHEDULING
_REQUEST_PARAMS_SCHEDULING.oneofs_by_name['pool'].fields.append(
  _REQUEST_PARAMS_SCHEDULING.fields_by_name['managed_pool'])
_REQUEST_PARAMS_SCHEDULING.fields_by_name['managed_pool'].containing_oneof = _REQUEST_PARAMS_SCHEDULING.oneofs_by_name['pool']
_REQUEST_PARAMS_SCHEDULING.oneofs_by_name['pool'].fields.append(
  _REQUEST_PARAMS_SCHEDULING.fields_by_name['unmanaged_pool'])
_REQUEST_PARAMS_SCHEDULING.fields_by_name['unmanaged_pool'].containing_oneof = _REQUEST_PARAMS_SCHEDULING.oneofs_by_name['pool']
_REQUEST_PARAMS_SCHEDULING.oneofs_by_name['pool'].fields.append(
  _REQUEST_PARAMS_SCHEDULING.fields_by_name['quota_account'])
_REQUEST_PARAMS_SCHEDULING.fields_by_name['quota_account'].containing_oneof = _REQUEST_PARAMS_SCHEDULING.oneofs_by_name['pool']
_REQUEST_PARAMS_RETRY.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_METADATA.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_TIME.fields_by_name['maximum_duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
_REQUEST_PARAMS_TIME.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY.containing_type = _REQUEST_PARAMS_DECORATIONS
_REQUEST_PARAMS_DECORATIONS.fields_by_name['autotest_keyvals'].message_type = _REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY
_REQUEST_PARAMS_DECORATIONS.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_LEGACY.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_NOTIFICATION.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS_MIGRATIONS.containing_type = _REQUEST_PARAMS
_REQUEST_PARAMS.fields_by_name['hardware_attributes'].message_type = _REQUEST_PARAMS_HARDWAREATTRIBUTES
_REQUEST_PARAMS.fields_by_name['software_attributes'].message_type = _REQUEST_PARAMS_SOFTWAREATTRIBUTES
_REQUEST_PARAMS.fields_by_name['freeform_attributes'].message_type = _REQUEST_PARAMS_FREEFORMATTRIBUTES
_REQUEST_PARAMS.fields_by_name['software_dependencies'].message_type = _REQUEST_PARAMS_SOFTWAREDEPENDENCY
_REQUEST_PARAMS.fields_by_name['scheduling'].message_type = _REQUEST_PARAMS_SCHEDULING
_REQUEST_PARAMS.fields_by_name['retry'].message_type = _REQUEST_PARAMS_RETRY
_REQUEST_PARAMS.fields_by_name['metadata'].message_type = _REQUEST_PARAMS_METADATA
_REQUEST_PARAMS.fields_by_name['time'].message_type = _REQUEST_PARAMS_TIME
_REQUEST_PARAMS.fields_by_name['decorations'].message_type = _REQUEST_PARAMS_DECORATIONS
_REQUEST_PARAMS.fields_by_name['legacy'].message_type = _REQUEST_PARAMS_LEGACY
_REQUEST_PARAMS.fields_by_name['notification'].message_type = _REQUEST_PARAMS_NOTIFICATION
_REQUEST_PARAMS.fields_by_name['migrations'].message_type = _REQUEST_PARAMS_MIGRATIONS
_REQUEST_PARAMS.containing_type = _REQUEST
_REQUEST_SUITE.containing_type = _REQUEST
_REQUEST_TEST_AUTOTEST.containing_type = _REQUEST_TEST
_REQUEST_TEST.fields_by_name['autotest'].message_type = _REQUEST_TEST_AUTOTEST
_REQUEST_TEST.containing_type = _REQUEST
_REQUEST_TEST.oneofs_by_name['harness'].fields.append(
  _REQUEST_TEST.fields_by_name['autotest'])
_REQUEST_TEST.fields_by_name['autotest'].containing_oneof = _REQUEST_TEST.oneofs_by_name['harness']
_REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY.containing_type = _REQUEST_ENUMERATION_AUTOTESTINVOCATION
_REQUEST_ENUMERATION_AUTOTESTINVOCATION.fields_by_name['test'].message_type = chromite_dot_api_dot_test__metadata__pb2._AUTOTESTTEST
_REQUEST_ENUMERATION_AUTOTESTINVOCATION.fields_by_name['result_keyvals'].message_type = _REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY
_REQUEST_ENUMERATION_AUTOTESTINVOCATION.containing_type = _REQUEST_ENUMERATION
_REQUEST_ENUMERATION.fields_by_name['autotest_invocations'].message_type = _REQUEST_ENUMERATION_AUTOTESTINVOCATION
_REQUEST_ENUMERATION.containing_type = _REQUEST
_REQUEST_TESTPLAN.fields_by_name['suite'].message_type = _REQUEST_SUITE
_REQUEST_TESTPLAN.fields_by_name['test'].message_type = _REQUEST_TEST
_REQUEST_TESTPLAN.fields_by_name['enumeration'].message_type = _REQUEST_ENUMERATION
_REQUEST_TESTPLAN.containing_type = _REQUEST
_REQUEST.fields_by_name['params'].message_type = _REQUEST_PARAMS
_REQUEST.fields_by_name['test_plan'].message_type = _REQUEST_TESTPLAN
_REQUEST.fields_by_name['client_request_id'].message_type = client_dot_request__id__pb2._REQUESTID
_REQUEST.fields_by_name['client_profile_id'].message_type = client_dot_profile__id__pb2._PROFILEID
DESCRIPTOR.message_types_by_name['Request'] = _REQUEST
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

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

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

    HardwareAttributes = _reflection.GeneratedProtocolMessageType('HardwareAttributes', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_HARDWAREATTRIBUTES,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.HardwareAttributes)
      ))
    ,

    SoftwareAttributes = _reflection.GeneratedProtocolMessageType('SoftwareAttributes', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_SOFTWAREATTRIBUTES,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.SoftwareAttributes)
      ))
    ,

    FreeformAttributes = _reflection.GeneratedProtocolMessageType('FreeformAttributes', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_FREEFORMATTRIBUTES,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.FreeformAttributes)
      ))
    ,

    SoftwareDependency = _reflection.GeneratedProtocolMessageType('SoftwareDependency', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_SOFTWAREDEPENDENCY,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.SoftwareDependency)
      ))
    ,

    Scheduling = _reflection.GeneratedProtocolMessageType('Scheduling', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_SCHEDULING,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Scheduling)
      ))
    ,

    Retry = _reflection.GeneratedProtocolMessageType('Retry', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_RETRY,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Retry)
      ))
    ,

    Metadata = _reflection.GeneratedProtocolMessageType('Metadata', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_METADATA,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Metadata)
      ))
    ,

    Time = _reflection.GeneratedProtocolMessageType('Time', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_TIME,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Time)
      ))
    ,

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

      AutotestKeyvalsEntry = _reflection.GeneratedProtocolMessageType('AutotestKeyvalsEntry', (_message.Message,), dict(
        DESCRIPTOR = _REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY,
        __module__ = 'test_platform.request_pb2'
        # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Decorations.AutotestKeyvalsEntry)
        ))
      ,
      DESCRIPTOR = _REQUEST_PARAMS_DECORATIONS,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Decorations)
      ))
    ,

    Legacy = _reflection.GeneratedProtocolMessageType('Legacy', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_LEGACY,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Legacy)
      ))
    ,

    Notification = _reflection.GeneratedProtocolMessageType('Notification', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_NOTIFICATION,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Notification)
      ))
    ,

    Migrations = _reflection.GeneratedProtocolMessageType('Migrations', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_PARAMS_MIGRATIONS,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Params.Migrations)
      ))
    ,
    DESCRIPTOR = _REQUEST_PARAMS,
    __module__ = 'test_platform.request_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.Request.Params)
    ))
  ,

  Suite = _reflection.GeneratedProtocolMessageType('Suite', (_message.Message,), dict(
    DESCRIPTOR = _REQUEST_SUITE,
    __module__ = 'test_platform.request_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.Request.Suite)
    ))
  ,

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

    Autotest = _reflection.GeneratedProtocolMessageType('Autotest', (_message.Message,), dict(
      DESCRIPTOR = _REQUEST_TEST_AUTOTEST,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Test.Autotest)
      ))
    ,
    DESCRIPTOR = _REQUEST_TEST,
    __module__ = 'test_platform.request_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.Request.Test)
    ))
  ,

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

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

      ResultKeyvalsEntry = _reflection.GeneratedProtocolMessageType('ResultKeyvalsEntry', (_message.Message,), dict(
        DESCRIPTOR = _REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY,
        __module__ = 'test_platform.request_pb2'
        # @@protoc_insertion_point(class_scope:test_platform.Request.Enumeration.AutotestInvocation.ResultKeyvalsEntry)
        ))
      ,
      DESCRIPTOR = _REQUEST_ENUMERATION_AUTOTESTINVOCATION,
      __module__ = 'test_platform.request_pb2'
      # @@protoc_insertion_point(class_scope:test_platform.Request.Enumeration.AutotestInvocation)
      ))
    ,
    DESCRIPTOR = _REQUEST_ENUMERATION,
    __module__ = 'test_platform.request_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.Request.Enumeration)
    ))
  ,

  TestPlan = _reflection.GeneratedProtocolMessageType('TestPlan', (_message.Message,), dict(
    DESCRIPTOR = _REQUEST_TESTPLAN,
    __module__ = 'test_platform.request_pb2'
    # @@protoc_insertion_point(class_scope:test_platform.Request.TestPlan)
    ))
  ,
  DESCRIPTOR = _REQUEST,
  __module__ = 'test_platform.request_pb2'
  # @@protoc_insertion_point(class_scope:test_platform.Request)
  ))
_sym_db.RegisterMessage(Request)
_sym_db.RegisterMessage(Request.Params)
_sym_db.RegisterMessage(Request.Params.HardwareAttributes)
_sym_db.RegisterMessage(Request.Params.SoftwareAttributes)
_sym_db.RegisterMessage(Request.Params.FreeformAttributes)
_sym_db.RegisterMessage(Request.Params.SoftwareDependency)
_sym_db.RegisterMessage(Request.Params.Scheduling)
_sym_db.RegisterMessage(Request.Params.Retry)
_sym_db.RegisterMessage(Request.Params.Metadata)
_sym_db.RegisterMessage(Request.Params.Time)
_sym_db.RegisterMessage(Request.Params.Decorations)
_sym_db.RegisterMessage(Request.Params.Decorations.AutotestKeyvalsEntry)
_sym_db.RegisterMessage(Request.Params.Legacy)
_sym_db.RegisterMessage(Request.Params.Notification)
_sym_db.RegisterMessage(Request.Params.Migrations)
_sym_db.RegisterMessage(Request.Suite)
_sym_db.RegisterMessage(Request.Test)
_sym_db.RegisterMessage(Request.Test.Autotest)
_sym_db.RegisterMessage(Request.Enumeration)
_sym_db.RegisterMessage(Request.Enumeration.AutotestInvocation)
_sym_db.RegisterMessage(Request.Enumeration.AutotestInvocation.ResultKeyvalsEntry)
_sym_db.RegisterMessage(Request.TestPlan)


DESCRIPTOR._options = None
_REQUEST_PARAMS_SCHEDULING.fields_by_name['quota_account']._options = None
_REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY._options = None
_REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY._options = None
# @@protoc_insertion_point(module_scope)
