# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromite/api/packages.proto

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_sdk.chromite.api import binhost_pb2 as chromite_dot_api_dot_binhost__pb2
from chromite.api.gen_sdk.chromite.api import build_api_pb2 as chromite_dot_api_dot_build__api__pb2
from chromite.api.gen_sdk.chromite.api import sysroot_pb2 as chromite_dot_api_dot_sysroot__pb2
from chromite.api.gen_sdk.chromiumos import common_pb2 as chromiumos_dot_common__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='chromite/api/packages.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/packages.proto\x12\x0c\x63hromite.api\x1a\x1a\x63hromite/api/binhost.proto\x1a\x1c\x63hromite/api/build_api.proto\x1a\x1a\x63hromite/api/sysroot.proto\x1a\x17\x63hromiumos/common.proto\"\x93\x01\n\x13\x42uildsChromeRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12)\n\x08packages\x18\x03 \x03(\x0b\x32\x17.chromiumos.PackageInfo\"-\n\x14\x42uildsChromeResponse\x12\x15\n\rbuilds_chrome\x18\x01 \x01(\x08\"n\n\x19GetAndroidMetadataRequest\x12-\n\x0c\x62uild_target\x18\x01 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\"f\n\x1aGetAndroidMetadataResponse\x12\x17\n\x0f\x61ndroid_package\x18\x01 \x01(\t\x12\x16\n\x0e\x61ndroid_branch\x18\x02 \x01(\t\x12\x17\n\x0f\x61ndroid_version\x18\x03 \x01(\t\"x\n\x15GetBestVisibleRequest\x12\x0c\n\x04\x61tom\x18\x01 \x01(\t\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x03 \x01(\x0b\x32\x17.chromiumos.BuildTarget\"G\n\x16GetBestVisibleResponse\x12-\n\x0cpackage_info\x18\x01 \x01(\x0b\x32\x17.chromiumos.PackageInfo\"l\n\x17GetChromeVersionRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\"+\n\x18GetChromeVersionResponse\x12\x0f\n\x07version\x18\x01 \x01(\t\"\x98\x01\n\x18GetTargetVersionsRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12)\n\x08packages\x18\x03 \x03(\x0b\x32\x17.chromiumos.PackageInfo\"\xd7\x01\n\x19GetTargetVersionsResponse\x12\x17\n\x0f\x61ndroid_version\x18\x01 \x01(\t\x12\x1e\n\x16\x61ndroid_branch_version\x18\x02 \x01(\t\x12\x1e\n\x16\x61ndroid_target_version\x18\x03 \x01(\t\x12\x16\n\x0e\x63hrome_version\x18\x04 \x01(\t\x12\x14\n\x0c\x66ull_version\x18\x05 \x01(\t\x12\x19\n\x11milestone_version\x18\x06 \x01(\t\x12\x18\n\x10platform_version\x18\x07 \x01(\t\"n\n\x19GetBuilderMetadataRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\"\x8a\x05\n\x1aGetBuilderMetadataResponse\x12[\n\x15\x62uild_target_metadata\x18\x01 \x03(\x0b\x32<.chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata\x12N\n\x0emodel_metadata\x18\x02 \x03(\x0b\x32\x36.chromite.api.GetBuilderMetadataResponse.ModelMetadata\x1a\xaa\x01\n\rModelMetadata\x12\x12\n\nmodel_name\x18\x01 \x01(\t\x12\x1b\n\x13\x65\x63_firmware_version\x18\x02 \x01(\t\x12\x17\n\x0f\x66irmware_key_id\x18\x03 \x01(\t\x12&\n\x1emain_readonly_firmware_version\x18\x04 \x01(\t\x12\'\n\x1fmain_readwrite_firmware_version\x18\x05 \x01(\t\x1a\x91\x02\n\x13\x42uildTargetMetadata\x12\x14\n\x0c\x62uild_target\x18\x01 \x01(\t\x12 \n\x18\x61ndroid_container_branch\x18\x02 \x01(\t\x12 \n\x18\x61ndroid_container_target\x18\x03 \x01(\t\x12!\n\x19\x61ndroid_container_version\x18\x04 \x01(\t\x12\x13\n\x0b\x61rc_use_set\x18\x05 \x01(\x08\x12\x1b\n\x13\x65\x63_firmware_version\x18\x06 \x01(\t\x12\x14\n\x0c\x66ingerprints\x18\x07 \x03(\t\x12\x16\n\x0ekernel_version\x18\x08 \x01(\t\x12\x1d\n\x15main_firmware_version\x18\t \x01(\t\"}\n\x18HasChromePrebuiltRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\x0e\n\x06\x63hrome\x18\x03 \x01(\x08\"1\n\x19HasChromePrebuiltResponse\x12\x14\n\x0chas_prebuilt\x18\x01 \x01(\x08\"}\n\x18NeedsChromeSourceRequest\x12=\n\x0finstall_request\x18\x01 \x01(\x0b\x32$.chromite.api.InstallPackagesRequest\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\"\xa9\x02\n\x19NeedsChromeSourceResponse\x12\x1b\n\x13needs_chrome_source\x18\x01 \x01(\x08\x12?\n\x07reasons\x18\x02 \x03(\x0e\x32..chromite.api.NeedsChromeSourceResponse.Reason\x12)\n\x08packages\x18\x03 \x03(\x0b\x32\x17.chromiumos.PackageInfo\x12\x15\n\rbuilds_chrome\x18\x04 \x01(\x08\"l\n\x06Reason\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\x0f\n\x0bNO_PREBUILT\x10\x01\x12\x12\n\x0e\x43OMPILE_SOURCE\x10\x02\x12\x0f\n\x0bLOCAL_UPREV\x10\x03\x12\x1b\n\x17\x46OLLOWER_LACKS_PREBUILT\x10\x04\"\xa6\x01\n\x12HasPrebuiltRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0c\x62uild_target\x18\x02 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\x0e\n\x06\x63hrome\x18\x03 \x01(\x08\x12-\n\x0cpackage_info\x18\x04 \x01(\x0b\x32\x17.chromiumos.PackageInfo\"+\n\x13HasPrebuiltResponse\x12\x14\n\x0chas_prebuilt\x18\x01 \x01(\x08\"\xaf\x01\n\x14UprevPackagesRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12.\n\rbuild_targets\x18\x02 \x03(\x0b\x32\x17.chromiumos.BuildTarget\x12/\n\x0coverlay_type\x18\x03 \x01(\x0e\x32\x19.chromite.api.OverlayType\x12\x12\n\noutput_dir\x18\x04 \x01(\t\"\xa3\x02\n\x1cUprevVersionedPackageRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12-\n\x0cpackage_info\x18\x02 \x01(\x0b\x32\x17.chromiumos.PackageInfo\x12\x43\n\x08versions\x18\x03 \x03(\x0b\x32\x31.chromite.api.UprevVersionedPackageRequest.GitRef\x12.\n\rbuild_targets\x18\x04 \x03(\x0b\x32\x17.chromiumos.BuildTarget\x1a;\n\x06GitRef\x12\x12\n\nrepository\x18\x01 \x01(\t\x12\x0b\n\x03ref\x18\x02 \x01(\t\x12\x10\n\x08revision\x18\x03 \x01(\t\"\xb1\x01\n\x15UprevPackagesResponse\x12\x44\n\x10modified_ebuilds\x18\x01 \x03(\x0b\x32*.chromite.api.UprevPackagesResponse.Ebuild\x12\x0f\n\x07version\x18\x02 \x01(\t\x12)\n\x08packages\x18\x03 \x03(\x0b\x32\x17.chromiumos.PackageInfo\x1a\x16\n\x06\x45\x62uild\x12\x0c\n\x04path\x18\x01 \x01(\t\"W\n\x1dUprevVersionedPackageResponse\x12\x36\n\tresponses\x18\x01 \x03(\x0b\x32#.chromite.api.UprevPackagesResponse2\xe5\x08\n\x0ePackageService\x12U\n\x0c\x42uildsChrome\x12!.chromite.api.BuildsChromeRequest\x1a\".chromite.api.BuildsChromeResponse\x12g\n\x12GetAndroidMetadata\x12\'.chromite.api.GetAndroidMetadataRequest\x1a(.chromite.api.GetAndroidMetadataResponse\x12[\n\x0eGetBestVisible\x12#.chromite.api.GetBestVisibleRequest\x1a$.chromite.api.GetBestVisibleResponse\x12\x61\n\x10GetChromeVersion\x12%.chromite.api.GetChromeVersionRequest\x1a&.chromite.api.GetChromeVersionResponse\x12\x64\n\x11GetTargetVersions\x12&.chromite.api.GetTargetVersionsRequest\x1a\'.chromite.api.GetTargetVersionsResponse\x12g\n\x12GetBuilderMetadata\x12\'.chromite.api.GetBuilderMetadataRequest\x1a(.chromite.api.GetBuilderMetadataResponse\x12\x64\n\x11HasChromePrebuilt\x12&.chromite.api.HasChromePrebuiltRequest\x1a\'.chromite.api.HasChromePrebuiltResponse\x12R\n\x0bHasPrebuilt\x12 .chromite.api.HasPrebuiltRequest\x1a!.chromite.api.HasPrebuiltResponse\x12\x64\n\x11NeedsChromeSource\x12&.chromite.api.NeedsChromeSourceRequest\x1a\'.chromite.api.NeedsChromeSourceResponse\x12X\n\x05Uprev\x12\".chromite.api.UprevPackagesRequest\x1a#.chromite.api.UprevPackagesResponse\"\x06\xc2\xed\x1a\x02\x10\x02\x12x\n\x15UprevVersionedPackage\x12*.chromite.api.UprevVersionedPackageRequest\x1a+.chromite.api.UprevVersionedPackageResponse\"\x06\xc2\xed\x1a\x02\x10\x02\x1a\x10\xc2\xed\x1a\x0c\n\x08packages\x10\x01\x42\x38Z6go.chromium.org/chromiumos/infra/proto/go/chromite/apib\x06proto3'
  ,
  dependencies=[chromite_dot_api_dot_binhost__pb2.DESCRIPTOR,chromite_dot_api_dot_build__api__pb2.DESCRIPTOR,chromite_dot_api_dot_sysroot__pb2.DESCRIPTOR,chromiumos_dot_common__pb2.DESCRIPTOR,])



_NEEDSCHROMESOURCERESPONSE_REASON = _descriptor.EnumDescriptor(
  name='Reason',
  full_name='chromite.api.NeedsChromeSourceResponse.Reason',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NO_PREBUILT', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COMPILE_SOURCE', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LOCAL_UPREV', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FOLLOWER_LACKS_PREBUILT', index=4, number=4,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2552,
  serialized_end=2660,
)
_sym_db.RegisterEnumDescriptor(_NEEDSCHROMESOURCERESPONSE_REASON)


_BUILDSCHROMEREQUEST = _descriptor.Descriptor(
  name='BuildsChromeRequest',
  full_name='chromite.api.BuildsChromeRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.BuildsChromeRequest.chroot', 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='build_target', full_name='chromite.api.BuildsChromeRequest.build_target', 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='packages', full_name='chromite.api.BuildsChromeRequest.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=157,
  serialized_end=304,
)


_BUILDSCHROMERESPONSE = _descriptor.Descriptor(
  name='BuildsChromeResponse',
  full_name='chromite.api.BuildsChromeResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='builds_chrome', full_name='chromite.api.BuildsChromeResponse.builds_chrome', 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=306,
  serialized_end=351,
)


_GETANDROIDMETADATAREQUEST = _descriptor.Descriptor(
  name='GetAndroidMetadataRequest',
  full_name='chromite.api.GetAndroidMetadataRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='chromite.api.GetAndroidMetadataRequest.build_target', 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='chroot', full_name='chromite.api.GetAndroidMetadataRequest.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=353,
  serialized_end=463,
)


_GETANDROIDMETADATARESPONSE = _descriptor.Descriptor(
  name='GetAndroidMetadataResponse',
  full_name='chromite.api.GetAndroidMetadataResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='android_package', full_name='chromite.api.GetAndroidMetadataResponse.android_package', 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='android_branch', full_name='chromite.api.GetAndroidMetadataResponse.android_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='android_version', full_name='chromite.api.GetAndroidMetadataResponse.android_version', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=465,
  serialized_end=567,
)


_GETBESTVISIBLEREQUEST = _descriptor.Descriptor(
  name='GetBestVisibleRequest',
  full_name='chromite.api.GetBestVisibleRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='atom', full_name='chromite.api.GetBestVisibleRequest.atom', 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='chroot', full_name='chromite.api.GetBestVisibleRequest.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='build_target', full_name='chromite.api.GetBestVisibleRequest.build_target', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=569,
  serialized_end=689,
)


_GETBESTVISIBLERESPONSE = _descriptor.Descriptor(
  name='GetBestVisibleResponse',
  full_name='chromite.api.GetBestVisibleResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='package_info', full_name='chromite.api.GetBestVisibleResponse.package_info', 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=691,
  serialized_end=762,
)


_GETCHROMEVERSIONREQUEST = _descriptor.Descriptor(
  name='GetChromeVersionRequest',
  full_name='chromite.api.GetChromeVersionRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.GetChromeVersionRequest.chroot', 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='build_target', full_name='chromite.api.GetChromeVersionRequest.build_target', 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=764,
  serialized_end=872,
)


_GETCHROMEVERSIONRESPONSE = _descriptor.Descriptor(
  name='GetChromeVersionResponse',
  full_name='chromite.api.GetChromeVersionResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='version', full_name='chromite.api.GetChromeVersionResponse.version', 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=874,
  serialized_end=917,
)


_GETTARGETVERSIONSREQUEST = _descriptor.Descriptor(
  name='GetTargetVersionsRequest',
  full_name='chromite.api.GetTargetVersionsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.GetTargetVersionsRequest.chroot', 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='build_target', full_name='chromite.api.GetTargetVersionsRequest.build_target', 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='packages', full_name='chromite.api.GetTargetVersionsRequest.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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=920,
  serialized_end=1072,
)


_GETTARGETVERSIONSRESPONSE = _descriptor.Descriptor(
  name='GetTargetVersionsResponse',
  full_name='chromite.api.GetTargetVersionsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='android_version', full_name='chromite.api.GetTargetVersionsResponse.android_version', 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='android_branch_version', full_name='chromite.api.GetTargetVersionsResponse.android_branch_version', 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='android_target_version', full_name='chromite.api.GetTargetVersionsResponse.android_target_version', 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='chrome_version', full_name='chromite.api.GetTargetVersionsResponse.chrome_version', 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='full_version', full_name='chromite.api.GetTargetVersionsResponse.full_version', index=4,
      number=5, 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='milestone_version', full_name='chromite.api.GetTargetVersionsResponse.milestone_version', index=5,
      number=6, 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_version', full_name='chromite.api.GetTargetVersionsResponse.platform_version', index=6,
      number=7, 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=1075,
  serialized_end=1290,
)


_GETBUILDERMETADATAREQUEST = _descriptor.Descriptor(
  name='GetBuilderMetadataRequest',
  full_name='chromite.api.GetBuilderMetadataRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.GetBuilderMetadataRequest.chroot', 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='build_target', full_name='chromite.api.GetBuilderMetadataRequest.build_target', 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=1292,
  serialized_end=1402,
)


_GETBUILDERMETADATARESPONSE_MODELMETADATA = _descriptor.Descriptor(
  name='ModelMetadata',
  full_name='chromite.api.GetBuilderMetadataResponse.ModelMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='model_name', full_name='chromite.api.GetBuilderMetadataResponse.ModelMetadata.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),
    _descriptor.FieldDescriptor(
      name='ec_firmware_version', full_name='chromite.api.GetBuilderMetadataResponse.ModelMetadata.ec_firmware_version', 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='firmware_key_id', full_name='chromite.api.GetBuilderMetadataResponse.ModelMetadata.firmware_key_id', 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='main_readonly_firmware_version', full_name='chromite.api.GetBuilderMetadataResponse.ModelMetadata.main_readonly_firmware_version', 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='main_readwrite_firmware_version', full_name='chromite.api.GetBuilderMetadataResponse.ModelMetadata.main_readwrite_firmware_version', index=4,
      number=5, 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=1609,
  serialized_end=1779,
)

_GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA = _descriptor.Descriptor(
  name='BuildTargetMetadata',
  full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.build_target', 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='android_container_branch', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.android_container_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='android_container_target', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.android_container_target', 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='android_container_version', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.android_container_version', 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='arc_use_set', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.arc_use_set', index=4,
      number=5, 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='ec_firmware_version', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.ec_firmware_version', index=5,
      number=6, 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='fingerprints', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.fingerprints', index=6,
      number=7, 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='kernel_version', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.kernel_version', index=7,
      number=8, 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='main_firmware_version', full_name='chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata.main_firmware_version', index=8,
      number=9, 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=1782,
  serialized_end=2055,
)

_GETBUILDERMETADATARESPONSE = _descriptor.Descriptor(
  name='GetBuilderMetadataResponse',
  full_name='chromite.api.GetBuilderMetadataResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target_metadata', full_name='chromite.api.GetBuilderMetadataResponse.build_target_metadata', 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='model_metadata', full_name='chromite.api.GetBuilderMetadataResponse.model_metadata', 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),
  ],
  extensions=[
  ],
  nested_types=[_GETBUILDERMETADATARESPONSE_MODELMETADATA, _GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1405,
  serialized_end=2055,
)


_HASCHROMEPREBUILTREQUEST = _descriptor.Descriptor(
  name='HasChromePrebuiltRequest',
  full_name='chromite.api.HasChromePrebuiltRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.HasChromePrebuiltRequest.chroot', 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='build_target', full_name='chromite.api.HasChromePrebuiltRequest.build_target', 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='chrome', full_name='chromite.api.HasChromePrebuiltRequest.chrome', index=2,
      number=3, 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=2057,
  serialized_end=2182,
)


_HASCHROMEPREBUILTRESPONSE = _descriptor.Descriptor(
  name='HasChromePrebuiltResponse',
  full_name='chromite.api.HasChromePrebuiltResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='has_prebuilt', full_name='chromite.api.HasChromePrebuiltResponse.has_prebuilt', 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=2184,
  serialized_end=2233,
)


_NEEDSCHROMESOURCEREQUEST = _descriptor.Descriptor(
  name='NeedsChromeSourceRequest',
  full_name='chromite.api.NeedsChromeSourceRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='install_request', full_name='chromite.api.NeedsChromeSourceRequest.install_request', 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='chroot', full_name='chromite.api.NeedsChromeSourceRequest.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=2235,
  serialized_end=2360,
)


_NEEDSCHROMESOURCERESPONSE = _descriptor.Descriptor(
  name='NeedsChromeSourceResponse',
  full_name='chromite.api.NeedsChromeSourceResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='needs_chrome_source', full_name='chromite.api.NeedsChromeSourceResponse.needs_chrome_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='reasons', full_name='chromite.api.NeedsChromeSourceResponse.reasons', 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='packages', full_name='chromite.api.NeedsChromeSourceResponse.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='builds_chrome', full_name='chromite.api.NeedsChromeSourceResponse.builds_chrome', 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=[
    _NEEDSCHROMESOURCERESPONSE_REASON,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2363,
  serialized_end=2660,
)


_HASPREBUILTREQUEST = _descriptor.Descriptor(
  name='HasPrebuiltRequest',
  full_name='chromite.api.HasPrebuiltRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.HasPrebuiltRequest.chroot', 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='build_target', full_name='chromite.api.HasPrebuiltRequest.build_target', 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='chrome', full_name='chromite.api.HasPrebuiltRequest.chrome', index=2,
      number=3, 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='package_info', full_name='chromite.api.HasPrebuiltRequest.package_info', 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=2663,
  serialized_end=2829,
)


_HASPREBUILTRESPONSE = _descriptor.Descriptor(
  name='HasPrebuiltResponse',
  full_name='chromite.api.HasPrebuiltResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='has_prebuilt', full_name='chromite.api.HasPrebuiltResponse.has_prebuilt', 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=2831,
  serialized_end=2874,
)


_UPREVPACKAGESREQUEST = _descriptor.Descriptor(
  name='UprevPackagesRequest',
  full_name='chromite.api.UprevPackagesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.UprevPackagesRequest.chroot', 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='build_targets', full_name='chromite.api.UprevPackagesRequest.build_targets', 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),
    _descriptor.FieldDescriptor(
      name='overlay_type', full_name='chromite.api.UprevPackagesRequest.overlay_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),
    _descriptor.FieldDescriptor(
      name='output_dir', full_name='chromite.api.UprevPackagesRequest.output_dir', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2877,
  serialized_end=3052,
)


_UPREVVERSIONEDPACKAGEREQUEST_GITREF = _descriptor.Descriptor(
  name='GitRef',
  full_name='chromite.api.UprevVersionedPackageRequest.GitRef',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='repository', full_name='chromite.api.UprevVersionedPackageRequest.GitRef.repository', 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='ref', full_name='chromite.api.UprevVersionedPackageRequest.GitRef.ref', 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='revision', full_name='chromite.api.UprevVersionedPackageRequest.GitRef.revision', index=2,
      number=3, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=b"".decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3287,
  serialized_end=3346,
)

_UPREVVERSIONEDPACKAGEREQUEST = _descriptor.Descriptor(
  name='UprevVersionedPackageRequest',
  full_name='chromite.api.UprevVersionedPackageRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.UprevVersionedPackageRequest.chroot', 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='package_info', full_name='chromite.api.UprevVersionedPackageRequest.package_info', 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='versions', full_name='chromite.api.UprevVersionedPackageRequest.versions', 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='build_targets', full_name='chromite.api.UprevVersionedPackageRequest.build_targets', index=3,
      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),
  ],
  extensions=[
  ],
  nested_types=[_UPREVVERSIONEDPACKAGEREQUEST_GITREF, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3055,
  serialized_end=3346,
)


_UPREVPACKAGESRESPONSE_EBUILD = _descriptor.Descriptor(
  name='Ebuild',
  full_name='chromite.api.UprevPackagesResponse.Ebuild',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='chromite.api.UprevPackagesResponse.Ebuild.path', 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=3504,
  serialized_end=3526,
)

_UPREVPACKAGESRESPONSE = _descriptor.Descriptor(
  name='UprevPackagesResponse',
  full_name='chromite.api.UprevPackagesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='modified_ebuilds', full_name='chromite.api.UprevPackagesResponse.modified_ebuilds', 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='version', full_name='chromite.api.UprevPackagesResponse.version', 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='packages', full_name='chromite.api.UprevPackagesResponse.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),
  ],
  extensions=[
  ],
  nested_types=[_UPREVPACKAGESRESPONSE_EBUILD, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3349,
  serialized_end=3526,
)


_UPREVVERSIONEDPACKAGERESPONSE = _descriptor.Descriptor(
  name='UprevVersionedPackageResponse',
  full_name='chromite.api.UprevVersionedPackageResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='responses', full_name='chromite.api.UprevVersionedPackageResponse.responses', 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=3528,
  serialized_end=3615,
)

_BUILDSCHROMEREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUILDSCHROMEREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_BUILDSCHROMEREQUEST.fields_by_name['packages'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_GETANDROIDMETADATAREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_GETANDROIDMETADATAREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_GETBESTVISIBLEREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_GETBESTVISIBLEREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_GETBESTVISIBLERESPONSE.fields_by_name['package_info'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_GETCHROMEVERSIONREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_GETCHROMEVERSIONREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_GETTARGETVERSIONSREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_GETTARGETVERSIONSREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_GETTARGETVERSIONSREQUEST.fields_by_name['packages'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_GETBUILDERMETADATAREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_GETBUILDERMETADATAREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_GETBUILDERMETADATARESPONSE_MODELMETADATA.containing_type = _GETBUILDERMETADATARESPONSE
_GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA.containing_type = _GETBUILDERMETADATARESPONSE
_GETBUILDERMETADATARESPONSE.fields_by_name['build_target_metadata'].message_type = _GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA
_GETBUILDERMETADATARESPONSE.fields_by_name['model_metadata'].message_type = _GETBUILDERMETADATARESPONSE_MODELMETADATA
_HASCHROMEPREBUILTREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_HASCHROMEPREBUILTREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_NEEDSCHROMESOURCEREQUEST.fields_by_name['install_request'].message_type = chromite_dot_api_dot_sysroot__pb2._INSTALLPACKAGESREQUEST
_NEEDSCHROMESOURCEREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_NEEDSCHROMESOURCERESPONSE.fields_by_name['reasons'].enum_type = _NEEDSCHROMESOURCERESPONSE_REASON
_NEEDSCHROMESOURCERESPONSE.fields_by_name['packages'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_NEEDSCHROMESOURCERESPONSE_REASON.containing_type = _NEEDSCHROMESOURCERESPONSE
_HASPREBUILTREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_HASPREBUILTREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_HASPREBUILTREQUEST.fields_by_name['package_info'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_UPREVPACKAGESREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_UPREVPACKAGESREQUEST.fields_by_name['build_targets'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_UPREVPACKAGESREQUEST.fields_by_name['overlay_type'].enum_type = chromite_dot_api_dot_binhost__pb2._OVERLAYTYPE
_UPREVVERSIONEDPACKAGEREQUEST_GITREF.containing_type = _UPREVVERSIONEDPACKAGEREQUEST
_UPREVVERSIONEDPACKAGEREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_UPREVVERSIONEDPACKAGEREQUEST.fields_by_name['package_info'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_UPREVVERSIONEDPACKAGEREQUEST.fields_by_name['versions'].message_type = _UPREVVERSIONEDPACKAGEREQUEST_GITREF
_UPREVVERSIONEDPACKAGEREQUEST.fields_by_name['build_targets'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_UPREVPACKAGESRESPONSE_EBUILD.containing_type = _UPREVPACKAGESRESPONSE
_UPREVPACKAGESRESPONSE.fields_by_name['modified_ebuilds'].message_type = _UPREVPACKAGESRESPONSE_EBUILD
_UPREVPACKAGESRESPONSE.fields_by_name['packages'].message_type = chromiumos_dot_common__pb2._PACKAGEINFO
_UPREVVERSIONEDPACKAGERESPONSE.fields_by_name['responses'].message_type = _UPREVPACKAGESRESPONSE
DESCRIPTOR.message_types_by_name['BuildsChromeRequest'] = _BUILDSCHROMEREQUEST
DESCRIPTOR.message_types_by_name['BuildsChromeResponse'] = _BUILDSCHROMERESPONSE
DESCRIPTOR.message_types_by_name['GetAndroidMetadataRequest'] = _GETANDROIDMETADATAREQUEST
DESCRIPTOR.message_types_by_name['GetAndroidMetadataResponse'] = _GETANDROIDMETADATARESPONSE
DESCRIPTOR.message_types_by_name['GetBestVisibleRequest'] = _GETBESTVISIBLEREQUEST
DESCRIPTOR.message_types_by_name['GetBestVisibleResponse'] = _GETBESTVISIBLERESPONSE
DESCRIPTOR.message_types_by_name['GetChromeVersionRequest'] = _GETCHROMEVERSIONREQUEST
DESCRIPTOR.message_types_by_name['GetChromeVersionResponse'] = _GETCHROMEVERSIONRESPONSE
DESCRIPTOR.message_types_by_name['GetTargetVersionsRequest'] = _GETTARGETVERSIONSREQUEST
DESCRIPTOR.message_types_by_name['GetTargetVersionsResponse'] = _GETTARGETVERSIONSRESPONSE
DESCRIPTOR.message_types_by_name['GetBuilderMetadataRequest'] = _GETBUILDERMETADATAREQUEST
DESCRIPTOR.message_types_by_name['GetBuilderMetadataResponse'] = _GETBUILDERMETADATARESPONSE
DESCRIPTOR.message_types_by_name['HasChromePrebuiltRequest'] = _HASCHROMEPREBUILTREQUEST
DESCRIPTOR.message_types_by_name['HasChromePrebuiltResponse'] = _HASCHROMEPREBUILTRESPONSE
DESCRIPTOR.message_types_by_name['NeedsChromeSourceRequest'] = _NEEDSCHROMESOURCEREQUEST
DESCRIPTOR.message_types_by_name['NeedsChromeSourceResponse'] = _NEEDSCHROMESOURCERESPONSE
DESCRIPTOR.message_types_by_name['HasPrebuiltRequest'] = _HASPREBUILTREQUEST
DESCRIPTOR.message_types_by_name['HasPrebuiltResponse'] = _HASPREBUILTRESPONSE
DESCRIPTOR.message_types_by_name['UprevPackagesRequest'] = _UPREVPACKAGESREQUEST
DESCRIPTOR.message_types_by_name['UprevVersionedPackageRequest'] = _UPREVVERSIONEDPACKAGEREQUEST
DESCRIPTOR.message_types_by_name['UprevPackagesResponse'] = _UPREVPACKAGESRESPONSE
DESCRIPTOR.message_types_by_name['UprevVersionedPackageResponse'] = _UPREVVERSIONEDPACKAGERESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

BuildsChromeRequest = _reflection.GeneratedProtocolMessageType('BuildsChromeRequest', (_message.Message,), {
  'DESCRIPTOR' : _BUILDSCHROMEREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BuildsChromeRequest)
  })
_sym_db.RegisterMessage(BuildsChromeRequest)

BuildsChromeResponse = _reflection.GeneratedProtocolMessageType('BuildsChromeResponse', (_message.Message,), {
  'DESCRIPTOR' : _BUILDSCHROMERESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BuildsChromeResponse)
  })
_sym_db.RegisterMessage(BuildsChromeResponse)

GetAndroidMetadataRequest = _reflection.GeneratedProtocolMessageType('GetAndroidMetadataRequest', (_message.Message,), {
  'DESCRIPTOR' : _GETANDROIDMETADATAREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetAndroidMetadataRequest)
  })
_sym_db.RegisterMessage(GetAndroidMetadataRequest)

GetAndroidMetadataResponse = _reflection.GeneratedProtocolMessageType('GetAndroidMetadataResponse', (_message.Message,), {
  'DESCRIPTOR' : _GETANDROIDMETADATARESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetAndroidMetadataResponse)
  })
_sym_db.RegisterMessage(GetAndroidMetadataResponse)

GetBestVisibleRequest = _reflection.GeneratedProtocolMessageType('GetBestVisibleRequest', (_message.Message,), {
  'DESCRIPTOR' : _GETBESTVISIBLEREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetBestVisibleRequest)
  })
_sym_db.RegisterMessage(GetBestVisibleRequest)

GetBestVisibleResponse = _reflection.GeneratedProtocolMessageType('GetBestVisibleResponse', (_message.Message,), {
  'DESCRIPTOR' : _GETBESTVISIBLERESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetBestVisibleResponse)
  })
_sym_db.RegisterMessage(GetBestVisibleResponse)

GetChromeVersionRequest = _reflection.GeneratedProtocolMessageType('GetChromeVersionRequest', (_message.Message,), {
  'DESCRIPTOR' : _GETCHROMEVERSIONREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetChromeVersionRequest)
  })
_sym_db.RegisterMessage(GetChromeVersionRequest)

GetChromeVersionResponse = _reflection.GeneratedProtocolMessageType('GetChromeVersionResponse', (_message.Message,), {
  'DESCRIPTOR' : _GETCHROMEVERSIONRESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetChromeVersionResponse)
  })
_sym_db.RegisterMessage(GetChromeVersionResponse)

GetTargetVersionsRequest = _reflection.GeneratedProtocolMessageType('GetTargetVersionsRequest', (_message.Message,), {
  'DESCRIPTOR' : _GETTARGETVERSIONSREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetTargetVersionsRequest)
  })
_sym_db.RegisterMessage(GetTargetVersionsRequest)

GetTargetVersionsResponse = _reflection.GeneratedProtocolMessageType('GetTargetVersionsResponse', (_message.Message,), {
  'DESCRIPTOR' : _GETTARGETVERSIONSRESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetTargetVersionsResponse)
  })
_sym_db.RegisterMessage(GetTargetVersionsResponse)

GetBuilderMetadataRequest = _reflection.GeneratedProtocolMessageType('GetBuilderMetadataRequest', (_message.Message,), {
  'DESCRIPTOR' : _GETBUILDERMETADATAREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetBuilderMetadataRequest)
  })
_sym_db.RegisterMessage(GetBuilderMetadataRequest)

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

  'ModelMetadata' : _reflection.GeneratedProtocolMessageType('ModelMetadata', (_message.Message,), {
    'DESCRIPTOR' : _GETBUILDERMETADATARESPONSE_MODELMETADATA,
    '__module__' : 'chromite.api.packages_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetBuilderMetadataResponse.ModelMetadata)
    })
  ,

  'BuildTargetMetadata' : _reflection.GeneratedProtocolMessageType('BuildTargetMetadata', (_message.Message,), {
    'DESCRIPTOR' : _GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA,
    '__module__' : 'chromite.api.packages_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetBuilderMetadataResponse.BuildTargetMetadata)
    })
  ,
  'DESCRIPTOR' : _GETBUILDERMETADATARESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetBuilderMetadataResponse)
  })
_sym_db.RegisterMessage(GetBuilderMetadataResponse)
_sym_db.RegisterMessage(GetBuilderMetadataResponse.ModelMetadata)
_sym_db.RegisterMessage(GetBuilderMetadataResponse.BuildTargetMetadata)

HasChromePrebuiltRequest = _reflection.GeneratedProtocolMessageType('HasChromePrebuiltRequest', (_message.Message,), {
  'DESCRIPTOR' : _HASCHROMEPREBUILTREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.HasChromePrebuiltRequest)
  })
_sym_db.RegisterMessage(HasChromePrebuiltRequest)

HasChromePrebuiltResponse = _reflection.GeneratedProtocolMessageType('HasChromePrebuiltResponse', (_message.Message,), {
  'DESCRIPTOR' : _HASCHROMEPREBUILTRESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.HasChromePrebuiltResponse)
  })
_sym_db.RegisterMessage(HasChromePrebuiltResponse)

NeedsChromeSourceRequest = _reflection.GeneratedProtocolMessageType('NeedsChromeSourceRequest', (_message.Message,), {
  'DESCRIPTOR' : _NEEDSCHROMESOURCEREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.NeedsChromeSourceRequest)
  })
_sym_db.RegisterMessage(NeedsChromeSourceRequest)

NeedsChromeSourceResponse = _reflection.GeneratedProtocolMessageType('NeedsChromeSourceResponse', (_message.Message,), {
  'DESCRIPTOR' : _NEEDSCHROMESOURCERESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.NeedsChromeSourceResponse)
  })
_sym_db.RegisterMessage(NeedsChromeSourceResponse)

HasPrebuiltRequest = _reflection.GeneratedProtocolMessageType('HasPrebuiltRequest', (_message.Message,), {
  'DESCRIPTOR' : _HASPREBUILTREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.HasPrebuiltRequest)
  })
_sym_db.RegisterMessage(HasPrebuiltRequest)

HasPrebuiltResponse = _reflection.GeneratedProtocolMessageType('HasPrebuiltResponse', (_message.Message,), {
  'DESCRIPTOR' : _HASPREBUILTRESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.HasPrebuiltResponse)
  })
_sym_db.RegisterMessage(HasPrebuiltResponse)

UprevPackagesRequest = _reflection.GeneratedProtocolMessageType('UprevPackagesRequest', (_message.Message,), {
  'DESCRIPTOR' : _UPREVPACKAGESREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.UprevPackagesRequest)
  })
_sym_db.RegisterMessage(UprevPackagesRequest)

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

  'GitRef' : _reflection.GeneratedProtocolMessageType('GitRef', (_message.Message,), {
    'DESCRIPTOR' : _UPREVVERSIONEDPACKAGEREQUEST_GITREF,
    '__module__' : 'chromite.api.packages_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.UprevVersionedPackageRequest.GitRef)
    })
  ,
  'DESCRIPTOR' : _UPREVVERSIONEDPACKAGEREQUEST,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.UprevVersionedPackageRequest)
  })
_sym_db.RegisterMessage(UprevVersionedPackageRequest)
_sym_db.RegisterMessage(UprevVersionedPackageRequest.GitRef)

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

  'Ebuild' : _reflection.GeneratedProtocolMessageType('Ebuild', (_message.Message,), {
    'DESCRIPTOR' : _UPREVPACKAGESRESPONSE_EBUILD,
    '__module__' : 'chromite.api.packages_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.UprevPackagesResponse.Ebuild)
    })
  ,
  'DESCRIPTOR' : _UPREVPACKAGESRESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.UprevPackagesResponse)
  })
_sym_db.RegisterMessage(UprevPackagesResponse)
_sym_db.RegisterMessage(UprevPackagesResponse.Ebuild)

UprevVersionedPackageResponse = _reflection.GeneratedProtocolMessageType('UprevVersionedPackageResponse', (_message.Message,), {
  'DESCRIPTOR' : _UPREVVERSIONEDPACKAGERESPONSE,
  '__module__' : 'chromite.api.packages_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.UprevVersionedPackageResponse)
  })
_sym_db.RegisterMessage(UprevVersionedPackageResponse)


DESCRIPTOR._options = None

_PACKAGESERVICE = _descriptor.ServiceDescriptor(
  name='PackageService',
  full_name='chromite.api.PackageService',
  file=DESCRIPTOR,
  index=0,
  serialized_options=b'\302\355\032\014\n\010packages\020\001',
  serialized_start=3618,
  serialized_end=4743,
  methods=[
  _descriptor.MethodDescriptor(
    name='BuildsChrome',
    full_name='chromite.api.PackageService.BuildsChrome',
    index=0,
    containing_service=None,
    input_type=_BUILDSCHROMEREQUEST,
    output_type=_BUILDSCHROMERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetAndroidMetadata',
    full_name='chromite.api.PackageService.GetAndroidMetadata',
    index=1,
    containing_service=None,
    input_type=_GETANDROIDMETADATAREQUEST,
    output_type=_GETANDROIDMETADATARESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetBestVisible',
    full_name='chromite.api.PackageService.GetBestVisible',
    index=2,
    containing_service=None,
    input_type=_GETBESTVISIBLEREQUEST,
    output_type=_GETBESTVISIBLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetChromeVersion',
    full_name='chromite.api.PackageService.GetChromeVersion',
    index=3,
    containing_service=None,
    input_type=_GETCHROMEVERSIONREQUEST,
    output_type=_GETCHROMEVERSIONRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetTargetVersions',
    full_name='chromite.api.PackageService.GetTargetVersions',
    index=4,
    containing_service=None,
    input_type=_GETTARGETVERSIONSREQUEST,
    output_type=_GETTARGETVERSIONSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetBuilderMetadata',
    full_name='chromite.api.PackageService.GetBuilderMetadata',
    index=5,
    containing_service=None,
    input_type=_GETBUILDERMETADATAREQUEST,
    output_type=_GETBUILDERMETADATARESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='HasChromePrebuilt',
    full_name='chromite.api.PackageService.HasChromePrebuilt',
    index=6,
    containing_service=None,
    input_type=_HASCHROMEPREBUILTREQUEST,
    output_type=_HASCHROMEPREBUILTRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='HasPrebuilt',
    full_name='chromite.api.PackageService.HasPrebuilt',
    index=7,
    containing_service=None,
    input_type=_HASPREBUILTREQUEST,
    output_type=_HASPREBUILTRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='NeedsChromeSource',
    full_name='chromite.api.PackageService.NeedsChromeSource',
    index=8,
    containing_service=None,
    input_type=_NEEDSCHROMESOURCEREQUEST,
    output_type=_NEEDSCHROMESOURCERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Uprev',
    full_name='chromite.api.PackageService.Uprev',
    index=9,
    containing_service=None,
    input_type=_UPREVPACKAGESREQUEST,
    output_type=_UPREVPACKAGESRESPONSE,
    serialized_options=b'\302\355\032\002\020\002',
  ),
  _descriptor.MethodDescriptor(
    name='UprevVersionedPackage',
    full_name='chromite.api.PackageService.UprevVersionedPackage',
    index=10,
    containing_service=None,
    input_type=_UPREVVERSIONEDPACKAGEREQUEST,
    output_type=_UPREVVERSIONEDPACKAGERESPONSE,
    serialized_options=b'\302\355\032\002\020\002',
  ),
])
_sym_db.RegisterServiceDescriptor(_PACKAGESERVICE)

DESCRIPTOR.services_by_name['PackageService'] = _PACKAGESERVICE

# @@protoc_insertion_point(module_scope)
