# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: test_platform/request.proto
"""Generated protocol buffer code."""
from chromite.third_party.google.protobuf.internal import builder as _builder
from chromite.third_party.google.protobuf import descriptor as _descriptor
from chromite.third_party.google.protobuf import descriptor_pool as _descriptor_pool
from chromite.third_party.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.chromiumos import common_pb2 as chromiumos_dot_common__pb2
from chromite.api.gen.chromiumos.test.api import test_suite_pb2 as chromiumos_dot_test_dot_api_dot_test__suite__pb2
from chromite.api.gen.chromiumos.test.api import test_execution_metadata_pb2 as chromiumos_dot_test_dot_api_dot_test__execution__metadata__pb2
from chromite.api.gen.chromiumos.test.api import ctp2_pb2 as chromiumos_dot_test_dot_api_dot_ctp2__pb2
from chromite.third_party.google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
from chromite.api.gen.test_platform.execution import param_pb2 as test__platform_dot_execution_dot_param__pb2
from chromite.api.gen.test_platform.common import cft_steps_config_pb2 as test__platform_dot_common_dot_cft__steps__config__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1btest_platform/request.proto\x12\rtest_platform\x1a chromite/api/test_metadata.proto\x1a\x17\x63hromiumos/common.proto\x1a$chromiumos/test/api/test_suite.proto\x1a\x31\x63hromiumos/test/api/test_execution_metadata.proto\x1a\x1e\x63hromiumos/test/api/ctp2.proto\x1a\x1egoogle/protobuf/duration.proto\x1a#test_platform/execution/param.proto\x1a+test_platform/common/cft_steps_config.proto\"\x99#\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\x1a\xcc\x1a\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\x12H\n\x11secondary_devices\x18\x0e \x03(\x0b\x32-.test_platform.Request.Params.SecondaryDevice\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<\n\nmigrations\x18\x0c \x01(\x0b\x32(.test_platform.Request.Params.Migrations\x12\x37\n\x0f\x65xecution_param\x18\r \x01(\x0b\x32\x1e.test_platform.execution.Param\x12T\n\x17test_execution_behavior\x18\x0f \x01(\x0e\x32\x33.test_platform.Request.Params.TestExecutionBehavior\x12\x13\n\x0brun_via_cft\x18\x10 \x01(\x08\x12\x1d\n\x15schedule_via_scheduke\x18\x11 \x01(\x08\x12\x14\n\x0crun_via_trv2\x18\x12 \x01(\x08\x12?\n\x11trv2_steps_config\x18\x13 \x01(\x0b\x32$.test_platform.common.CftStepsConfig\x12\x11\n\tddd_suite\x18\x14 \x01(\x08\x12\x42\n\x07results\x18\x15 \x01(\x0b\x32\x31.test_platform.Request.Params.ResultsUploadConfig\x12\x1e\n\x16translate_trv2_request\x18\x16 \x01(\x08\x12<\n\x14user_defined_filters\x18\x17 \x03(\x0b\x32\x1e.chromiumos.test.api.CTPFilter\x12\x19\n\x11run_ctpv2_with_qs\x18\x18 \x01(\x08\x1a\x42\n\x12HardwareAttributes\x12\r\n\x05model\x18\x01 \x01(\t\x12\x1d\n\x15require_stable_device\x18\x02 \x01(\x08\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\x1a\xac\x02\n\x12SoftwareDependency\x12\x18\n\x0e\x63hromeos_build\x18\x03 \x01(\tH\x00\x12#\n\x19\x63hromeos_build_gcs_bucket\x18\x07 \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\x12\x1e\n\x14\x65\x63_ro_firmware_build\x18\n \x01(\tH\x00\x12\x1e\n\x14\x65\x63_rw_firmware_build\x18\x0b \x01(\tH\x00\x12\x19\n\x0flacros_gcs_path\x18\x06 \x01(\tH\x00\x12\x1f\n\x15\x61ndroid_image_version\x18\x08 \x01(\tH\x00\x12\x1a\n\x10gms_core_package\x18\t \x01(\tH\x00\x42\x05\n\x03\x64\x65p\x1a\x80\x02\n\x0fSecondaryDevice\x12M\n\x13software_attributes\x18\x01 \x01(\x0b\x32\x30.test_platform.Request.Params.SoftwareAttributes\x12M\n\x13hardware_attributes\x18\x02 \x01(\x0b\x32\x30.test_platform.Request.Params.HardwareAttributes\x12O\n\x15software_dependencies\x18\x03 \x03(\x0b\x32\x30.test_platform.Request.Params.SoftwareDependency\x1a\x9e\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\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\x12\x1e\n\x16\x63ontainer_metadata_url\x18\x03 \x01(\t\x1a;\n\x04Time\x12\x33\n\x10maximum_duration\x18\x01 \x01(\x0b\x32\x19.google.protobuf.Duration\x1a\xaa\x02\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\x12J\n\ttest_args\x18\x03 \x03(\x0b\x32\x37.test_platform.Request.Params.Decorations.TestArgsEntry\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\rTestArgsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x1a\x65\n\nMigrationsJ\x04\x08\x01\x10\x02J\x04\x08\x02\x10\x03J\x04\x08\x03\x10\x04R\x0fuse_test_runnerR\x1a\x65nable_synchronous_offloadR\x18notificationless_offload\x1a\x8e\x02\n\x13ResultsUploadConfig\x12[\n\x04mode\x18\x01 \x01(\x0e\x32M.test_platform.Request.Params.ResultsUploadConfig.TestResultsUploadVisibility\"\x99\x01\n\x1bTestResultsUploadVisibility\x12\'\n#TEST_RESULTS_VISIBILITY_UNSPECIFIED\x10\x00\x12\'\n#TEST_RESULTS_VISIBILITY_BOARD_MODEL\x10\x01\x12(\n$TEST_RESULTS_VISIBILITY_CUSTOM_REALM\x10\x02\"Q\n\x15TestExecutionBehavior\x12\x18\n\x14\x42\x45HAVIOR_UNSPECIFIED\x10\x00\x12\x0c\n\x08\x43RITICAL\x10\x01\x12\x10\n\x0cNON_CRITICAL\x10\x02J\x04\x08\x0b\x10\x0cJ\x04\x08\n\x10\x0bR\rnotificationsR\x06legacy\x1a\x14\n\x03Tag\x12\r\n\x05value\x18\x01 \x01(\t\x1a;\n\x05Suite\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x11\n\ttest_args\x18\x04 \x01(\tJ\x04\x08\x02\x10\x03R\x0brun_via_cft\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\x84\x03\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.Enumeration\x12H\n\x0ctag_criteria\x18\x04 \x01(\x0b\x32\x32.chromiumos.test.api.TestSuite.TestCaseTagCriteria\x12\x0c\n\x04seed\x18\x05 \x01(\x03\x12\x41\n\ttest_args\x18\x06 \x01(\x0b\x32..chromiumos.test.api.AutotestExecutionMetadata\x12\x14\n\x0ctotal_shards\x18\x07 \x01(\x03\x12\x14\n\x0cmax_in_shard\x18\x08 \x01(\x03\x12 \n\x18\x65nable_autotest_sharding\x18\t \x01(\x08J\x04\x08\x06\x10\x07J\x04\x08\x07\x10\x08\x42\x39Z7go.chromium.org/chromiumos/infra/proto/go/test_platformb\x06proto3')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'test_platform.request_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'Z7go.chromium.org/chromiumos/infra/proto/go/test_platform'
  _REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY._options = None
  _REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY._serialized_options = b'8\001'
  _REQUEST_PARAMS_DECORATIONS_TESTARGSENTRY._options = None
  _REQUEST_PARAMS_DECORATIONS_TESTARGSENTRY._serialized_options = b'8\001'
  _REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY._options = None
  _REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY._serialized_options = b'8\001'
  _REQUEST._serialized_start=341
  _REQUEST._serialized_end=4846
  _REQUEST_PARAMS._serialized_start=452
  _REQUEST_PARAMS._serialized_end=3856
  _REQUEST_PARAMS_HARDWAREATTRIBUTES._serialized_start=1692
  _REQUEST_PARAMS_HARDWAREATTRIBUTES._serialized_end=1758
  _REQUEST_PARAMS_SOFTWAREATTRIBUTES._serialized_start=1760
  _REQUEST_PARAMS_SOFTWAREATTRIBUTES._serialized_end=1827
  _REQUEST_PARAMS_FREEFORMATTRIBUTES._serialized_start=1829
  _REQUEST_PARAMS_FREEFORMATTRIBUTES._serialized_end=1878
  _REQUEST_PARAMS_SOFTWAREDEPENDENCY._serialized_start=1881
  _REQUEST_PARAMS_SOFTWAREDEPENDENCY._serialized_end=2181
  _REQUEST_PARAMS_SECONDARYDEVICE._serialized_start=2184
  _REQUEST_PARAMS_SECONDARYDEVICE._serialized_end=2440
  _REQUEST_PARAMS_SCHEDULING._serialized_start=2443
  _REQUEST_PARAMS_SCHEDULING._serialized_end=2857
  _REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL._serialized_start=2600
  _REQUEST_PARAMS_SCHEDULING_MANAGEDPOOL._serialized_end=2849
  _REQUEST_PARAMS_RETRY._serialized_start=2859
  _REQUEST_PARAMS_RETRY._serialized_end=2894
  _REQUEST_PARAMS_METADATA._serialized_start=2896
  _REQUEST_PARAMS_METADATA._serialized_end=3000
  _REQUEST_PARAMS_TIME._serialized_start=3002
  _REQUEST_PARAMS_TIME._serialized_end=3061
  _REQUEST_PARAMS_DECORATIONS._serialized_start=3064
  _REQUEST_PARAMS_DECORATIONS._serialized_end=3362
  _REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY._serialized_start=3259
  _REQUEST_PARAMS_DECORATIONS_AUTOTESTKEYVALSENTRY._serialized_end=3313
  _REQUEST_PARAMS_DECORATIONS_TESTARGSENTRY._serialized_start=3315
  _REQUEST_PARAMS_DECORATIONS_TESTARGSENTRY._serialized_end=3362
  _REQUEST_PARAMS_MIGRATIONS._serialized_start=3364
  _REQUEST_PARAMS_MIGRATIONS._serialized_end=3465
  _REQUEST_PARAMS_RESULTSUPLOADCONFIG._serialized_start=3468
  _REQUEST_PARAMS_RESULTSUPLOADCONFIG._serialized_end=3738
  _REQUEST_PARAMS_RESULTSUPLOADCONFIG_TESTRESULTSUPLOADVISIBILITY._serialized_start=3585
  _REQUEST_PARAMS_RESULTSUPLOADCONFIG_TESTRESULTSUPLOADVISIBILITY._serialized_end=3738
  _REQUEST_PARAMS_TESTEXECUTIONBEHAVIOR._serialized_start=3740
  _REQUEST_PARAMS_TESTEXECUTIONBEHAVIOR._serialized_end=3821
  _REQUEST_TAG._serialized_start=3858
  _REQUEST_TAG._serialized_end=3878
  _REQUEST_SUITE._serialized_start=3880
  _REQUEST_SUITE._serialized_end=3939
  _REQUEST_TEST._serialized_start=3942
  _REQUEST_TEST._serialized_end=4084
  _REQUEST_TEST_AUTOTEST._serialized_start=4008
  _REQUEST_TEST_AUTOTEST._serialized_end=4073
  _REQUEST_ENUMERATION._serialized_start=4087
  _REQUEST_ENUMERATION._serialized_end=4443
  _REQUEST_ENUMERATION_AUTOTESTINVOCATION._serialized_start=4188
  _REQUEST_ENUMERATION_AUTOTESTINVOCATION._serialized_end=4443
  _REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY._serialized_start=4391
  _REQUEST_ENUMERATION_AUTOTESTINVOCATION_RESULTKEYVALSENTRY._serialized_end=4443
  _REQUEST_TESTPLAN._serialized_start=4446
  _REQUEST_TESTPLAN._serialized_end=4834
# @@protoc_insertion_point(module_scope)
