# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromiumos/builder_config.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.chromiumos import common_pb2 as chromiumos_dot_common__pb2
from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2
from google.protobuf import wrappers_pb2 as google_dot_protobuf_dot_wrappers__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='chromiumos/builder_config.proto',
  package='chromiumos',
  syntax='proto3',
  serialized_options=_b('Z4go.chromium.org/chromiumos/infra/proto/go/chromiumos'),
  serialized_pb=_b('\n\x1f\x63hromiumos/builder_config.proto\x12\nchromiumos\x1a\x17\x63hromiumos/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a\x1egoogle/protobuf/wrappers.proto\"\xc8\'\n\rBuilderConfig\x12(\n\x02id\x18\x01 \x01(\x0b\x32\x1c.chromiumos.BuilderConfig.Id\x12\x32\n\x07general\x18\x02 \x01(\x0b\x32!.chromiumos.BuilderConfig.General\x12<\n\x0corchestrator\x18\x03 \x01(\x0b\x32&.chromiumos.BuilderConfig.Orchestrator\x12\x36\n\tartifacts\x18\x04 \x01(\x0b\x32#.chromiumos.BuilderConfig.Artifacts\x12\x30\n\x06\x63hrome\x18\x05 \x01(\x0b\x32 .chromiumos.BuilderConfig.Chrome\x12.\n\x05\x62uild\x18\x06 \x01(\x0b\x32\x1f.chromiumos.BuilderConfig.Build\x12\x37\n\nunit_tests\x18\x07 \x01(\x0b\x32#.chromiumos.BuilderConfig.UnitTests\x1a\xb8\x01\n\x02Id\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x0e\n\x06\x62ranch\x18\x02 \x01(\t\x12/\n\x04type\x18\x03 \x01(\x0e\x32!.chromiumos.BuilderConfig.Id.Type\"c\n\x04Type\x12\x14\n\x10TYPE_UNSPECIFIED\x10\x00\x12\x06\n\x02\x43Q\x10\x01\x12\x0e\n\nPOSTSUBMIT\x10\x02\x12\r\n\tTOOLCHAIN\x10\x03\x12\x11\n\rINFORMATIONAL\x10\x04\x12\x0b\n\x07RELEASE\x10\x05\x1a\xa3\x05\n\x07General\x12,\n\x08\x63ritical\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.BoolValue\x12\x42\n\x0b\x65nvironment\x18\x02 \x01(\x0e\x32-.chromiumos.BuilderConfig.General.Environment\x12;\n\x08run_when\x18\x03 \x01(\x0b\x32).chromiumos.BuilderConfig.General.RunWhen\x12\x31\n\rbroken_before\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x19\n\x11sdk_cache_version\x18\x05 \x01(\x05\x12\x10\n\x08unibuild\x18\x06 \x01(\x08\x12<\n\x08manifest\x18\x07 \x01(\x0e\x32*.chromiumos.BuilderConfig.General.Manifest\x1a\xc2\x01\n\x07RunWhen\x12<\n\x04mode\x18\x01 \x01(\x0e\x32..chromiumos.BuilderConfig.General.RunWhen.Mode\x12\x15\n\rfile_patterns\x18\x02 \x03(\t\"b\n\x04Mode\x12\x14\n\x10MODE_UNSPECIFIED\x10\x00\x12\x0e\n\nALWAYS_RUN\x10\x01\x12\x1a\n\x16ONLY_RUN_ON_FILE_MATCH\x10\x02\x12\x18\n\x14NO_RUN_ON_FILE_MATCH\x10\x03\"G\n\x0b\x45nvironment\x12\x1b\n\x17\x45NVIRONMENT_UNSPECIFIED\x10\x00\x12\x0e\n\nPRODUCTION\x10\x01\x12\x0b\n\x07STAGING\x10\x02\"=\n\x08Manifest\x12\x18\n\x14MANIFEST_UNSPECIFIED\x10\x00\x12\n\n\x06PUBLIC\x10\x01\x12\x0b\n\x07PRIVATE\x10\x02\x1a\xc2\x04\n\x0cOrchestrator\x12\x45\n\x0b\x63hild_specs\x18\x05 \x03(\x0b\x32\x30.chromiumos.BuilderConfig.Orchestrator.ChildSpec\x12\x31\n\x0egitiles_commit\x18\x02 \x01(\x0b\x32\x19.chromiumos.GitilesCommit\x12\x30\n\x0egerrit_changes\x18\x03 \x03(\x0b\x32\x18.chromiumos.GerritChange\x12[\n\x16\x66ollow_on_orchestrator\x18\x04 \x01(\x0b\x32;.chromiumos.BuilderConfig.Orchestrator.FollowOnOrchestrator\x1a\xe2\x01\n\tChildSpec\x12\x0c\n\x04name\x18\x01 \x01(\t\x12Z\n\x10\x63ollect_handling\x18\x02 \x01(\x0e\x32@.chromiumos.BuilderConfig.Orchestrator.ChildSpec.CollectHandling\"k\n\x0f\x43ollectHandling\x12 \n\x1c\x43OLLECT_HANDLING_UNSPECIFIED\x10\x00\x12\x0b\n\x07\x43OLLECT\x10\x01\x12\x0e\n\nNO_COLLECT\x10\x02\x12\x19\n\x15\x43OLLECT_AFTER_HW_TEST\x10\x03\x1a>\n\x14\x46ollowOnOrchestrator\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10\x61wait_completion\x18\x02 \x01(\x08J\x04\x08\x01\x10\x02\x1a\xab\r\n\tArtifacts\x12@\n\tprebuilts\x18\x01 \x01(\x0e\x32-.chromiumos.BuilderConfig.Artifacts.Prebuilts\x12I\n\x0e\x61rtifact_types\x18\x02 \x03(\x0e\x32\x31.chromiumos.BuilderConfig.Artifacts.ArtifactTypes\x12\x1b\n\x13prebuilts_gs_bucket\x18\x03 \x01(\t\x12\x1b\n\x13\x61rtifacts_gs_bucket\x18\x04 \x01(\t\x12J\n\x11publish_artifacts\x18\x05 \x03(\x0b\x32/.chromiumos.BuilderConfig.Artifacts.PublishInfo\x12N\n\x0finput_artifacts\x18\x06 \x03(\x0b\x32\x35.chromiumos.BuilderConfig.Artifacts.InputArtifactInfo\x12>\n\x15\x61rtifact_profile_info\x18\x07 \x01(\x0b\x32\x1f.chromiumos.ArtifactProfileInfo\x12\x36\n\x0e\x61rtifacts_info\x18\x08 \x01(\x0b\x32\x1e.chromiumos.ArtifactsByService\x1a\x8c\x01\n\x0bPublishInfo\x12H\n\rpublish_types\x18\x02 \x03(\x0e\x32\x31.chromiumos.BuilderConfig.Artifacts.ArtifactTypes\x12\x1b\n\x13publish_gs_location\x18\x03 \x01(\t\x12\x10\n\x08\x61\x63l_name\x18\x04 \x01(\tJ\x04\x08\x01\x10\x02\x1a\x88\x01\n\x11InputArtifactInfo\x12N\n\x13input_artifact_type\x18\x01 \x01(\x0e\x32\x31.chromiumos.BuilderConfig.Artifacts.ArtifactTypes\x12#\n\x1binput_artifact_gs_locations\x18\x02 \x03(\t\"I\n\tPrebuilts\x12\x19\n\x15PREBUILTS_UNSPECIFIED\x10\x00\x12\n\n\x06PUBLIC\x10\x01\x12\x0b\n\x07PRIVATE\x10\x02\x12\x08\n\x04NONE\x10\x03\"\xdd\x06\n\rArtifactTypes\x12\x1e\n\x1a\x41RTIFACT_TYPES_UNSPECIFIED\x10\x00\x12\r\n\tIMAGE_ZIP\x10\x01\x12\x17\n\x13TEST_UPDATE_PAYLOAD\x10\x02\x12\x12\n\x0e\x41UTOTEST_FILES\x10\x03\x12\x0e\n\nTAST_FILES\x10\x04\x12\x17\n\x13PINNED_GUEST_IMAGES\x10\x05\x12\x0c\n\x08\x46IRMWARE\x10\x06\x12\x0f\n\x0b\x45\x42UILD_LOGS\x10\x07\x12\x13\n\x0f\x43HROMEOS_CONFIG\x10\x08\x12\x0e\n\nCPE_REPORT\x10\t\x12\x12\n\x0eIMAGE_ARCHIVES\x10\n\x12$\n UNVERIFIED_CHROME_LLVM_ORDERFILE\x10\x0b\x12\"\n\x1eVERIFIED_CHROME_LLVM_ORDERFILE\x10\x0c\x12\x1e\n\x1a\x43HROME_CLANG_WARNINGS_FILE\x10\r\x12\x1c\n\x18UNVERIFIED_LLVM_PGO_FILE\x10\x0e\x12)\n%UNVERIFIED_CHROME_BENCHMARK_AFDO_FILE\x10\x0f\x12\'\n#VERIFIED_CHROME_BENCHMARK_AFDO_FILE\x10\x10\x12!\n\x1dVERIFIED_KERNEL_CWP_AFDO_FILE\x10\x11\x12#\n\x1fUNVERIFIED_KERNEL_CWP_AFDO_FILE\x10\x12\x12#\n\x1fUNVERIFIED_CHROME_CWP_AFDO_FILE\x10\x13\x12!\n\x1dVERIFIED_CHROME_CWP_AFDO_FILE\x10\x14\x12\x1e\n\x1aVERIFIED_RELEASE_AFDO_FILE\x10\x15\x12)\n%UNVERIFIED_CHROME_BENCHMARK_PERF_FILE\x10\x16\x12\x17\n\x13\x43HROME_DEBUG_BINARY\x10\x17\x12\x1a\n\x16TOOLCHAIN_WARNING_LOGS\x10\x18\x12)\n%CHROME_AFDO_PROFILE_FOR_ANDROID_LINUX\x10\x19\x12\x19\n\x15\x43LANG_CRASH_DIAGNOSES\x10\x1a\x12\x13\n\x0f\x46PMCU_UNITTESTS\x10\x1b\x12\x0f\n\x0bGCE_TARBALL\x10\x1c\x12\x17\n\x13\x43OMPILER_RUSAGE_LOG\x10\x1d\x1a\x1a\n\x06\x43hrome\x12\x10\n\x08internal\x18\x01 \x01(\x08\x1a\xae\x08\n\x05\x42uild\x12&\n\tuse_flags\x18\x01 \x03(\x0b\x32\x13.chromiumos.UseFlag\x12G\n\x0fportage_profile\x18\x02 \x01(\x0b\x32..chromiumos.BuilderConfig.Build.PortageProfile\x12\x1c\n\x14\x61pply_gerrit_changes\x18\x06 \x01(\x08\x12J\n\x11prepare_for_build\x18\x11 \x01(\x0b\x32/.chromiumos.BuilderConfig.Build.PrepareForBuild\x12=\n\nsdk_update\x18\x0c \x01(\x0b\x32).chromiumos.BuilderConfig.Build.SdkUpdate\x12K\n\x11install_toolchain\x18\r \x01(\x0b\x32\x30.chromiumos.BuilderConfig.Build.InstallToolchain\x12I\n\x10install_packages\x18\x10 \x01(\x0b\x32/.chromiumos.BuilderConfig.Build.InstallPackages\x12\x41\n\x0c\x62uild_images\x18\x0f \x01(\x0b\x32+.chromiumos.BuilderConfig.Build.BuildImages\x1a!\n\x0ePortageProfile\x12\x0f\n\x07profile\x18\x01 \x01(\t\x1aU\n\x0fPrepareForBuild\x12\x42\n\x0f\x61\x64\x64itional_args\x18\x01 \x01(\x0b\x32).chromiumos.PrepareForBuildAdditionalArgs\x1a#\n\tSdkUpdate\x12\x16\n\x0e\x63ompile_source\x18\x01 \x01(\x08\x1a*\n\x10InstallToolchain\x12\x16\n\x0e\x63ompile_source\x18\x01 \x01(\x08\x1a\xdd\x01\n\x0fInstallPackages\x12\x16\n\x0e\x63ompile_source\x18\x01 \x01(\x08\x12\x33\n\x08run_spec\x18\x02 \x01(\x0e\x32!.chromiumos.BuilderConfig.RunSpec\x12)\n\x08packages\x18\x03 \x03(\x0b\x32\x17.chromiumos.PackageInfo\x12\x14\n\x0c\x64isable_goma\x18\x04 \x01(\x08\x12<\n\x0c\x64\x65pendencies\x18\x05 \x01(\x0e\x32&.chromiumos.BuilderConfig.Dependencies\x1as\n\x0b\x42uildImages\x12*\n\x0bimage_types\x18\x01 \x03(\x0e\x32\x15.chromiumos.ImageType\x12#\n\x1b\x64isable_rootfs_verification\x18\x02 \x01(\x08\x12\x13\n\x0b\x64isk_layout\x18\x03 \x01(\tJ\x04\x08\x03\x10\x06J\x04\x08\x07\x10\x0cJ\x04\x08\x0e\x10\x0f\x1a\xfc\x01\n\tUnitTests\x12\x32\n\x11package_blacklist\x18\x04 \x03(\x0b\x32\x17.chromiumos.PackageInfo\x12;\n\x10\x65\x62uilds_run_spec\x18\x05 \x01(\x0e\x32!.chromiumos.BuilderConfig.RunSpec\x12\x15\n\rempty_sysroot\x18\x06 \x01(\x08\x12)\n\x08packages\x18\x07 \x03(\x0b\x32\x17.chromiumos.PackageInfo\x12<\n\x0c\x64\x65pendencies\x18\x08 \x01(\x0e\x32&.chromiumos.BuilderConfig.Dependencies\"F\n\x07RunSpec\x12\x18\n\x14RUN_SPEC_UNSPECIFIED\x10\x00\x12\n\n\x06NO_RUN\x10\x01\x12\x07\n\x03RUN\x10\x02\x12\x0c\n\x08RUN_EXIT\x10\x03\"`\n\x0c\x44\x65pendencies\x12\x1c\n\x18\x44\x45PENDENCIES_UNSPECIFIED\x10\x00\x12\x14\n\x10\x41LL_DEPENDENCIES\x10\x01\x12\x1c\n\x18\x43L_AFFECTED_DEPENDENCIES\x10\x02\"D\n\x0e\x42uilderConfigs\x12\x32\n\x0f\x62uilder_configs\x18\x01 \x03(\x0b\x32\x19.chromiumos.BuilderConfigB6Z4go.chromium.org/chromiumos/infra/proto/go/chromiumosb\x06proto3')
  ,
  dependencies=[chromiumos_dot_common__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,google_dot_protobuf_dot_wrappers__pb2.DESCRIPTOR,])



_BUILDERCONFIG_ID_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='chromiumos.BuilderConfig.Id.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='TYPE_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CQ', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='POSTSUBMIT', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TOOLCHAIN', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='INFORMATIONAL', index=4, number=4,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RELEASE', index=5, number=5,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=608,
  serialized_end=707,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_ID_TYPE)

_BUILDERCONFIG_GENERAL_RUNWHEN_MODE = _descriptor.EnumDescriptor(
  name='Mode',
  full_name='chromiumos.BuilderConfig.General.RunWhen.Mode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='MODE_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ALWAYS_RUN', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ONLY_RUN_ON_FILE_MATCH', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NO_RUN_ON_FILE_MATCH', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1151,
  serialized_end=1249,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_GENERAL_RUNWHEN_MODE)

_BUILDERCONFIG_GENERAL_ENVIRONMENT = _descriptor.EnumDescriptor(
  name='Environment',
  full_name='chromiumos.BuilderConfig.General.Environment',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ENVIRONMENT_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PRODUCTION', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='STAGING', index=2, number=2,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1251,
  serialized_end=1322,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_GENERAL_ENVIRONMENT)

_BUILDERCONFIG_GENERAL_MANIFEST = _descriptor.EnumDescriptor(
  name='Manifest',
  full_name='chromiumos.BuilderConfig.General.Manifest',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='MANIFEST_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PUBLIC', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PRIVATE', index=2, number=2,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1324,
  serialized_end=1385,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_GENERAL_MANIFEST)

_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC_COLLECTHANDLING = _descriptor.EnumDescriptor(
  name='CollectHandling',
  full_name='chromiumos.BuilderConfig.Orchestrator.ChildSpec.CollectHandling',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='COLLECT_HANDLING_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COLLECT', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NO_COLLECT', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COLLECT_AFTER_HW_TEST', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1789,
  serialized_end=1896,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC_COLLECTHANDLING)

_BUILDERCONFIG_ARTIFACTS_PREBUILTS = _descriptor.EnumDescriptor(
  name='Prebuilts',
  full_name='chromiumos.BuilderConfig.Artifacts.Prebuilts',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='PREBUILTS_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PUBLIC', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PRIVATE', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NONE', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2739,
  serialized_end=2812,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_ARTIFACTS_PREBUILTS)

_BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES = _descriptor.EnumDescriptor(
  name='ArtifactTypes',
  full_name='chromiumos.BuilderConfig.Artifacts.ArtifactTypes',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ARTIFACT_TYPES_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IMAGE_ZIP', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TEST_UPDATE_PAYLOAD', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='AUTOTEST_FILES', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TAST_FILES', index=4, number=4,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PINNED_GUEST_IMAGES', index=5, number=5,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FIRMWARE', index=6, number=6,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EBUILD_LOGS', index=7, number=7,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHROMEOS_CONFIG', index=8, number=8,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CPE_REPORT', index=9, number=9,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IMAGE_ARCHIVES', index=10, number=10,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNVERIFIED_CHROME_LLVM_ORDERFILE', index=11, number=11,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_CHROME_LLVM_ORDERFILE', index=12, number=12,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHROME_CLANG_WARNINGS_FILE', index=13, number=13,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNVERIFIED_LLVM_PGO_FILE', index=14, number=14,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNVERIFIED_CHROME_BENCHMARK_AFDO_FILE', index=15, number=15,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_CHROME_BENCHMARK_AFDO_FILE', index=16, number=16,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_KERNEL_CWP_AFDO_FILE', index=17, number=17,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNVERIFIED_KERNEL_CWP_AFDO_FILE', index=18, number=18,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNVERIFIED_CHROME_CWP_AFDO_FILE', index=19, number=19,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_CHROME_CWP_AFDO_FILE', index=20, number=20,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_RELEASE_AFDO_FILE', index=21, number=21,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNVERIFIED_CHROME_BENCHMARK_PERF_FILE', index=22, number=22,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHROME_DEBUG_BINARY', index=23, number=23,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='TOOLCHAIN_WARNING_LOGS', index=24, number=24,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHROME_AFDO_PROFILE_FOR_ANDROID_LINUX', index=25, number=25,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CLANG_CRASH_DIAGNOSES', index=26, number=26,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FPMCU_UNITTESTS', index=27, number=27,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GCE_TARBALL', index=28, number=28,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COMPILER_RUSAGE_LOG', index=29, number=29,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2815,
  serialized_end=3676,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES)

_BUILDERCONFIG_RUNSPEC = _descriptor.EnumDescriptor(
  name='RunSpec',
  full_name='chromiumos.BuilderConfig.RunSpec',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='RUN_SPEC_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NO_RUN', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RUN', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='RUN_EXIT', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=5034,
  serialized_end=5104,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_RUNSPEC)

_BUILDERCONFIG_DEPENDENCIES = _descriptor.EnumDescriptor(
  name='Dependencies',
  full_name='chromiumos.BuilderConfig.Dependencies',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='DEPENDENCIES_UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ALL_DEPENDENCIES', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CL_AFFECTED_DEPENDENCIES', index=2, number=2,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=5106,
  serialized_end=5202,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_DEPENDENCIES)


_BUILDERCONFIG_ID = _descriptor.Descriptor(
  name='Id',
  full_name='chromiumos.BuilderConfig.Id',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='chromiumos.BuilderConfig.Id.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='branch', full_name='chromiumos.BuilderConfig.Id.branch', 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='type', full_name='chromiumos.BuilderConfig.Id.type', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BUILDERCONFIG_ID_TYPE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=523,
  serialized_end=707,
)

_BUILDERCONFIG_GENERAL_RUNWHEN = _descriptor.Descriptor(
  name='RunWhen',
  full_name='chromiumos.BuilderConfig.General.RunWhen',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='mode', full_name='chromiumos.BuilderConfig.General.RunWhen.mode', 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='file_patterns', full_name='chromiumos.BuilderConfig.General.RunWhen.file_patterns', 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=[],
  enum_types=[
    _BUILDERCONFIG_GENERAL_RUNWHEN_MODE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1055,
  serialized_end=1249,
)

_BUILDERCONFIG_GENERAL = _descriptor.Descriptor(
  name='General',
  full_name='chromiumos.BuilderConfig.General',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='critical', full_name='chromiumos.BuilderConfig.General.critical', 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='environment', full_name='chromiumos.BuilderConfig.General.environment', 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='run_when', full_name='chromiumos.BuilderConfig.General.run_when', 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='broken_before', full_name='chromiumos.BuilderConfig.General.broken_before', 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='sdk_cache_version', full_name='chromiumos.BuilderConfig.General.sdk_cache_version', index=4,
      number=5, 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),
    _descriptor.FieldDescriptor(
      name='unibuild', full_name='chromiumos.BuilderConfig.General.unibuild', index=5,
      number=6, 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='manifest', full_name='chromiumos.BuilderConfig.General.manifest', index=6,
      number=7, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_BUILDERCONFIG_GENERAL_RUNWHEN, ],
  enum_types=[
    _BUILDERCONFIG_GENERAL_ENVIRONMENT,
    _BUILDERCONFIG_GENERAL_MANIFEST,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=710,
  serialized_end=1385,
)

_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC = _descriptor.Descriptor(
  name='ChildSpec',
  full_name='chromiumos.BuilderConfig.Orchestrator.ChildSpec',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='chromiumos.BuilderConfig.Orchestrator.ChildSpec.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='collect_handling', full_name='chromiumos.BuilderConfig.Orchestrator.ChildSpec.collect_handling', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC_COLLECTHANDLING,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1670,
  serialized_end=1896,
)

_BUILDERCONFIG_ORCHESTRATOR_FOLLOWONORCHESTRATOR = _descriptor.Descriptor(
  name='FollowOnOrchestrator',
  full_name='chromiumos.BuilderConfig.Orchestrator.FollowOnOrchestrator',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='chromiumos.BuilderConfig.Orchestrator.FollowOnOrchestrator.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='await_completion', full_name='chromiumos.BuilderConfig.Orchestrator.FollowOnOrchestrator.await_completion', 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=1898,
  serialized_end=1960,
)

_BUILDERCONFIG_ORCHESTRATOR = _descriptor.Descriptor(
  name='Orchestrator',
  full_name='chromiumos.BuilderConfig.Orchestrator',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='child_specs', full_name='chromiumos.BuilderConfig.Orchestrator.child_specs', index=0,
      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='gitiles_commit', full_name='chromiumos.BuilderConfig.Orchestrator.gitiles_commit', 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='gerrit_changes', full_name='chromiumos.BuilderConfig.Orchestrator.gerrit_changes', 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='follow_on_orchestrator', full_name='chromiumos.BuilderConfig.Orchestrator.follow_on_orchestrator', 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=[_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC, _BUILDERCONFIG_ORCHESTRATOR_FOLLOWONORCHESTRATOR, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1388,
  serialized_end=1966,
)

_BUILDERCONFIG_ARTIFACTS_PUBLISHINFO = _descriptor.Descriptor(
  name='PublishInfo',
  full_name='chromiumos.BuilderConfig.Artifacts.PublishInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='publish_types', full_name='chromiumos.BuilderConfig.Artifacts.PublishInfo.publish_types', index=0,
      number=2, type=14, cpp_type=8, 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='publish_gs_location', full_name='chromiumos.BuilderConfig.Artifacts.PublishInfo.publish_gs_location', index=1,
      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='acl_name', full_name='chromiumos.BuilderConfig.Artifacts.PublishInfo.acl_name', index=2,
      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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2458,
  serialized_end=2598,
)

_BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO = _descriptor.Descriptor(
  name='InputArtifactInfo',
  full_name='chromiumos.BuilderConfig.Artifacts.InputArtifactInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='input_artifact_type', full_name='chromiumos.BuilderConfig.Artifacts.InputArtifactInfo.input_artifact_type', 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='input_artifact_gs_locations', full_name='chromiumos.BuilderConfig.Artifacts.InputArtifactInfo.input_artifact_gs_locations', 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=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2601,
  serialized_end=2737,
)

_BUILDERCONFIG_ARTIFACTS = _descriptor.Descriptor(
  name='Artifacts',
  full_name='chromiumos.BuilderConfig.Artifacts',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='prebuilts', full_name='chromiumos.BuilderConfig.Artifacts.prebuilts', 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='artifact_types', full_name='chromiumos.BuilderConfig.Artifacts.artifact_types', index=1,
      number=2, type=14, cpp_type=8, 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='prebuilts_gs_bucket', full_name='chromiumos.BuilderConfig.Artifacts.prebuilts_gs_bucket', 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='artifacts_gs_bucket', full_name='chromiumos.BuilderConfig.Artifacts.artifacts_gs_bucket', 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='publish_artifacts', full_name='chromiumos.BuilderConfig.Artifacts.publish_artifacts', 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='input_artifacts', full_name='chromiumos.BuilderConfig.Artifacts.input_artifacts', 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='artifact_profile_info', full_name='chromiumos.BuilderConfig.Artifacts.artifact_profile_info', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='artifacts_info', full_name='chromiumos.BuilderConfig.Artifacts.artifacts_info', index=7,
      number=8, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_BUILDERCONFIG_ARTIFACTS_PUBLISHINFO, _BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO, ],
  enum_types=[
    _BUILDERCONFIG_ARTIFACTS_PREBUILTS,
    _BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1969,
  serialized_end=3676,
)

_BUILDERCONFIG_CHROME = _descriptor.Descriptor(
  name='Chrome',
  full_name='chromiumos.BuilderConfig.Chrome',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='internal', full_name='chromiumos.BuilderConfig.Chrome.internal', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3678,
  serialized_end=3704,
)

_BUILDERCONFIG_BUILD_PORTAGEPROFILE = _descriptor.Descriptor(
  name='PortageProfile',
  full_name='chromiumos.BuilderConfig.Build.PortageProfile',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='profile', full_name='chromiumos.BuilderConfig.Build.PortageProfile.profile', 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=4217,
  serialized_end=4250,
)

_BUILDERCONFIG_BUILD_PREPAREFORBUILD = _descriptor.Descriptor(
  name='PrepareForBuild',
  full_name='chromiumos.BuilderConfig.Build.PrepareForBuild',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='additional_args', full_name='chromiumos.BuilderConfig.Build.PrepareForBuild.additional_args', 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=4252,
  serialized_end=4337,
)

_BUILDERCONFIG_BUILD_SDKUPDATE = _descriptor.Descriptor(
  name='SdkUpdate',
  full_name='chromiumos.BuilderConfig.Build.SdkUpdate',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='compile_source', full_name='chromiumos.BuilderConfig.Build.SdkUpdate.compile_source', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4339,
  serialized_end=4374,
)

_BUILDERCONFIG_BUILD_INSTALLTOOLCHAIN = _descriptor.Descriptor(
  name='InstallToolchain',
  full_name='chromiumos.BuilderConfig.Build.InstallToolchain',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='compile_source', full_name='chromiumos.BuilderConfig.Build.InstallToolchain.compile_source', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4376,
  serialized_end=4418,
)

_BUILDERCONFIG_BUILD_INSTALLPACKAGES = _descriptor.Descriptor(
  name='InstallPackages',
  full_name='chromiumos.BuilderConfig.Build.InstallPackages',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='compile_source', full_name='chromiumos.BuilderConfig.Build.InstallPackages.compile_source', 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='run_spec', full_name='chromiumos.BuilderConfig.Build.InstallPackages.run_spec', 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='packages', full_name='chromiumos.BuilderConfig.Build.InstallPackages.packages', 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='disable_goma', full_name='chromiumos.BuilderConfig.Build.InstallPackages.disable_goma', index=3,
      number=4, 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='dependencies', full_name='chromiumos.BuilderConfig.Build.InstallPackages.dependencies', index=4,
      number=5, 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=4421,
  serialized_end=4642,
)

_BUILDERCONFIG_BUILD_BUILDIMAGES = _descriptor.Descriptor(
  name='BuildImages',
  full_name='chromiumos.BuilderConfig.Build.BuildImages',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='image_types', full_name='chromiumos.BuilderConfig.Build.BuildImages.image_types', index=0,
      number=1, type=14, cpp_type=8, 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='disable_rootfs_verification', full_name='chromiumos.BuilderConfig.Build.BuildImages.disable_rootfs_verification', 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),
    _descriptor.FieldDescriptor(
      name='disk_layout', full_name='chromiumos.BuilderConfig.Build.BuildImages.disk_layout', 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=4644,
  serialized_end=4759,
)

_BUILDERCONFIG_BUILD = _descriptor.Descriptor(
  name='Build',
  full_name='chromiumos.BuilderConfig.Build',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='use_flags', full_name='chromiumos.BuilderConfig.Build.use_flags', 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='portage_profile', full_name='chromiumos.BuilderConfig.Build.portage_profile', 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='apply_gerrit_changes', full_name='chromiumos.BuilderConfig.Build.apply_gerrit_changes', index=2,
      number=6, 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='prepare_for_build', full_name='chromiumos.BuilderConfig.Build.prepare_for_build', index=3,
      number=17, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='sdk_update', full_name='chromiumos.BuilderConfig.Build.sdk_update', index=4,
      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),
    _descriptor.FieldDescriptor(
      name='install_toolchain', full_name='chromiumos.BuilderConfig.Build.install_toolchain', index=5,
      number=13, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='install_packages', full_name='chromiumos.BuilderConfig.Build.install_packages', index=6,
      number=16, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='build_images', full_name='chromiumos.BuilderConfig.Build.build_images', index=7,
      number=15, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_BUILDERCONFIG_BUILD_PORTAGEPROFILE, _BUILDERCONFIG_BUILD_PREPAREFORBUILD, _BUILDERCONFIG_BUILD_SDKUPDATE, _BUILDERCONFIG_BUILD_INSTALLTOOLCHAIN, _BUILDERCONFIG_BUILD_INSTALLPACKAGES, _BUILDERCONFIG_BUILD_BUILDIMAGES, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3707,
  serialized_end=4777,
)

_BUILDERCONFIG_UNITTESTS = _descriptor.Descriptor(
  name='UnitTests',
  full_name='chromiumos.BuilderConfig.UnitTests',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='package_blacklist', full_name='chromiumos.BuilderConfig.UnitTests.package_blacklist', index=0,
      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='ebuilds_run_spec', full_name='chromiumos.BuilderConfig.UnitTests.ebuilds_run_spec', index=1,
      number=5, 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='empty_sysroot', full_name='chromiumos.BuilderConfig.UnitTests.empty_sysroot', index=2,
      number=6, 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='packages', full_name='chromiumos.BuilderConfig.UnitTests.packages', index=3,
      number=7, 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='dependencies', full_name='chromiumos.BuilderConfig.UnitTests.dependencies', index=4,
      number=8, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4780,
  serialized_end=5032,
)

_BUILDERCONFIG = _descriptor.Descriptor(
  name='BuilderConfig',
  full_name='chromiumos.BuilderConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='id', full_name='chromiumos.BuilderConfig.id', 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='general', full_name='chromiumos.BuilderConfig.general', 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='orchestrator', full_name='chromiumos.BuilderConfig.orchestrator', 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='artifacts', full_name='chromiumos.BuilderConfig.artifacts', 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='chrome', full_name='chromiumos.BuilderConfig.chrome', 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),
    _descriptor.FieldDescriptor(
      name='build', full_name='chromiumos.BuilderConfig.build', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='unit_tests', full_name='chromiumos.BuilderConfig.unit_tests', index=6,
      number=7, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[_BUILDERCONFIG_ID, _BUILDERCONFIG_GENERAL, _BUILDERCONFIG_ORCHESTRATOR, _BUILDERCONFIG_ARTIFACTS, _BUILDERCONFIG_CHROME, _BUILDERCONFIG_BUILD, _BUILDERCONFIG_UNITTESTS, ],
  enum_types=[
    _BUILDERCONFIG_RUNSPEC,
    _BUILDERCONFIG_DEPENDENCIES,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=138,
  serialized_end=5202,
)


_BUILDERCONFIGS = _descriptor.Descriptor(
  name='BuilderConfigs',
  full_name='chromiumos.BuilderConfigs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='builder_configs', full_name='chromiumos.BuilderConfigs.builder_configs', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5204,
  serialized_end=5272,
)

_BUILDERCONFIG_ID.fields_by_name['type'].enum_type = _BUILDERCONFIG_ID_TYPE
_BUILDERCONFIG_ID.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_ID_TYPE.containing_type = _BUILDERCONFIG_ID
_BUILDERCONFIG_GENERAL_RUNWHEN.fields_by_name['mode'].enum_type = _BUILDERCONFIG_GENERAL_RUNWHEN_MODE
_BUILDERCONFIG_GENERAL_RUNWHEN.containing_type = _BUILDERCONFIG_GENERAL
_BUILDERCONFIG_GENERAL_RUNWHEN_MODE.containing_type = _BUILDERCONFIG_GENERAL_RUNWHEN
_BUILDERCONFIG_GENERAL.fields_by_name['critical'].message_type = google_dot_protobuf_dot_wrappers__pb2._BOOLVALUE
_BUILDERCONFIG_GENERAL.fields_by_name['environment'].enum_type = _BUILDERCONFIG_GENERAL_ENVIRONMENT
_BUILDERCONFIG_GENERAL.fields_by_name['run_when'].message_type = _BUILDERCONFIG_GENERAL_RUNWHEN
_BUILDERCONFIG_GENERAL.fields_by_name['broken_before'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILDERCONFIG_GENERAL.fields_by_name['manifest'].enum_type = _BUILDERCONFIG_GENERAL_MANIFEST
_BUILDERCONFIG_GENERAL.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_GENERAL_ENVIRONMENT.containing_type = _BUILDERCONFIG_GENERAL
_BUILDERCONFIG_GENERAL_MANIFEST.containing_type = _BUILDERCONFIG_GENERAL
_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC.fields_by_name['collect_handling'].enum_type = _BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC_COLLECTHANDLING
_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC.containing_type = _BUILDERCONFIG_ORCHESTRATOR
_BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC_COLLECTHANDLING.containing_type = _BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC
_BUILDERCONFIG_ORCHESTRATOR_FOLLOWONORCHESTRATOR.containing_type = _BUILDERCONFIG_ORCHESTRATOR
_BUILDERCONFIG_ORCHESTRATOR.fields_by_name['child_specs'].message_type = _BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC
_BUILDERCONFIG_ORCHESTRATOR.fields_by_name['gitiles_commit'].message_type = chromiumos_dot_common__pb2._GITILESCOMMIT
_BUILDERCONFIG_ORCHESTRATOR.fields_by_name['gerrit_changes'].message_type = chromiumos_dot_common__pb2._GERRITCHANGE
_BUILDERCONFIG_ORCHESTRATOR.fields_by_name['follow_on_orchestrator'].message_type = _BUILDERCONFIG_ORCHESTRATOR_FOLLOWONORCHESTRATOR
_BUILDERCONFIG_ORCHESTRATOR.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_ARTIFACTS_PUBLISHINFO.fields_by_name['publish_types'].enum_type = _BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES
_BUILDERCONFIG_ARTIFACTS_PUBLISHINFO.containing_type = _BUILDERCONFIG_ARTIFACTS
_BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO.fields_by_name['input_artifact_type'].enum_type = _BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES
_BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO.containing_type = _BUILDERCONFIG_ARTIFACTS
_BUILDERCONFIG_ARTIFACTS.fields_by_name['prebuilts'].enum_type = _BUILDERCONFIG_ARTIFACTS_PREBUILTS
_BUILDERCONFIG_ARTIFACTS.fields_by_name['artifact_types'].enum_type = _BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES
_BUILDERCONFIG_ARTIFACTS.fields_by_name['publish_artifacts'].message_type = _BUILDERCONFIG_ARTIFACTS_PUBLISHINFO
_BUILDERCONFIG_ARTIFACTS.fields_by_name['input_artifacts'].message_type = _BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO
_BUILDERCONFIG_ARTIFACTS.fields_by_name['artifact_profile_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTPROFILEINFO
_BUILDERCONFIG_ARTIFACTS.fields_by_name['artifacts_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTSBYSERVICE
_BUILDERCONFIG_ARTIFACTS.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_ARTIFACTS_PREBUILTS.containing_type = _BUILDERCONFIG_ARTIFACTS
_BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES.containing_type = _BUILDERCONFIG_ARTIFACTS
_BUILDERCONFIG_CHROME.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_BUILD_PORTAGEPROFILE.containing_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG_BUILD_PREPAREFORBUILD.fields_by_name['additional_args'].message_type = chromiumos_dot_common__pb2._PREPAREFORBUILDADDITIONALARGS
_BUILDERCONFIG_BUILD_PREPAREFORBUILD.containing_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG_BUILD_SDKUPDATE.containing_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG_BUILD_INSTALLTOOLCHAIN.containing_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG_BUILD_INSTALLPACKAGES.fields_by_name['run_spec'].enum_type = _BUILDERCONFIG_RUNSPEC
_BUILDERCONFIG_BUILD_INSTALLPACKAGES.fields_by_name['packages'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_BUILDERCONFIG_BUILD_INSTALLPACKAGES.fields_by_name['dependencies'].enum_type = _BUILDERCONFIG_DEPENDENCIES
_BUILDERCONFIG_BUILD_INSTALLPACKAGES.containing_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG_BUILD_BUILDIMAGES.fields_by_name['image_types'].enum_type = chromiumos_dot_common__pb2._IMAGETYPE
_BUILDERCONFIG_BUILD_BUILDIMAGES.containing_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG_BUILD.fields_by_name['use_flags'].message_type = chromiumos_dot_common__pb2._USEFLAG
_BUILDERCONFIG_BUILD.fields_by_name['portage_profile'].message_type = _BUILDERCONFIG_BUILD_PORTAGEPROFILE
_BUILDERCONFIG_BUILD.fields_by_name['prepare_for_build'].message_type = _BUILDERCONFIG_BUILD_PREPAREFORBUILD
_BUILDERCONFIG_BUILD.fields_by_name['sdk_update'].message_type = _BUILDERCONFIG_BUILD_SDKUPDATE
_BUILDERCONFIG_BUILD.fields_by_name['install_toolchain'].message_type = _BUILDERCONFIG_BUILD_INSTALLTOOLCHAIN
_BUILDERCONFIG_BUILD.fields_by_name['install_packages'].message_type = _BUILDERCONFIG_BUILD_INSTALLPACKAGES
_BUILDERCONFIG_BUILD.fields_by_name['build_images'].message_type = _BUILDERCONFIG_BUILD_BUILDIMAGES
_BUILDERCONFIG_BUILD.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_UNITTESTS.fields_by_name['package_blacklist'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_BUILDERCONFIG_UNITTESTS.fields_by_name['ebuilds_run_spec'].enum_type = _BUILDERCONFIG_RUNSPEC
_BUILDERCONFIG_UNITTESTS.fields_by_name['packages'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_BUILDERCONFIG_UNITTESTS.fields_by_name['dependencies'].enum_type = _BUILDERCONFIG_DEPENDENCIES
_BUILDERCONFIG_UNITTESTS.containing_type = _BUILDERCONFIG
_BUILDERCONFIG.fields_by_name['id'].message_type = _BUILDERCONFIG_ID
_BUILDERCONFIG.fields_by_name['general'].message_type = _BUILDERCONFIG_GENERAL
_BUILDERCONFIG.fields_by_name['orchestrator'].message_type = _BUILDERCONFIG_ORCHESTRATOR
_BUILDERCONFIG.fields_by_name['artifacts'].message_type = _BUILDERCONFIG_ARTIFACTS
_BUILDERCONFIG.fields_by_name['chrome'].message_type = _BUILDERCONFIG_CHROME
_BUILDERCONFIG.fields_by_name['build'].message_type = _BUILDERCONFIG_BUILD
_BUILDERCONFIG.fields_by_name['unit_tests'].message_type = _BUILDERCONFIG_UNITTESTS
_BUILDERCONFIG_RUNSPEC.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_DEPENDENCIES.containing_type = _BUILDERCONFIG
_BUILDERCONFIGS.fields_by_name['builder_configs'].message_type = _BUILDERCONFIG
DESCRIPTOR.message_types_by_name['BuilderConfig'] = _BUILDERCONFIG
DESCRIPTOR.message_types_by_name['BuilderConfigs'] = _BUILDERCONFIGS
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

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

  Id = _reflection.GeneratedProtocolMessageType('Id', (_message.Message,), dict(
    DESCRIPTOR = _BUILDERCONFIG_ID,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Id)
    ))
  ,

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

    RunWhen = _reflection.GeneratedProtocolMessageType('RunWhen', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_GENERAL_RUNWHEN,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.General.RunWhen)
      ))
    ,
    DESCRIPTOR = _BUILDERCONFIG_GENERAL,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.General)
    ))
  ,

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

    ChildSpec = _reflection.GeneratedProtocolMessageType('ChildSpec', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_ORCHESTRATOR_CHILDSPEC,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Orchestrator.ChildSpec)
      ))
    ,

    FollowOnOrchestrator = _reflection.GeneratedProtocolMessageType('FollowOnOrchestrator', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_ORCHESTRATOR_FOLLOWONORCHESTRATOR,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Orchestrator.FollowOnOrchestrator)
      ))
    ,
    DESCRIPTOR = _BUILDERCONFIG_ORCHESTRATOR,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Orchestrator)
    ))
  ,

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

    PublishInfo = _reflection.GeneratedProtocolMessageType('PublishInfo', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_ARTIFACTS_PUBLISHINFO,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Artifacts.PublishInfo)
      ))
    ,

    InputArtifactInfo = _reflection.GeneratedProtocolMessageType('InputArtifactInfo', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Artifacts.InputArtifactInfo)
      ))
    ,
    DESCRIPTOR = _BUILDERCONFIG_ARTIFACTS,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Artifacts)
    ))
  ,

  Chrome = _reflection.GeneratedProtocolMessageType('Chrome', (_message.Message,), dict(
    DESCRIPTOR = _BUILDERCONFIG_CHROME,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Chrome)
    ))
  ,

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

    PortageProfile = _reflection.GeneratedProtocolMessageType('PortageProfile', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_BUILD_PORTAGEPROFILE,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build.PortageProfile)
      ))
    ,

    PrepareForBuild = _reflection.GeneratedProtocolMessageType('PrepareForBuild', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_BUILD_PREPAREFORBUILD,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build.PrepareForBuild)
      ))
    ,

    SdkUpdate = _reflection.GeneratedProtocolMessageType('SdkUpdate', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_BUILD_SDKUPDATE,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build.SdkUpdate)
      ))
    ,

    InstallToolchain = _reflection.GeneratedProtocolMessageType('InstallToolchain', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_BUILD_INSTALLTOOLCHAIN,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build.InstallToolchain)
      ))
    ,

    InstallPackages = _reflection.GeneratedProtocolMessageType('InstallPackages', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_BUILD_INSTALLPACKAGES,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build.InstallPackages)
      ))
    ,

    BuildImages = _reflection.GeneratedProtocolMessageType('BuildImages', (_message.Message,), dict(
      DESCRIPTOR = _BUILDERCONFIG_BUILD_BUILDIMAGES,
      __module__ = 'chromiumos.builder_config_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build.BuildImages)
      ))
    ,
    DESCRIPTOR = _BUILDERCONFIG_BUILD,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.Build)
    ))
  ,

  UnitTests = _reflection.GeneratedProtocolMessageType('UnitTests', (_message.Message,), dict(
    DESCRIPTOR = _BUILDERCONFIG_UNITTESTS,
    __module__ = 'chromiumos.builder_config_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig.UnitTests)
    ))
  ,
  DESCRIPTOR = _BUILDERCONFIG,
  __module__ = 'chromiumos.builder_config_pb2'
  # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfig)
  ))
_sym_db.RegisterMessage(BuilderConfig)
_sym_db.RegisterMessage(BuilderConfig.Id)
_sym_db.RegisterMessage(BuilderConfig.General)
_sym_db.RegisterMessage(BuilderConfig.General.RunWhen)
_sym_db.RegisterMessage(BuilderConfig.Orchestrator)
_sym_db.RegisterMessage(BuilderConfig.Orchestrator.ChildSpec)
_sym_db.RegisterMessage(BuilderConfig.Orchestrator.FollowOnOrchestrator)
_sym_db.RegisterMessage(BuilderConfig.Artifacts)
_sym_db.RegisterMessage(BuilderConfig.Artifacts.PublishInfo)
_sym_db.RegisterMessage(BuilderConfig.Artifacts.InputArtifactInfo)
_sym_db.RegisterMessage(BuilderConfig.Chrome)
_sym_db.RegisterMessage(BuilderConfig.Build)
_sym_db.RegisterMessage(BuilderConfig.Build.PortageProfile)
_sym_db.RegisterMessage(BuilderConfig.Build.PrepareForBuild)
_sym_db.RegisterMessage(BuilderConfig.Build.SdkUpdate)
_sym_db.RegisterMessage(BuilderConfig.Build.InstallToolchain)
_sym_db.RegisterMessage(BuilderConfig.Build.InstallPackages)
_sym_db.RegisterMessage(BuilderConfig.Build.BuildImages)
_sym_db.RegisterMessage(BuilderConfig.UnitTests)

BuilderConfigs = _reflection.GeneratedProtocolMessageType('BuilderConfigs', (_message.Message,), dict(
  DESCRIPTOR = _BUILDERCONFIGS,
  __module__ = 'chromiumos.builder_config_pb2'
  # @@protoc_insertion_point(class_scope:chromiumos.BuilderConfigs)
  ))
_sym_db.RegisterMessage(BuilderConfigs)


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