# 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\"\xcb\x1c\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\xab\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\"V\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\x1a\x94\x04\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\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\x1a\xa2\x02\n\x0cOrchestrator\x12\x10\n\x08\x63hildren\x18\x01 \x03(\t\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>\n\x14\x46ollowOnOrchestrator\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x18\n\x10\x61wait_completion\x18\x02 \x01(\x08\x1a\x86\t\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\x1az\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(\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\"\xc3\x03\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\x1c\n\x18UNVERIFIED_ORDERING_FILE\x10\x0b\x12\x1a\n\x16VERIFIED_ORDERING_FILE\x10\x0c\x12\x1e\n\x1a\x43HROME_CLANG_WARNINGS_FILE\x10\r\x12\x1c\n\x18UNVERIFIED_LLVM_PGO_FILE\x10\x0e\x12\x1f\n\x1bUNVERIFIED_CHROME_AFDO_FILE\x10\x0f\x12\x1d\n\x19VERIFIED_CHROME_AFDO_FILE\x10\x10\x12\x1d\n\x19VERIFIED_KERNEL_AFDO_FILE\x10\x11\x1a\x1a\n\x06\x43hrome\x12\x10\n\x08internal\x18\x01 \x01(\x08\x1a\xdd\x06\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\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\x12N\n\x15install_packages_conf\x18\x0e \x01(\x0b\x32/.chromiumos.BuilderConfig.Build.InstallPackages\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\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\x9f\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\x1a\x39\n\x0b\x42uildImages\x12*\n\x0bimage_types\x18\x01 \x03(\x0e\x32\x15.chromiumos.ImageTypeJ\x04\x08\x03\x10\x06J\x04\x08\x07\x10\x0c\x1a\x93\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\"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\"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),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=608,
  serialized_end=694,
)
_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=1058,
  serialized_end=1156,
)
_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=1158,
  serialized_end=1229,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_GENERAL_ENVIRONMENT)

_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=2156,
  serialized_end=2229,
)
_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_ORDERING_FILE', index=11, number=11,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_ORDERING_FILE', 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_AFDO_FILE', index=15, number=15,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_CHROME_AFDO_FILE', index=16, number=16,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VERIFIED_KERNEL_AFDO_FILE', index=17, number=17,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2232,
  serialized_end=2683,
)
_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=3727,
  serialized_end=3797,
)
_sym_db.RegisterEnumDescriptor(_BUILDERCONFIG_RUNSPEC)


_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=694,
)

_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=962,
  serialized_end=1156,
)

_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),
  ],
  extensions=[
  ],
  nested_types=[_BUILDERCONFIG_GENERAL_RUNWHEN, ],
  enum_types=[
    _BUILDERCONFIG_GENERAL_ENVIRONMENT,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=697,
  serialized_end=1229,
)

_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=1460,
  serialized_end=1522,
)

_BUILDERCONFIG_ORCHESTRATOR = _descriptor.Descriptor(
  name='Orchestrator',
  full_name='chromiumos.BuilderConfig.Orchestrator',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='children', full_name='chromiumos.BuilderConfig.Orchestrator.children', 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),
    _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_FOLLOWONORCHESTRATOR, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1232,
  serialized_end=1522,
)

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

_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=2018,
  serialized_end=2154,
)

_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),
  ],
  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=1525,
  serialized_end=2683,
)

_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=2685,
  serialized_end=2711,
)

_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=3228,
  serialized_end=3261,
)

_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=3263,
  serialized_end=3298,
)

_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=3300,
  serialized_end=3342,
)

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

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

_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='sdk_update', full_name='chromiumos.BuilderConfig.Build.sdk_update', index=3,
      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=4,
      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_conf', full_name='chromiumos.BuilderConfig.Build.install_packages_conf', index=5,
      number=14, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      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_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=2714,
  serialized_end=3575,
)

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

_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,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=138,
  serialized_end=3797,
)


_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=3799,
  serialized_end=3867,
)

_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.containing_type = _BUILDERCONFIG
_BUILDERCONFIG_GENERAL_ENVIRONMENT.containing_type = _BUILDERCONFIG_GENERAL
_BUILDERCONFIG_ORCHESTRATOR_FOLLOWONORCHESTRATOR.containing_type = _BUILDERCONFIG_ORCHESTRATOR
_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.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_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.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['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_conf'].message_type = _BUILDERCONFIG_BUILD_INSTALLPACKAGES
_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.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
_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(

    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)
      ))
    ,

    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.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.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)
