# -*- coding: utf-8 -*-
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromite/api/packages.proto
"""Generated protocol buffer code."""
from chromite.third_party.google.protobuf.internal import builder as _builder
from chromite.third_party.google.protobuf import descriptor as _descriptor
from chromite.third_party.google.protobuf import descriptor_pool as _descriptor_pool
from chromite.third_party.google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from chromite.api.gen.chromite.api import binhost_pb2 as chromite_dot_api_dot_binhost__pb2
from chromite.api.gen.chromite.api import build_api_pb2 as chromite_dot_api_dot_build__api__pb2
from chromite.api.gen.chromite.api import sysroot_pb2 as chromite_dot_api_dot_sysroot__pb2
from chromite.api.gen.chromiumos import common_pb2 as chromiumos_dot_common__pb2


DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(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\"\xef\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\x12\x16\n\x0elacros_version\x18\x08 \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\"\xd0\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\x12\x1f\n\x17ignore_missing_projects\x18\x05 \x01(\x08\"\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\"\xd1\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\x12\x1e\n\x16\x61\x64\x64itional_commit_info\x18\x04 \x01(\t\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.UprevPackagesResponse\"\x16\n\x14RevBumpChromeRequest2\xcf\t\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\x12h\n\rRevBumpChrome\x12\".chromite.api.RevBumpChromeRequest\x1a+.chromite.api.UprevVersionedPackageResponse\"\x06\xc2\xed\x1a\x02\x10\x02\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')

_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, globals())
_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'chromite.api.packages_pb2', globals())
if _descriptor._USE_C_DESCRIPTORS == False:

  DESCRIPTOR._options = None
  DESCRIPTOR._serialized_options = b'Z6go.chromium.org/chromiumos/infra/proto/go/chromite/api'
  _PACKAGESERVICE._options = None
  _PACKAGESERVICE._serialized_options = b'\302\355\032\014\n\010packages\020\001'
  _PACKAGESERVICE.methods_by_name['RevBumpChrome']._options = None
  _PACKAGESERVICE.methods_by_name['RevBumpChrome']._serialized_options = b'\302\355\032\002\020\002'
  _PACKAGESERVICE.methods_by_name['Uprev']._options = None
  _PACKAGESERVICE.methods_by_name['Uprev']._serialized_options = b'\302\355\032\002\020\002'
  _PACKAGESERVICE.methods_by_name['UprevVersionedPackage']._options = None
  _PACKAGESERVICE.methods_by_name['UprevVersionedPackage']._serialized_options = b'\302\355\032\002\020\002'
  _BUILDSCHROMEREQUEST._serialized_start=157
  _BUILDSCHROMEREQUEST._serialized_end=304
  _BUILDSCHROMERESPONSE._serialized_start=306
  _BUILDSCHROMERESPONSE._serialized_end=351
  _GETANDROIDMETADATAREQUEST._serialized_start=353
  _GETANDROIDMETADATAREQUEST._serialized_end=463
  _GETANDROIDMETADATARESPONSE._serialized_start=465
  _GETANDROIDMETADATARESPONSE._serialized_end=567
  _GETBESTVISIBLEREQUEST._serialized_start=569
  _GETBESTVISIBLEREQUEST._serialized_end=689
  _GETBESTVISIBLERESPONSE._serialized_start=691
  _GETBESTVISIBLERESPONSE._serialized_end=762
  _GETCHROMEVERSIONREQUEST._serialized_start=764
  _GETCHROMEVERSIONREQUEST._serialized_end=872
  _GETCHROMEVERSIONRESPONSE._serialized_start=874
  _GETCHROMEVERSIONRESPONSE._serialized_end=917
  _GETTARGETVERSIONSREQUEST._serialized_start=920
  _GETTARGETVERSIONSREQUEST._serialized_end=1072
  _GETTARGETVERSIONSRESPONSE._serialized_start=1075
  _GETTARGETVERSIONSRESPONSE._serialized_end=1314
  _GETBUILDERMETADATAREQUEST._serialized_start=1316
  _GETBUILDERMETADATAREQUEST._serialized_end=1426
  _GETBUILDERMETADATARESPONSE._serialized_start=1429
  _GETBUILDERMETADATARESPONSE._serialized_end=2079
  _GETBUILDERMETADATARESPONSE_MODELMETADATA._serialized_start=1633
  _GETBUILDERMETADATARESPONSE_MODELMETADATA._serialized_end=1803
  _GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA._serialized_start=1806
  _GETBUILDERMETADATARESPONSE_BUILDTARGETMETADATA._serialized_end=2079
  _HASCHROMEPREBUILTREQUEST._serialized_start=2081
  _HASCHROMEPREBUILTREQUEST._serialized_end=2206
  _HASCHROMEPREBUILTRESPONSE._serialized_start=2208
  _HASCHROMEPREBUILTRESPONSE._serialized_end=2257
  _NEEDSCHROMESOURCEREQUEST._serialized_start=2259
  _NEEDSCHROMESOURCEREQUEST._serialized_end=2384
  _NEEDSCHROMESOURCERESPONSE._serialized_start=2387
  _NEEDSCHROMESOURCERESPONSE._serialized_end=2684
  _NEEDSCHROMESOURCERESPONSE_REASON._serialized_start=2576
  _NEEDSCHROMESOURCERESPONSE_REASON._serialized_end=2684
  _HASPREBUILTREQUEST._serialized_start=2687
  _HASPREBUILTREQUEST._serialized_end=2853
  _HASPREBUILTRESPONSE._serialized_start=2855
  _HASPREBUILTRESPONSE._serialized_end=2898
  _UPREVPACKAGESREQUEST._serialized_start=2901
  _UPREVPACKAGESREQUEST._serialized_end=3109
  _UPREVVERSIONEDPACKAGEREQUEST._serialized_start=3112
  _UPREVVERSIONEDPACKAGEREQUEST._serialized_end=3403
  _UPREVVERSIONEDPACKAGEREQUEST_GITREF._serialized_start=3344
  _UPREVVERSIONEDPACKAGEREQUEST_GITREF._serialized_end=3403
  _UPREVPACKAGESRESPONSE._serialized_start=3406
  _UPREVPACKAGESRESPONSE._serialized_end=3615
  _UPREVPACKAGESRESPONSE_EBUILD._serialized_start=3593
  _UPREVPACKAGESRESPONSE_EBUILD._serialized_end=3615
  _UPREVVERSIONEDPACKAGERESPONSE._serialized_start=3617
  _UPREVVERSIONEDPACKAGERESPONSE._serialized_end=3704
  _REVBUMPCHROMEREQUEST._serialized_start=3706
  _REVBUMPCHROMEREQUEST._serialized_end=3728
  _PACKAGESERVICE._serialized_start=3731
  _PACKAGESERVICE._serialized_end=4962
# @@protoc_insertion_point(module_scope)
