# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromiumos/build_report.proto
"""Generated protocol buffer code."""
from chromite.third_party.google.protobuf import descriptor as _descriptor
from chromite.third_party.google.protobuf import message as _message
from chromite.third_party.google.protobuf import reflection as _reflection
from chromite.third_party.google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from chromite.api.gen.chromiumos import common_pb2 as chromiumos_dot_common__pb2
from chromite.third_party.google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='chromiumos/build_report.proto',
  package='chromiumos',
  syntax='proto3',
  serialized_options=b'\n!com.google.chrome.crosinfra.protoZ4go.chromium.org/chromiumos/infra/proto/go/chromiumos',
  create_key=_descriptor._internal_create_key,
  serialized_pb=b'\n\x1d\x63hromiumos/build_report.proto\x12\nchromiumos\x1a\x17\x63hromiumos/common.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"_\n\tTimeframe\x12)\n\x05\x62\x65gin\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\'\n\x03\x65nd\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\"\xd7\x12\n\x0f\x42uildReportBeta\x12\x18\n\x0e\x62uildbucket_id\x18\x01 \x01(\x03H\x00\x12\x33\n\x04type\x18\x02 \x01(\x0e\x32%.chromiumos.BuildReportBeta.BuildType\x12\x37\n\x06status\x18\x03 \x01(\x0b\x32\'.chromiumos.BuildReportBeta.BuildStatus\x12\x37\n\x06\x63onfig\x18\x04 \x01(\x0b\x32\'.chromiumos.BuildReportBeta.BuildConfig\x12\x36\n\x05steps\x18\x05 \x01(\x0b\x32\'.chromiumos.BuildReportBeta.StepDetails\x12<\n\tartifacts\x18\x07 \x03(\x0b\x32).chromiumos.BuildReportBeta.BuildArtifact\x1a\xf0\x01\n\x0b\x42uildStatus\x12=\n\x05value\x18\x01 \x01(\x0e\x32..chromiumos.BuildReportBeta.BuildStatus.Status\"\xa1\x01\n\x06Status\x12\r\n\tUNDEFINED\x10\x00\x12\x11\n\rKIND_TERMINAL\x10\x01\x12\x10\n\x0cKIND_RUNNING\x10\x02\x12\x0b\n\x07SUCCESS\x10\x64\x12\x0b\n\x07\x46\x41ILURE\x10\x65\x12\x11\n\rINFRA_FAILURE\x10\x66\x12\x0c\n\x08WATCHDOG\x10g\x12\x0c\n\x08\x43\x41NCELED\x10h\x12\x0c\n\x07RUNNING\x10\xc8\x01\x12\x0c\n\x07WAITING\x10\xc9\x01\x1a\xd1\x02\n\x0b\x42uildConfig\x12>\n\x06\x62ranch\x18\x01 \x01(\x0b\x32..chromiumos.BuildReportBeta.BuildConfig.Branch\x12@\n\x07release\x18\x02 \x01(\x0b\x32/.chromiumos.BuildReportBeta.BuildConfig.Release\x12=\n\x06models\x18\x03 \x03(\x0b\x32-.chromiumos.BuildReportBeta.BuildConfig.Model\x1a\x15\n\x05Model\x12\x0c\n\x04name\x18\x01 \x01(\t\x1aR\n\x07Release\x12\x11\n\tmilestone\x18\x01 \x01(\x05\x12\r\n\x05\x62uild\x18\x02 \x01(\t\x12%\n\x08\x63hannels\x18\x03 \x03(\x0e\x32\x13.chromiumos.Channel\x1a\x16\n\x06\x42ranch\x12\x0c\n\x04name\x18\x01 \x01(\t\x1a\xb5\x04\n\rBuildArtifact\x12<\n\x04type\x18\x01 \x01(\x0e\x32..chromiumos.BuildReportBeta.BuildArtifact.Type\x12:\n\x03uri\x18\x02 \x01(\x0b\x32-.chromiumos.BuildReportBeta.BuildArtifact.URI\x12\x0e\n\x06sha256\x18\x03 \x01(\t\x12+\n\x07\x63reated\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x1a\x1b\n\x03URI\x12\r\n\x03gcs\x18\x01 \x01(\tH\x00\x42\x05\n\x03uri\"\xcf\x02\n\x04Type\x12\r\n\tUNDEFINED\x10\x00\x12\x0f\n\x0bIMAGE_TYPES\x10\x01\x12\x12\n\x0e\x46IRMWARE_TYPES\x10\x02\x12\x0e\n\nAFDO_TYPES\x10\x03\x12\x11\n\rRELEASE_IMAGE\x10\x64\x12\x12\n\x0eRECOVERY_IMAGE\x10\x65\x12\r\n\tDLC_IMAGE\x10\x66\x12\x16\n\x12\x44\x45\x42UG_SYMBOL_IMAGE\x10g\x12\x10\n\x0cHWQUAL_IMAGE\x10h\x12\x0e\n\nTEST_IMAGE\x10i\x12\x15\n\x10\x46IRMWARE_TARBALL\x10\xc8\x01\x12\x1a\n\x15\x46IRMWARE_TARBALL_INFO\x10\xc9\x01\x12\x12\n\rFIRMWARE_LCOV\x10\xca\x01\x12\x13\n\x0e\x41\x46\x44O_ORDERFILE\x10\xac\x02\x12\x13\n\x0e\x41\x46\x44O_BENCHMARK\x10\xad\x02\x12\x10\n\x0b\x41\x46\x44O_KERNEL\x10\xae\x02\x12\x10\n\x0b\x41\x46\x44O_CHROME\x10\xaf\x02\x1a\x97\x06\n\x0bStepDetails\x12\x41\n\x07\x63urrent\x18\x01 \x01(\x0e\x32\x30.chromiumos.BuildReportBeta.StepDetails.StepName\x12?\n\x04info\x18\x02 \x03(\x0b\x32\x31.chromiumos.BuildReportBeta.StepDetails.InfoEntry\x1a\x81\x01\n\x08StepInfo\x12\r\n\x05order\x18\x01 \x01(\x05\x12>\n\x06status\x18\x02 \x01(\x0e\x32..chromiumos.BuildReportBeta.StepDetails.Status\x12&\n\x07runtime\x18\x03 \x01(\x0b\x32\x15.chromiumos.Timeframe\x1a]\n\tInfoEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12?\n\x05value\x18\x02 \x01(\x0b\x32\x30.chromiumos.BuildReportBeta.StepDetails.StepInfo:\x02\x38\x01\"\xc9\x01\n\x06Status\x12\x19\n\x15STEP_STATUS_UNDEFINED\x10\x00\x12\x11\n\rKIND_TERMINAL\x10\x01\x12\x10\n\x0cKIND_RUNNING\x10\x02\x12\x12\n\x0eSTATUS_SUCCESS\x10\x64\x12\x12\n\x0eSTATUS_FAILURE\x10\x65\x12\x18\n\x14STATUS_INFRA_FAILURE\x10\x66\x12\x13\n\x0fSTATUS_WATCHDOG\x10g\x12\x13\n\x0fSTATUS_CANCELED\x10h\x12\x13\n\x0eSTATUS_RUNNING\x10\xc8\x01\"\xd4\x01\n\x08StepName\x12\x12\n\x0eSTEP_UNDEFINED\x10\x00\x12\x10\n\x0cSTEP_OVERALL\x10\x64\x12\x0e\n\tSTEP_SYNC\x10\xc8\x01\x12\x15\n\x10STEP_SYNC_CHROME\x10\xc9\x01\x12\r\n\x08STEP_SDK\x10\xac\x02\x12\x12\n\rSTEP_SDK_INIT\x10\xad\x02\x12\x14\n\x0fSTEP_SDK_UPDATE\x10\xae\x02\x12\x0f\n\nSTEP_BUILD\x10\x90\x03\x12\x17\n\x12STEP_BUILD_SYSROOT\x10\x91\x03\x12\x18\n\x13STEP_BUILD_PACKAGES\x10\x92\x03\"n\n\tBuildType\x12\x18\n\x14\x42UILD_TYPE_UNDEFINED\x10\x00\x12\x16\n\x12\x42UILD_TYPE_RELEASE\x10\x01\x12\x17\n\x13\x42UILD_TYPE_FIRMWARE\x10\x02\x12\x16\n\x12\x42UILD_TYPE_FACTORY\x10\x03\x42\x04\n\x02idBY\n!com.google.chrome.crosinfra.protoZ4go.chromium.org/chromiumos/infra/proto/go/chromiumosb\x06proto3'
  ,
  dependencies=[chromiumos_dot_common__pb2.DESCRIPTOR,google_dot_protobuf_dot_timestamp__pb2.DESCRIPTOR,])



_BUILDREPORTBETA_BUILDSTATUS_STATUS = _descriptor.EnumDescriptor(
  name='Status',
  full_name='chromiumos.BuildReportBeta.BuildStatus.Status',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNDEFINED', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='KIND_TERMINAL', index=1, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='KIND_RUNNING', index=2, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='SUCCESS', index=3, number=100,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='FAILURE', index=4, number=101,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='INFRA_FAILURE', index=5, number=102,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='WATCHDOG', index=6, number=103,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='CANCELED', index=7, number=104,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='RUNNING', index=8, number=200,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='WAITING', index=9, number=201,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=611,
  serialized_end=772,
)
_sym_db.RegisterEnumDescriptor(_BUILDREPORTBETA_BUILDSTATUS_STATUS)

_BUILDREPORTBETA_BUILDARTIFACT_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='chromiumos.BuildReportBeta.BuildArtifact.Type',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNDEFINED', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='IMAGE_TYPES', index=1, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='FIRMWARE_TYPES', index=2, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='AFDO_TYPES', index=3, number=3,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='RELEASE_IMAGE', index=4, number=100,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='RECOVERY_IMAGE', index=5, number=101,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='DLC_IMAGE', index=6, number=102,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='DEBUG_SYMBOL_IMAGE', index=7, number=103,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='HWQUAL_IMAGE', index=8, number=104,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='TEST_IMAGE', index=9, number=105,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='FIRMWARE_TARBALL', index=10, number=200,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='FIRMWARE_TARBALL_INFO', index=11, number=201,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='FIRMWARE_LCOV', index=12, number=202,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='AFDO_ORDERFILE', index=13, number=300,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='AFDO_BENCHMARK', index=14, number=301,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='AFDO_KERNEL', index=15, number=302,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='AFDO_CHROME', index=16, number=303,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1345,
  serialized_end=1680,
)
_sym_db.RegisterEnumDescriptor(_BUILDREPORTBETA_BUILDARTIFACT_TYPE)

_BUILDREPORTBETA_STEPDETAILS_STATUS = _descriptor.EnumDescriptor(
  name='Status',
  full_name='chromiumos.BuildReportBeta.StepDetails.Status',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='STEP_STATUS_UNDEFINED', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='KIND_TERMINAL', index=1, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='KIND_RUNNING', index=2, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STATUS_SUCCESS', index=3, number=100,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STATUS_FAILURE', index=4, number=101,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STATUS_INFRA_FAILURE', index=5, number=102,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STATUS_WATCHDOG', index=6, number=103,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STATUS_CANCELED', index=7, number=104,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STATUS_RUNNING', index=8, number=200,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2058,
  serialized_end=2259,
)
_sym_db.RegisterEnumDescriptor(_BUILDREPORTBETA_STEPDETAILS_STATUS)

_BUILDREPORTBETA_STEPDETAILS_STEPNAME = _descriptor.EnumDescriptor(
  name='StepName',
  full_name='chromiumos.BuildReportBeta.StepDetails.StepName',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='STEP_UNDEFINED', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_OVERALL', index=1, number=100,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_SYNC', index=2, number=200,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_SYNC_CHROME', index=3, number=201,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_SDK', index=4, number=300,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_SDK_INIT', index=5, number=301,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_SDK_UPDATE', index=6, number=302,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_BUILD', index=7, number=400,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_BUILD_SYSROOT', index=8, number=401,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='STEP_BUILD_PACKAGES', index=9, number=402,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2262,
  serialized_end=2474,
)
_sym_db.RegisterEnumDescriptor(_BUILDREPORTBETA_STEPDETAILS_STEPNAME)

_BUILDREPORTBETA_BUILDTYPE = _descriptor.EnumDescriptor(
  name='BuildType',
  full_name='chromiumos.BuildReportBeta.BuildType',
  filename=None,
  file=DESCRIPTOR,
  create_key=_descriptor._internal_create_key,
  values=[
    _descriptor.EnumValueDescriptor(
      name='BUILD_TYPE_UNDEFINED', index=0, number=0,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='BUILD_TYPE_RELEASE', index=1, number=1,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='BUILD_TYPE_FIRMWARE', index=2, number=2,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
    _descriptor.EnumValueDescriptor(
      name='BUILD_TYPE_FACTORY', index=3, number=3,
      serialized_options=None,
      type=None,
      create_key=_descriptor._internal_create_key),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2476,
  serialized_end=2586,
)
_sym_db.RegisterEnumDescriptor(_BUILDREPORTBETA_BUILDTYPE)


_TIMEFRAME = _descriptor.Descriptor(
  name='Timeframe',
  full_name='chromiumos.Timeframe',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='begin', full_name='chromiumos.Timeframe.begin', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='end', full_name='chromiumos.Timeframe.end', 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=103,
  serialized_end=198,
)


_BUILDREPORTBETA_BUILDSTATUS = _descriptor.Descriptor(
  name='BuildStatus',
  full_name='chromiumos.BuildReportBeta.BuildStatus',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='chromiumos.BuildReportBeta.BuildStatus.value', 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _BUILDREPORTBETA_BUILDSTATUS_STATUS,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=532,
  serialized_end=772,
)

_BUILDREPORTBETA_BUILDCONFIG_MODEL = _descriptor.Descriptor(
  name='Model',
  full_name='chromiumos.BuildReportBeta.BuildConfig.Model',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='chromiumos.BuildReportBeta.BuildConfig.Model.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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=983,
  serialized_end=1004,
)

_BUILDREPORTBETA_BUILDCONFIG_RELEASE = _descriptor.Descriptor(
  name='Release',
  full_name='chromiumos.BuildReportBeta.BuildConfig.Release',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='milestone', full_name='chromiumos.BuildReportBeta.BuildConfig.Release.milestone', index=0,
      number=1, 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='build', full_name='chromiumos.BuildReportBeta.BuildConfig.Release.build', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='channels', full_name='chromiumos.BuildReportBeta.BuildConfig.Release.channels', index=2,
      number=3, 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1006,
  serialized_end=1088,
)

_BUILDREPORTBETA_BUILDCONFIG_BRANCH = _descriptor.Descriptor(
  name='Branch',
  full_name='chromiumos.BuildReportBeta.BuildConfig.Branch',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='chromiumos.BuildReportBeta.BuildConfig.Branch.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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1090,
  serialized_end=1112,
)

_BUILDREPORTBETA_BUILDCONFIG = _descriptor.Descriptor(
  name='BuildConfig',
  full_name='chromiumos.BuildReportBeta.BuildConfig',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='branch', full_name='chromiumos.BuildReportBeta.BuildConfig.branch', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='release', full_name='chromiumos.BuildReportBeta.BuildConfig.release', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='models', full_name='chromiumos.BuildReportBeta.BuildConfig.models', index=2,
      number=3, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_BUILDREPORTBETA_BUILDCONFIG_MODEL, _BUILDREPORTBETA_BUILDCONFIG_RELEASE, _BUILDREPORTBETA_BUILDCONFIG_BRANCH, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=775,
  serialized_end=1112,
)

_BUILDREPORTBETA_BUILDARTIFACT_URI = _descriptor.Descriptor(
  name='URI',
  full_name='chromiumos.BuildReportBeta.BuildArtifact.URI',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='gcs', full_name='chromiumos.BuildReportBeta.BuildArtifact.URI.gcs', 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='uri', full_name='chromiumos.BuildReportBeta.BuildArtifact.URI.uri',
      index=0, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
  ],
  serialized_start=1315,
  serialized_end=1342,
)

_BUILDREPORTBETA_BUILDARTIFACT = _descriptor.Descriptor(
  name='BuildArtifact',
  full_name='chromiumos.BuildReportBeta.BuildArtifact',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='chromiumos.BuildReportBeta.BuildArtifact.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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='uri', full_name='chromiumos.BuildReportBeta.BuildArtifact.uri', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='sha256', full_name='chromiumos.BuildReportBeta.BuildArtifact.sha256', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='created', full_name='chromiumos.BuildReportBeta.BuildArtifact.created', 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_BUILDREPORTBETA_BUILDARTIFACT_URI, ],
  enum_types=[
    _BUILDREPORTBETA_BUILDARTIFACT_TYPE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1115,
  serialized_end=1680,
)

_BUILDREPORTBETA_STEPDETAILS_STEPINFO = _descriptor.Descriptor(
  name='StepInfo',
  full_name='chromiumos.BuildReportBeta.StepDetails.StepInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='order', full_name='chromiumos.BuildReportBeta.StepDetails.StepInfo.order', index=0,
      number=1, 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='status', full_name='chromiumos.BuildReportBeta.StepDetails.StepInfo.status', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='runtime', full_name='chromiumos.BuildReportBeta.StepDetails.StepInfo.runtime', 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1831,
  serialized_end=1960,
)

_BUILDREPORTBETA_STEPDETAILS_INFOENTRY = _descriptor.Descriptor(
  name='InfoEntry',
  full_name='chromiumos.BuildReportBeta.StepDetails.InfoEntry',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='key', full_name='chromiumos.BuildReportBeta.StepDetails.InfoEntry.key', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='value', full_name='chromiumos.BuildReportBeta.StepDetails.InfoEntry.value', 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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=b'8\001',
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1962,
  serialized_end=2055,
)

_BUILDREPORTBETA_STEPDETAILS = _descriptor.Descriptor(
  name='StepDetails',
  full_name='chromiumos.BuildReportBeta.StepDetails',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='current', full_name='chromiumos.BuildReportBeta.StepDetails.current', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='info', full_name='chromiumos.BuildReportBeta.StepDetails.info', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_BUILDREPORTBETA_STEPDETAILS_STEPINFO, _BUILDREPORTBETA_STEPDETAILS_INFOENTRY, ],
  enum_types=[
    _BUILDREPORTBETA_STEPDETAILS_STATUS,
    _BUILDREPORTBETA_STEPDETAILS_STEPNAME,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1683,
  serialized_end=2474,
)

_BUILDREPORTBETA = _descriptor.Descriptor(
  name='BuildReportBeta',
  full_name='chromiumos.BuildReportBeta',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  create_key=_descriptor._internal_create_key,
  fields=[
    _descriptor.FieldDescriptor(
      name='buildbucket_id', full_name='chromiumos.BuildReportBeta.buildbucket_id', index=0,
      number=1, type=3, cpp_type=2, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='type', full_name='chromiumos.BuildReportBeta.type', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='status', full_name='chromiumos.BuildReportBeta.status', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='config', full_name='chromiumos.BuildReportBeta.config', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='steps', full_name='chromiumos.BuildReportBeta.steps', 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,  create_key=_descriptor._internal_create_key),
    _descriptor.FieldDescriptor(
      name='artifacts', full_name='chromiumos.BuildReportBeta.artifacts', index=5,
      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,  create_key=_descriptor._internal_create_key),
  ],
  extensions=[
  ],
  nested_types=[_BUILDREPORTBETA_BUILDSTATUS, _BUILDREPORTBETA_BUILDCONFIG, _BUILDREPORTBETA_BUILDARTIFACT, _BUILDREPORTBETA_STEPDETAILS, ],
  enum_types=[
    _BUILDREPORTBETA_BUILDTYPE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='id', full_name='chromiumos.BuildReportBeta.id',
      index=0, containing_type=None,
      create_key=_descriptor._internal_create_key,
    fields=[]),
  ],
  serialized_start=201,
  serialized_end=2592,
)

_TIMEFRAME.fields_by_name['begin'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_TIMEFRAME.fields_by_name['end'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILDREPORTBETA_BUILDSTATUS.fields_by_name['value'].enum_type = _BUILDREPORTBETA_BUILDSTATUS_STATUS
_BUILDREPORTBETA_BUILDSTATUS.containing_type = _BUILDREPORTBETA
_BUILDREPORTBETA_BUILDSTATUS_STATUS.containing_type = _BUILDREPORTBETA_BUILDSTATUS
_BUILDREPORTBETA_BUILDCONFIG_MODEL.containing_type = _BUILDREPORTBETA_BUILDCONFIG
_BUILDREPORTBETA_BUILDCONFIG_RELEASE.fields_by_name['channels'].enum_type = chromiumos_dot_common__pb2._CHANNEL
_BUILDREPORTBETA_BUILDCONFIG_RELEASE.containing_type = _BUILDREPORTBETA_BUILDCONFIG
_BUILDREPORTBETA_BUILDCONFIG_BRANCH.containing_type = _BUILDREPORTBETA_BUILDCONFIG
_BUILDREPORTBETA_BUILDCONFIG.fields_by_name['branch'].message_type = _BUILDREPORTBETA_BUILDCONFIG_BRANCH
_BUILDREPORTBETA_BUILDCONFIG.fields_by_name['release'].message_type = _BUILDREPORTBETA_BUILDCONFIG_RELEASE
_BUILDREPORTBETA_BUILDCONFIG.fields_by_name['models'].message_type = _BUILDREPORTBETA_BUILDCONFIG_MODEL
_BUILDREPORTBETA_BUILDCONFIG.containing_type = _BUILDREPORTBETA
_BUILDREPORTBETA_BUILDARTIFACT_URI.containing_type = _BUILDREPORTBETA_BUILDARTIFACT
_BUILDREPORTBETA_BUILDARTIFACT_URI.oneofs_by_name['uri'].fields.append(
  _BUILDREPORTBETA_BUILDARTIFACT_URI.fields_by_name['gcs'])
_BUILDREPORTBETA_BUILDARTIFACT_URI.fields_by_name['gcs'].containing_oneof = _BUILDREPORTBETA_BUILDARTIFACT_URI.oneofs_by_name['uri']
_BUILDREPORTBETA_BUILDARTIFACT.fields_by_name['type'].enum_type = _BUILDREPORTBETA_BUILDARTIFACT_TYPE
_BUILDREPORTBETA_BUILDARTIFACT.fields_by_name['uri'].message_type = _BUILDREPORTBETA_BUILDARTIFACT_URI
_BUILDREPORTBETA_BUILDARTIFACT.fields_by_name['created'].message_type = google_dot_protobuf_dot_timestamp__pb2._TIMESTAMP
_BUILDREPORTBETA_BUILDARTIFACT.containing_type = _BUILDREPORTBETA
_BUILDREPORTBETA_BUILDARTIFACT_TYPE.containing_type = _BUILDREPORTBETA_BUILDARTIFACT
_BUILDREPORTBETA_STEPDETAILS_STEPINFO.fields_by_name['status'].enum_type = _BUILDREPORTBETA_STEPDETAILS_STATUS
_BUILDREPORTBETA_STEPDETAILS_STEPINFO.fields_by_name['runtime'].message_type = _TIMEFRAME
_BUILDREPORTBETA_STEPDETAILS_STEPINFO.containing_type = _BUILDREPORTBETA_STEPDETAILS
_BUILDREPORTBETA_STEPDETAILS_INFOENTRY.fields_by_name['value'].message_type = _BUILDREPORTBETA_STEPDETAILS_STEPINFO
_BUILDREPORTBETA_STEPDETAILS_INFOENTRY.containing_type = _BUILDREPORTBETA_STEPDETAILS
_BUILDREPORTBETA_STEPDETAILS.fields_by_name['current'].enum_type = _BUILDREPORTBETA_STEPDETAILS_STEPNAME
_BUILDREPORTBETA_STEPDETAILS.fields_by_name['info'].message_type = _BUILDREPORTBETA_STEPDETAILS_INFOENTRY
_BUILDREPORTBETA_STEPDETAILS.containing_type = _BUILDREPORTBETA
_BUILDREPORTBETA_STEPDETAILS_STATUS.containing_type = _BUILDREPORTBETA_STEPDETAILS
_BUILDREPORTBETA_STEPDETAILS_STEPNAME.containing_type = _BUILDREPORTBETA_STEPDETAILS
_BUILDREPORTBETA.fields_by_name['type'].enum_type = _BUILDREPORTBETA_BUILDTYPE
_BUILDREPORTBETA.fields_by_name['status'].message_type = _BUILDREPORTBETA_BUILDSTATUS
_BUILDREPORTBETA.fields_by_name['config'].message_type = _BUILDREPORTBETA_BUILDCONFIG
_BUILDREPORTBETA.fields_by_name['steps'].message_type = _BUILDREPORTBETA_STEPDETAILS
_BUILDREPORTBETA.fields_by_name['artifacts'].message_type = _BUILDREPORTBETA_BUILDARTIFACT
_BUILDREPORTBETA_BUILDTYPE.containing_type = _BUILDREPORTBETA
_BUILDREPORTBETA.oneofs_by_name['id'].fields.append(
  _BUILDREPORTBETA.fields_by_name['buildbucket_id'])
_BUILDREPORTBETA.fields_by_name['buildbucket_id'].containing_oneof = _BUILDREPORTBETA.oneofs_by_name['id']
DESCRIPTOR.message_types_by_name['Timeframe'] = _TIMEFRAME
DESCRIPTOR.message_types_by_name['BuildReportBeta'] = _BUILDREPORTBETA
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Timeframe = _reflection.GeneratedProtocolMessageType('Timeframe', (_message.Message,), {
  'DESCRIPTOR' : _TIMEFRAME,
  '__module__' : 'chromiumos.build_report_pb2'
  # @@protoc_insertion_point(class_scope:chromiumos.Timeframe)
  })
_sym_db.RegisterMessage(Timeframe)

BuildReportBeta = _reflection.GeneratedProtocolMessageType('BuildReportBeta', (_message.Message,), {

  'BuildStatus' : _reflection.GeneratedProtocolMessageType('BuildStatus', (_message.Message,), {
    'DESCRIPTOR' : _BUILDREPORTBETA_BUILDSTATUS,
    '__module__' : 'chromiumos.build_report_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildStatus)
    })
  ,

  'BuildConfig' : _reflection.GeneratedProtocolMessageType('BuildConfig', (_message.Message,), {

    'Model' : _reflection.GeneratedProtocolMessageType('Model', (_message.Message,), {
      'DESCRIPTOR' : _BUILDREPORTBETA_BUILDCONFIG_MODEL,
      '__module__' : 'chromiumos.build_report_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildConfig.Model)
      })
    ,

    'Release' : _reflection.GeneratedProtocolMessageType('Release', (_message.Message,), {
      'DESCRIPTOR' : _BUILDREPORTBETA_BUILDCONFIG_RELEASE,
      '__module__' : 'chromiumos.build_report_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildConfig.Release)
      })
    ,

    'Branch' : _reflection.GeneratedProtocolMessageType('Branch', (_message.Message,), {
      'DESCRIPTOR' : _BUILDREPORTBETA_BUILDCONFIG_BRANCH,
      '__module__' : 'chromiumos.build_report_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildConfig.Branch)
      })
    ,
    'DESCRIPTOR' : _BUILDREPORTBETA_BUILDCONFIG,
    '__module__' : 'chromiumos.build_report_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildConfig)
    })
  ,

  'BuildArtifact' : _reflection.GeneratedProtocolMessageType('BuildArtifact', (_message.Message,), {

    'URI' : _reflection.GeneratedProtocolMessageType('URI', (_message.Message,), {
      'DESCRIPTOR' : _BUILDREPORTBETA_BUILDARTIFACT_URI,
      '__module__' : 'chromiumos.build_report_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildArtifact.URI)
      })
    ,
    'DESCRIPTOR' : _BUILDREPORTBETA_BUILDARTIFACT,
    '__module__' : 'chromiumos.build_report_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.BuildArtifact)
    })
  ,

  'StepDetails' : _reflection.GeneratedProtocolMessageType('StepDetails', (_message.Message,), {

    'StepInfo' : _reflection.GeneratedProtocolMessageType('StepInfo', (_message.Message,), {
      'DESCRIPTOR' : _BUILDREPORTBETA_STEPDETAILS_STEPINFO,
      '__module__' : 'chromiumos.build_report_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.StepDetails.StepInfo)
      })
    ,

    'InfoEntry' : _reflection.GeneratedProtocolMessageType('InfoEntry', (_message.Message,), {
      'DESCRIPTOR' : _BUILDREPORTBETA_STEPDETAILS_INFOENTRY,
      '__module__' : 'chromiumos.build_report_pb2'
      # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.StepDetails.InfoEntry)
      })
    ,
    'DESCRIPTOR' : _BUILDREPORTBETA_STEPDETAILS,
    '__module__' : 'chromiumos.build_report_pb2'
    # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta.StepDetails)
    })
  ,
  'DESCRIPTOR' : _BUILDREPORTBETA,
  '__module__' : 'chromiumos.build_report_pb2'
  # @@protoc_insertion_point(class_scope:chromiumos.BuildReportBeta)
  })
_sym_db.RegisterMessage(BuildReportBeta)
_sym_db.RegisterMessage(BuildReportBeta.BuildStatus)
_sym_db.RegisterMessage(BuildReportBeta.BuildConfig)
_sym_db.RegisterMessage(BuildReportBeta.BuildConfig.Model)
_sym_db.RegisterMessage(BuildReportBeta.BuildConfig.Release)
_sym_db.RegisterMessage(BuildReportBeta.BuildConfig.Branch)
_sym_db.RegisterMessage(BuildReportBeta.BuildArtifact)
_sym_db.RegisterMessage(BuildReportBeta.BuildArtifact.URI)
_sym_db.RegisterMessage(BuildReportBeta.StepDetails)
_sym_db.RegisterMessage(BuildReportBeta.StepDetails.StepInfo)
_sym_db.RegisterMessage(BuildReportBeta.StepDetails.InfoEntry)


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