# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromite/api/firmware.proto

import sys
_b=sys.version_info[0]<3 and (lambda x:x) or (lambda x:x.encode('latin1'))
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message
from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from chromite.api.gen.chromite.api import build_api_pb2 as chromite_dot_api_dot_build__api__pb2
from chromite.api.gen.chromiumos import common_pb2 as chromiumos_dot_common__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='chromite/api/firmware.proto',
  package='chromite.api',
  syntax='proto3',
  serialized_options=_b('Z6go.chromium.org/chromiumos/infra/proto/go/chromite/api'),
  serialized_pb=_b('\n\x1b\x63hromite/api/firmware.proto\x12\x0c\x63hromite.api\x1a\x1c\x63hromite/api/build_api.proto\x1a\x17\x63hromiumos/common.proto\"\x99\x04\n\rFwBuildMetric\x12\x13\n\x0btarget_name\x18\x01 \x01(\t\x12\x15\n\rplatform_name\x18\x02 \x01(\t\x12\x39\n\nfw_section\x18\x03 \x03(\x0b\x32%.chromite.api.FwBuildMetric.FwSection\x12:\n\x06zephyr\x18\x04 \x01(\x0b\x32(.chromite.api.FwBuildMetric.ZephyrTargetH\x00\x1a\xd2\x01\n\tFwSection\x12>\n\x06region\x18\x01 \x01(\x0e\x32..chromite.api.FwBuildMetric.FwSection.FwRegion\x12\x0c\n\x04used\x18\x02 \x01(\r\x12\r\n\x05total\x18\x03 \x01(\r\"h\n\x08\x46wRegion\x12\x15\n\x11\x46W_REGION_UNKNOWN\x10\x00\x12\t\n\x05\x45\x43_RO\x10\x01\x12\t\n\x05\x45\x43_RW\x10\x02\x12\r\n\tEC_RO_BSS\x10\x03\x12\r\n\tEC_RW_BSS\x10\x04\x12\x11\n\rEC_SHARED_MEM\x10\x05\x1a\x35\n\x07Version\x12\r\n\x05major\x18\x01 \x01(\r\x12\r\n\x05minor\x18\x02 \x01(\r\x12\x0c\n\x04tiny\x18\x03 \x01(\r\x1aK\n\x0cZephyrTarget\x12;\n\x0ekernel_version\x18\x01 \x01(\x0b\x32#.chromite.api.FwBuildMetric.VersionB\x0c\n\nimage_type\"?\n\x11\x46wBuildMetricList\x12*\n\x05value\x18\x01 \x03(\x0b\x32\x1b.chromite.api.FwBuildMetric\"\x1c\n\x0c\x46wTestMetric\x12\x0c\n\x04name\x18\x01 \x01(\t\"=\n\x10\x46wTestMetricList\x12)\n\x05value\x18\x01 \x03(\x0b\x32\x1a.chromite.api.FwTestMetric\"u\n\x1a\x42uildAllTotFirmwareRequest\x12\x33\n\x11\x66irmware_location\x18\x01 \x01(\x0e\x32\x18.chromite.api.FwLocation\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\"O\n\x1b\x42uildAllTotFirmwareResponse\x12\x30\n\x07metrics\x18\x01 \x01(\x0b\x32\x1f.chromite.api.FwBuildMetricList\"t\n\x19TestAllTotFirmwareRequest\x12\x33\n\x11\x66irmware_location\x18\x01 \x01(\x0e\x32\x18.chromite.api.FwLocation\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\"M\n\x1aTestAllTotFirmwareResponse\x12/\n\x07metrics\x18\x01 \x01(\x0b\x32\x1e.chromite.api.FwTestMetricList\"p\n\x17\x42uildAllFirmwareRequest\x12\x31\n\x11\x66irmware_location\x18\x01 \x01(\x0e\x32\x16.chromiumos.FwLocation\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\"L\n\x18\x42uildAllFirmwareResponse\x12\x30\n\x07metrics\x18\x01 \x01(\x0b\x32\x1f.chromite.api.FwBuildMetricList\"o\n\x16TestAllFirmwareRequest\x12\x31\n\x11\x66irmware_location\x18\x01 \x01(\x0e\x32\x16.chromiumos.FwLocation\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\"J\n\x17TestAllFirmwareResponse\x12/\n\x07metrics\x18\x01 \x01(\x0b\x32\x1e.chromite.api.FwTestMetricList\"\xe0\x01\n\x1e\x42undleFirmwareArtifactsRequest\x12\x31\n\x11\x66irmware_location\x18\x01 \x01(\x0e\x32\x16.chromiumos.FwLocation\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\x12+\n\x0bresult_path\x18\x03 \x01(\x0b\x32\x16.chromiumos.ResultPath\x12:\n\tartifacts\x18\x04 \x01(\x0b\x32\'.chromiumos.ArtifactsByService.Firmware\"e\n\x1f\x42undleFirmwareArtifactsResponse\x12\x42\n\tartifacts\x18\x01 \x01(\x0b\x32/.chromiumos.UploadedArtifactsByService.Firmware*^\n\nFwLocation\x12\x17\n\x13\x46W_LOCATION_UNKNOWN\x10\x00\x12\x0f\n\x0bPLATFORM_EC\x10\x01\x12\x13\n\x0fPLATFORM_ZEPHYR\x10\x02\x12\x11\n\rPLATFORM_TI50\x10\x03\x32\xb3\x04\n\x0f\x46irmwareService\x12j\n\x13\x42uildAllTotFirmware\x12(.chromite.api.BuildAllTotFirmwareRequest\x1a).chromite.api.BuildAllTotFirmwareResponse\x12g\n\x12TestAllTotFirmware\x12\'.chromite.api.TestAllTotFirmwareRequest\x1a(.chromite.api.TestAllTotFirmwareResponse\x12\x61\n\x10\x42uildAllFirmware\x12%.chromite.api.BuildAllFirmwareRequest\x1a&.chromite.api.BuildAllFirmwareResponse\x12^\n\x0fTestAllFirmware\x12$.chromite.api.TestAllFirmwareRequest\x1a%.chromite.api.TestAllFirmwareResponse\x12v\n\x17\x42undleFirmwareArtifacts\x12,.chromite.api.BundleFirmwareArtifactsRequest\x1a-.chromite.api.BundleFirmwareArtifactsResponse\x1a\x10\xc2\xed\x1a\x0c\n\x08\x66irmware\x10\x01\x42\x38Z6go.chromium.org/chromiumos/infra/proto/go/chromite/apib\x06proto3')
  ,
  dependencies=[chromite_dot_api_dot_build__api__pb2.DESCRIPTOR,chromiumos_dot_common__pb2.DESCRIPTOR,])

_FWLOCATION = _descriptor.EnumDescriptor(
  name='FwLocation',
  full_name='chromite.api.FwLocation',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FW_LOCATION_UNKNOWN', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PLATFORM_EC', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PLATFORM_ZEPHYR', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PLATFORM_TI50', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=1906,
  serialized_end=2000,
)
_sym_db.RegisterEnumDescriptor(_FWLOCATION)

FwLocation = enum_type_wrapper.EnumTypeWrapper(_FWLOCATION)
FW_LOCATION_UNKNOWN = 0
PLATFORM_EC = 1
PLATFORM_ZEPHYR = 2
PLATFORM_TI50 = 3


_FWBUILDMETRIC_FWSECTION_FWREGION = _descriptor.EnumDescriptor(
  name='FwRegion',
  full_name='chromite.api.FwBuildMetric.FwSection.FwRegion',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='FW_REGION_UNKNOWN', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EC_RO', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EC_RW', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EC_RO_BSS', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EC_RW_BSS', index=4, number=4,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EC_SHARED_MEM', index=5, number=5,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=388,
  serialized_end=492,
)
_sym_db.RegisterEnumDescriptor(_FWBUILDMETRIC_FWSECTION_FWREGION)


_FWBUILDMETRIC_FWSECTION = _descriptor.Descriptor(
  name='FwSection',
  full_name='chromite.api.FwBuildMetric.FwSection',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='region', full_name='chromite.api.FwBuildMetric.FwSection.region', 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='used', full_name='chromite.api.FwBuildMetric.FwSection.used', index=1,
      number=2, type=13, cpp_type=3, 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='total', full_name='chromite.api.FwBuildMetric.FwSection.total', index=2,
      number=3, type=13, cpp_type=3, 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=[
    _FWBUILDMETRIC_FWSECTION_FWREGION,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=282,
  serialized_end=492,
)

_FWBUILDMETRIC_VERSION = _descriptor.Descriptor(
  name='Version',
  full_name='chromite.api.FwBuildMetric.Version',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='major', full_name='chromite.api.FwBuildMetric.Version.major', index=0,
      number=1, type=13, cpp_type=3, 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='minor', full_name='chromite.api.FwBuildMetric.Version.minor', index=1,
      number=2, type=13, cpp_type=3, 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='tiny', full_name='chromite.api.FwBuildMetric.Version.tiny', index=2,
      number=3, type=13, cpp_type=3, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=494,
  serialized_end=547,
)

_FWBUILDMETRIC_ZEPHYRTARGET = _descriptor.Descriptor(
  name='ZephyrTarget',
  full_name='chromite.api.FwBuildMetric.ZephyrTarget',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='kernel_version', full_name='chromite.api.FwBuildMetric.ZephyrTarget.kernel_version', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=549,
  serialized_end=624,
)

_FWBUILDMETRIC = _descriptor.Descriptor(
  name='FwBuildMetric',
  full_name='chromite.api.FwBuildMetric',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='target_name', full_name='chromite.api.FwBuildMetric.target_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='platform_name', full_name='chromite.api.FwBuildMetric.platform_name', 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='fw_section', full_name='chromite.api.FwBuildMetric.fw_section', 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='zephyr', full_name='chromite.api.FwBuildMetric.zephyr', 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=[_FWBUILDMETRIC_FWSECTION, _FWBUILDMETRIC_VERSION, _FWBUILDMETRIC_ZEPHYRTARGET, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
    _descriptor.OneofDescriptor(
      name='image_type', full_name='chromite.api.FwBuildMetric.image_type',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=101,
  serialized_end=638,
)


_FWBUILDMETRICLIST = _descriptor.Descriptor(
  name='FwBuildMetricList',
  full_name='chromite.api.FwBuildMetricList',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='chromite.api.FwBuildMetricList.value', 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=640,
  serialized_end=703,
)


_FWTESTMETRIC = _descriptor.Descriptor(
  name='FwTestMetric',
  full_name='chromite.api.FwTestMetric',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='chromite.api.FwTestMetric.name', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=705,
  serialized_end=733,
)


_FWTESTMETRICLIST = _descriptor.Descriptor(
  name='FwTestMetricList',
  full_name='chromite.api.FwTestMetricList',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='value', full_name='chromite.api.FwTestMetricList.value', 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=735,
  serialized_end=796,
)


_BUILDALLTOTFIRMWAREREQUEST = _descriptor.Descriptor(
  name='BuildAllTotFirmwareRequest',
  full_name='chromite.api.BuildAllTotFirmwareRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='firmware_location', full_name='chromite.api.BuildAllTotFirmwareRequest.firmware_location', 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='chroot', full_name='chromite.api.BuildAllTotFirmwareRequest.chroot', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=798,
  serialized_end=915,
)


_BUILDALLTOTFIRMWARERESPONSE = _descriptor.Descriptor(
  name='BuildAllTotFirmwareResponse',
  full_name='chromite.api.BuildAllTotFirmwareResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metrics', full_name='chromite.api.BuildAllTotFirmwareResponse.metrics', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=917,
  serialized_end=996,
)


_TESTALLTOTFIRMWAREREQUEST = _descriptor.Descriptor(
  name='TestAllTotFirmwareRequest',
  full_name='chromite.api.TestAllTotFirmwareRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='firmware_location', full_name='chromite.api.TestAllTotFirmwareRequest.firmware_location', 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='chroot', full_name='chromite.api.TestAllTotFirmwareRequest.chroot', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=998,
  serialized_end=1114,
)


_TESTALLTOTFIRMWARERESPONSE = _descriptor.Descriptor(
  name='TestAllTotFirmwareResponse',
  full_name='chromite.api.TestAllTotFirmwareResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metrics', full_name='chromite.api.TestAllTotFirmwareResponse.metrics', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1116,
  serialized_end=1193,
)


_BUILDALLFIRMWAREREQUEST = _descriptor.Descriptor(
  name='BuildAllFirmwareRequest',
  full_name='chromite.api.BuildAllFirmwareRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='firmware_location', full_name='chromite.api.BuildAllFirmwareRequest.firmware_location', 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='chroot', full_name='chromite.api.BuildAllFirmwareRequest.chroot', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1195,
  serialized_end=1307,
)


_BUILDALLFIRMWARERESPONSE = _descriptor.Descriptor(
  name='BuildAllFirmwareResponse',
  full_name='chromite.api.BuildAllFirmwareResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metrics', full_name='chromite.api.BuildAllFirmwareResponse.metrics', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1309,
  serialized_end=1385,
)


_TESTALLFIRMWAREREQUEST = _descriptor.Descriptor(
  name='TestAllFirmwareRequest',
  full_name='chromite.api.TestAllFirmwareRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='firmware_location', full_name='chromite.api.TestAllFirmwareRequest.firmware_location', 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='chroot', full_name='chromite.api.TestAllFirmwareRequest.chroot', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1387,
  serialized_end=1498,
)


_TESTALLFIRMWARERESPONSE = _descriptor.Descriptor(
  name='TestAllFirmwareResponse',
  full_name='chromite.api.TestAllFirmwareResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='metrics', full_name='chromite.api.TestAllFirmwareResponse.metrics', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1500,
  serialized_end=1574,
)


_BUNDLEFIRMWAREARTIFACTSREQUEST = _descriptor.Descriptor(
  name='BundleFirmwareArtifactsRequest',
  full_name='chromite.api.BundleFirmwareArtifactsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='firmware_location', full_name='chromite.api.BundleFirmwareArtifactsRequest.firmware_location', 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='chroot', full_name='chromite.api.BundleFirmwareArtifactsRequest.chroot', 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='result_path', full_name='chromite.api.BundleFirmwareArtifactsRequest.result_path', 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='chromite.api.BundleFirmwareArtifactsRequest.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1577,
  serialized_end=1801,
)


_BUNDLEFIRMWAREARTIFACTSRESPONSE = _descriptor.Descriptor(
  name='BundleFirmwareArtifactsResponse',
  full_name='chromite.api.BundleFirmwareArtifactsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifacts', full_name='chromite.api.BundleFirmwareArtifactsResponse.artifacts', index=0,
      number=1, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1803,
  serialized_end=1904,
)

_FWBUILDMETRIC_FWSECTION.fields_by_name['region'].enum_type = _FWBUILDMETRIC_FWSECTION_FWREGION
_FWBUILDMETRIC_FWSECTION.containing_type = _FWBUILDMETRIC
_FWBUILDMETRIC_FWSECTION_FWREGION.containing_type = _FWBUILDMETRIC_FWSECTION
_FWBUILDMETRIC_VERSION.containing_type = _FWBUILDMETRIC
_FWBUILDMETRIC_ZEPHYRTARGET.fields_by_name['kernel_version'].message_type = _FWBUILDMETRIC_VERSION
_FWBUILDMETRIC_ZEPHYRTARGET.containing_type = _FWBUILDMETRIC
_FWBUILDMETRIC.fields_by_name['fw_section'].message_type = _FWBUILDMETRIC_FWSECTION
_FWBUILDMETRIC.fields_by_name['zephyr'].message_type = _FWBUILDMETRIC_ZEPHYRTARGET
_FWBUILDMETRIC.oneofs_by_name['image_type'].fields.append(
  _FWBUILDMETRIC.fields_by_name['zephyr'])
_FWBUILDMETRIC.fields_by_name['zephyr'].containing_oneof = _FWBUILDMETRIC.oneofs_by_name['image_type']
_FWBUILDMETRICLIST.fields_by_name['value'].message_type = _FWBUILDMETRIC
_FWTESTMETRICLIST.fields_by_name['value'].message_type = _FWTESTMETRIC
_BUILDALLTOTFIRMWAREREQUEST.fields_by_name['firmware_location'].enum_type = _FWLOCATION
_BUILDALLTOTFIRMWAREREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUILDALLTOTFIRMWARERESPONSE.fields_by_name['metrics'].message_type = _FWBUILDMETRICLIST
_TESTALLTOTFIRMWAREREQUEST.fields_by_name['firmware_location'].enum_type = _FWLOCATION
_TESTALLTOTFIRMWAREREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_TESTALLTOTFIRMWARERESPONSE.fields_by_name['metrics'].message_type = _FWTESTMETRICLIST
_BUILDALLFIRMWAREREQUEST.fields_by_name['firmware_location'].enum_type = chromiumos_dot_common__pb2._FWLOCATION
_BUILDALLFIRMWAREREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUILDALLFIRMWARERESPONSE.fields_by_name['metrics'].message_type = _FWBUILDMETRICLIST
_TESTALLFIRMWAREREQUEST.fields_by_name['firmware_location'].enum_type = chromiumos_dot_common__pb2._FWLOCATION
_TESTALLFIRMWAREREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_TESTALLFIRMWARERESPONSE.fields_by_name['metrics'].message_type = _FWTESTMETRICLIST
_BUNDLEFIRMWAREARTIFACTSREQUEST.fields_by_name['firmware_location'].enum_type = chromiumos_dot_common__pb2._FWLOCATION
_BUNDLEFIRMWAREARTIFACTSREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUNDLEFIRMWAREARTIFACTSREQUEST.fields_by_name['result_path'].message_type = chromiumos_dot_common__pb2._RESULTPATH
_BUNDLEFIRMWAREARTIFACTSREQUEST.fields_by_name['artifacts'].message_type = chromiumos_dot_common__pb2._ARTIFACTSBYSERVICE_FIRMWARE
_BUNDLEFIRMWAREARTIFACTSRESPONSE.fields_by_name['artifacts'].message_type = chromiumos_dot_common__pb2._UPLOADEDARTIFACTSBYSERVICE_FIRMWARE
DESCRIPTOR.message_types_by_name['FwBuildMetric'] = _FWBUILDMETRIC
DESCRIPTOR.message_types_by_name['FwBuildMetricList'] = _FWBUILDMETRICLIST
DESCRIPTOR.message_types_by_name['FwTestMetric'] = _FWTESTMETRIC
DESCRIPTOR.message_types_by_name['FwTestMetricList'] = _FWTESTMETRICLIST
DESCRIPTOR.message_types_by_name['BuildAllTotFirmwareRequest'] = _BUILDALLTOTFIRMWAREREQUEST
DESCRIPTOR.message_types_by_name['BuildAllTotFirmwareResponse'] = _BUILDALLTOTFIRMWARERESPONSE
DESCRIPTOR.message_types_by_name['TestAllTotFirmwareRequest'] = _TESTALLTOTFIRMWAREREQUEST
DESCRIPTOR.message_types_by_name['TestAllTotFirmwareResponse'] = _TESTALLTOTFIRMWARERESPONSE
DESCRIPTOR.message_types_by_name['BuildAllFirmwareRequest'] = _BUILDALLFIRMWAREREQUEST
DESCRIPTOR.message_types_by_name['BuildAllFirmwareResponse'] = _BUILDALLFIRMWARERESPONSE
DESCRIPTOR.message_types_by_name['TestAllFirmwareRequest'] = _TESTALLFIRMWAREREQUEST
DESCRIPTOR.message_types_by_name['TestAllFirmwareResponse'] = _TESTALLFIRMWARERESPONSE
DESCRIPTOR.message_types_by_name['BundleFirmwareArtifactsRequest'] = _BUNDLEFIRMWAREARTIFACTSREQUEST
DESCRIPTOR.message_types_by_name['BundleFirmwareArtifactsResponse'] = _BUNDLEFIRMWAREARTIFACTSRESPONSE
DESCRIPTOR.enum_types_by_name['FwLocation'] = _FWLOCATION
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

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

  FwSection = _reflection.GeneratedProtocolMessageType('FwSection', (_message.Message,), dict(
    DESCRIPTOR = _FWBUILDMETRIC_FWSECTION,
    __module__ = 'chromite.api.firmware_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.FwBuildMetric.FwSection)
    ))
  ,

  Version = _reflection.GeneratedProtocolMessageType('Version', (_message.Message,), dict(
    DESCRIPTOR = _FWBUILDMETRIC_VERSION,
    __module__ = 'chromite.api.firmware_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.FwBuildMetric.Version)
    ))
  ,

  ZephyrTarget = _reflection.GeneratedProtocolMessageType('ZephyrTarget', (_message.Message,), dict(
    DESCRIPTOR = _FWBUILDMETRIC_ZEPHYRTARGET,
    __module__ = 'chromite.api.firmware_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.FwBuildMetric.ZephyrTarget)
    ))
  ,
  DESCRIPTOR = _FWBUILDMETRIC,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.FwBuildMetric)
  ))
_sym_db.RegisterMessage(FwBuildMetric)
_sym_db.RegisterMessage(FwBuildMetric.FwSection)
_sym_db.RegisterMessage(FwBuildMetric.Version)
_sym_db.RegisterMessage(FwBuildMetric.ZephyrTarget)

FwBuildMetricList = _reflection.GeneratedProtocolMessageType('FwBuildMetricList', (_message.Message,), dict(
  DESCRIPTOR = _FWBUILDMETRICLIST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.FwBuildMetricList)
  ))
_sym_db.RegisterMessage(FwBuildMetricList)

FwTestMetric = _reflection.GeneratedProtocolMessageType('FwTestMetric', (_message.Message,), dict(
  DESCRIPTOR = _FWTESTMETRIC,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.FwTestMetric)
  ))
_sym_db.RegisterMessage(FwTestMetric)

FwTestMetricList = _reflection.GeneratedProtocolMessageType('FwTestMetricList', (_message.Message,), dict(
  DESCRIPTOR = _FWTESTMETRICLIST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.FwTestMetricList)
  ))
_sym_db.RegisterMessage(FwTestMetricList)

BuildAllTotFirmwareRequest = _reflection.GeneratedProtocolMessageType('BuildAllTotFirmwareRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUILDALLTOTFIRMWAREREQUEST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BuildAllTotFirmwareRequest)
  ))
_sym_db.RegisterMessage(BuildAllTotFirmwareRequest)

BuildAllTotFirmwareResponse = _reflection.GeneratedProtocolMessageType('BuildAllTotFirmwareResponse', (_message.Message,), dict(
  DESCRIPTOR = _BUILDALLTOTFIRMWARERESPONSE,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BuildAllTotFirmwareResponse)
  ))
_sym_db.RegisterMessage(BuildAllTotFirmwareResponse)

TestAllTotFirmwareRequest = _reflection.GeneratedProtocolMessageType('TestAllTotFirmwareRequest', (_message.Message,), dict(
  DESCRIPTOR = _TESTALLTOTFIRMWAREREQUEST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.TestAllTotFirmwareRequest)
  ))
_sym_db.RegisterMessage(TestAllTotFirmwareRequest)

TestAllTotFirmwareResponse = _reflection.GeneratedProtocolMessageType('TestAllTotFirmwareResponse', (_message.Message,), dict(
  DESCRIPTOR = _TESTALLTOTFIRMWARERESPONSE,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.TestAllTotFirmwareResponse)
  ))
_sym_db.RegisterMessage(TestAllTotFirmwareResponse)

BuildAllFirmwareRequest = _reflection.GeneratedProtocolMessageType('BuildAllFirmwareRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUILDALLFIRMWAREREQUEST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BuildAllFirmwareRequest)
  ))
_sym_db.RegisterMessage(BuildAllFirmwareRequest)

BuildAllFirmwareResponse = _reflection.GeneratedProtocolMessageType('BuildAllFirmwareResponse', (_message.Message,), dict(
  DESCRIPTOR = _BUILDALLFIRMWARERESPONSE,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BuildAllFirmwareResponse)
  ))
_sym_db.RegisterMessage(BuildAllFirmwareResponse)

TestAllFirmwareRequest = _reflection.GeneratedProtocolMessageType('TestAllFirmwareRequest', (_message.Message,), dict(
  DESCRIPTOR = _TESTALLFIRMWAREREQUEST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.TestAllFirmwareRequest)
  ))
_sym_db.RegisterMessage(TestAllFirmwareRequest)

TestAllFirmwareResponse = _reflection.GeneratedProtocolMessageType('TestAllFirmwareResponse', (_message.Message,), dict(
  DESCRIPTOR = _TESTALLFIRMWARERESPONSE,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.TestAllFirmwareResponse)
  ))
_sym_db.RegisterMessage(TestAllFirmwareResponse)

BundleFirmwareArtifactsRequest = _reflection.GeneratedProtocolMessageType('BundleFirmwareArtifactsRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLEFIRMWAREARTIFACTSREQUEST,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleFirmwareArtifactsRequest)
  ))
_sym_db.RegisterMessage(BundleFirmwareArtifactsRequest)

BundleFirmwareArtifactsResponse = _reflection.GeneratedProtocolMessageType('BundleFirmwareArtifactsResponse', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLEFIRMWAREARTIFACTSRESPONSE,
  __module__ = 'chromite.api.firmware_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleFirmwareArtifactsResponse)
  ))
_sym_db.RegisterMessage(BundleFirmwareArtifactsResponse)


DESCRIPTOR._options = None

_FIRMWARESERVICE = _descriptor.ServiceDescriptor(
  name='FirmwareService',
  full_name='chromite.api.FirmwareService',
  file=DESCRIPTOR,
  index=0,
  serialized_options=_b('\302\355\032\014\n\010firmware\020\001'),
  serialized_start=2003,
  serialized_end=2566,
  methods=[
  _descriptor.MethodDescriptor(
    name='BuildAllTotFirmware',
    full_name='chromite.api.FirmwareService.BuildAllTotFirmware',
    index=0,
    containing_service=None,
    input_type=_BUILDALLTOTFIRMWAREREQUEST,
    output_type=_BUILDALLTOTFIRMWARERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='TestAllTotFirmware',
    full_name='chromite.api.FirmwareService.TestAllTotFirmware',
    index=1,
    containing_service=None,
    input_type=_TESTALLTOTFIRMWAREREQUEST,
    output_type=_TESTALLTOTFIRMWARERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BuildAllFirmware',
    full_name='chromite.api.FirmwareService.BuildAllFirmware',
    index=2,
    containing_service=None,
    input_type=_BUILDALLFIRMWAREREQUEST,
    output_type=_BUILDALLFIRMWARERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='TestAllFirmware',
    full_name='chromite.api.FirmwareService.TestAllFirmware',
    index=3,
    containing_service=None,
    input_type=_TESTALLFIRMWAREREQUEST,
    output_type=_TESTALLFIRMWARERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleFirmwareArtifacts',
    full_name='chromite.api.FirmwareService.BundleFirmwareArtifacts',
    index=4,
    containing_service=None,
    input_type=_BUNDLEFIRMWAREARTIFACTSREQUEST,
    output_type=_BUNDLEFIRMWAREARTIFACTSRESPONSE,
    serialized_options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_FIRMWARESERVICE)

DESCRIPTOR.services_by_name['FirmwareService'] = _FIRMWARESERVICE

# @@protoc_insertion_point(module_scope)
