# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: chromite/api/toolchain.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 artifacts_pb2 as chromite_dot_api_dot_artifacts__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 builder_config_pb2 as chromiumos_dot_builder__config__pb2
from chromite.api.gen.chromiumos import common_pb2 as chromiumos_dot_common__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='chromite/api/toolchain.proto',
  package='chromite.api',
  syntax='proto3',
  serialized_options=_b('Z6go.chromium.org/chromiumos/infra/proto/go/chromite/api'),
  serialized_pb=_b('\n\x1c\x63hromite/api/toolchain.proto\x12\x0c\x63hromite.api\x1a\x1c\x63hromite/api/artifacts.proto\x1a\x1c\x63hromite/api/build_api.proto\x1a\x1a\x63hromite/api/sysroot.proto\x1a\x1f\x63hromiumos/builder_config.proto\x1a\x17\x63hromiumos/common.proto\"\x83\x01\n\x0c\x41rtifactInfo\x12H\n\rartifact_type\x18\x01 \x01(\x0e\x32\x31.chromiumos.BuilderConfig.Artifacts.ArtifactTypes\x12)\n\tartifacts\x18\x02 \x03(\x0b\x32\x16.chromite.api.Artifact\"\x83\x03\n\x1fPrepareForToolchainBuildRequest\x12I\n\x0e\x61rtifact_types\x18\x01 \x03(\x0e\x32\x31.chromiumos.BuilderConfig.Artifacts.ArtifactTypes\x12\"\n\x06\x63hroot\x18\x02 \x01(\x0b\x32\x12.chromiumos.Chroot\x12&\n\x07sysroot\x18\x03 \x01(\x0b\x32\x15.chromite.api.Sysroot\x12N\n\x0finput_artifacts\x18\x04 \x03(\x0b\x32\x35.chromiumos.BuilderConfig.Artifacts.InputArtifactInfo\x12\x42\n\x0f\x61\x64\x64itional_args\x18\x05 \x01(\x0b\x32).chromiumos.PrepareForBuildAdditionalArgs\x12\x35\n\x0cprofile_info\x18\x06 \x01(\x0b\x32\x1f.chromiumos.ArtifactProfileInfo\"q\n PrepareForToolchainBuildResponse\x12M\n\x0f\x62uild_relevance\x18\x01 \x01(\x0e\x32\x34.chromite.api.PrepareForBuildResponse.BuildRelevance\"\xbe\x02\n\x16\x42undleToolchainRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12&\n\x07sysroot\x18\x02 \x01(\x0b\x32\x15.chromite.api.Sysroot\x12\x12\n\noutput_dir\x18\x03 \x01(\t\x12I\n\x0e\x61rtifact_types\x18\x04 \x03(\x0e\x32\x31.chromiumos.BuilderConfig.Artifacts.ArtifactTypes\x12\x42\n\x0f\x61\x64\x64itional_args\x18\x05 \x01(\x0b\x32).chromiumos.PrepareForBuildAdditionalArgs\x12\x35\n\x0cprofile_info\x18\x06 \x01(\x0b\x32\x1f.chromiumos.ArtifactProfileInfo\"S\n\x17\x42undleToolchainResponse\x12\x32\n\x0e\x61rtifacts_info\x18\x02 \x03(\x0b\x32\x1a.chromite.api.ArtifactInfoJ\x04\x08\x01\x10\x02\"\xeb\x01\n\x16GetUpdatedFilesRequest\x12R\n\x12uploaded_artifacts\x18\x01 \x03(\x0b\x32\x36.chromite.api.GetUpdatedFilesRequest.UploadedArtifacts\x1a}\n\x11UploadedArtifacts\x12\x31\n\rartifact_info\x18\x01 \x01(\x0b\x32\x1a.chromite.api.ArtifactInfo\x12\x35\n\x0cprofile_info\x18\x02 \x01(\x0b\x32\x1f.chromiumos.ArtifactProfileInfo\"\xf4\x03\n\x17GetUpdatedFilesResponse\x12H\n\rupdated_files\x18\x01 \x03(\x0b\x32\x31.chromite.api.GetUpdatedFilesResponse.UpdatedFile\x12\x16\n\x0e\x63ommit_message\x18\x02 \x01(\t\x12I\n\rcommit_footer\x18\x03 \x03(\x0b\x32\x32.chromite.api.GetUpdatedFilesResponse.CommitFooter\x1a\x1b\n\x0bUpdatedFile\x12\x0c\n\x04path\x18\x01 \x01(\t\x1a\x41\n\x0e\x43qDependFooter\x12/\n\rgerrit_change\x18\x01 \x03(\x0b\x32\x18.chromiumos.GerritChange\x1a\x1c\n\rCqClTagFooter\x12\x0b\n\x03tag\x18\x01 \x01(\t\x1a\xad\x01\n\x0c\x43ommitFooter\x12I\n\tcq_depend\x18\x01 \x01(\x0b\x32\x34.chromite.api.GetUpdatedFilesResponse.CqDependFooterH\x00\x12H\n\tcq_cl_tag\x18\x02 \x01(\x0b\x32\x33.chromite.api.GetUpdatedFilesResponse.CqClTagFooterH\x00\x42\x08\n\x06\x66ooter\"\x80\x01\n\x1aVerifyAFDOArtifactsRequest\x12-\n\x0c\x62uild_target\x18\x01 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\x33\n\rartifact_type\x18\x02 \x01(\x0e\x32\x1c.chromiumos.AFDOArtifactType\"-\n\x1bVerifyAFDOArtifactsResponse\x12\x0e\n\x06status\x18\x01 \x01(\x08*f\n\x10\x41\x46\x44OArtifactType\x12\r\n\tNONE_TYPE\x10\x00\x12\r\n\tORDERFILE\x10\x01\x12\x12\n\x0e\x42\x45NCHMARK_AFDO\x10\x02\x12\x0f\n\x0bKERNEL_AFDO\x10\x03\x12\x0f\n\x0b\x43HROME_AFDO\x10\x04\x32\xcf\x04\n\x10ToolchainService\x12|\n\x1dUpdateEbuildWithAFDOArtifacts\x12(.chromite.api.VerifyAFDOArtifactsRequest\x1a).chromite.api.VerifyAFDOArtifactsResponse\"\x06\xc2\xed\x1a\x02\x10\x01\x12x\n\x19UploadVettedAFDOArtifacts\x12(.chromite.api.VerifyAFDOArtifactsRequest\x1a).chromite.api.VerifyAFDOArtifactsResponse\"\x06\xc2\xed\x1a\x02\x10\x01\x12p\n\x0fPrepareForBuild\x12-.chromite.api.PrepareForToolchainBuildRequest\x1a..chromite.api.PrepareForToolchainBuildResponse\x12^\n\x0f\x42undleArtifacts\x12$.chromite.api.BundleToolchainRequest\x1a%.chromite.api.BundleToolchainResponse\x12^\n\x0fGetUpdatedFiles\x12$.chromite.api.GetUpdatedFilesRequest\x1a%.chromite.api.GetUpdatedFilesResponse\x1a\x11\xc2\xed\x1a\r\n\ttoolchain\x10\x02\x42\x38Z6go.chromium.org/chromiumos/infra/proto/go/chromite/apib\x06proto3')
  ,
  dependencies=[chromite_dot_api_dot_artifacts__pb2.DESCRIPTOR,chromite_dot_api_dot_build__api__pb2.DESCRIPTOR,chromite_dot_api_dot_sysroot__pb2.DESCRIPTOR,chromiumos_dot_builder__config__pb2.DESCRIPTOR,chromiumos_dot_common__pb2.DESCRIPTOR,])

_AFDOARTIFACTTYPE = _descriptor.EnumDescriptor(
  name='AFDOArtifactType',
  full_name='chromite.api.AFDOArtifactType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='NONE_TYPE', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ORDERFILE', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='BENCHMARK_AFDO', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='KERNEL_AFDO', index=3, number=3,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CHROME_AFDO', index=4, number=4,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=2156,
  serialized_end=2258,
)
_sym_db.RegisterEnumDescriptor(_AFDOARTIFACTTYPE)

AFDOArtifactType = enum_type_wrapper.EnumTypeWrapper(_AFDOARTIFACTTYPE)
NONE_TYPE = 0
ORDERFILE = 1
BENCHMARK_AFDO = 2
KERNEL_AFDO = 3
CHROME_AFDO = 4



_ARTIFACTINFO = _descriptor.Descriptor(
  name='ArtifactInfo',
  full_name='chromite.api.ArtifactInfo',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_type', full_name='chromite.api.ArtifactInfo.artifact_type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='artifacts', full_name='chromite.api.ArtifactInfo.artifacts', 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=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=193,
  serialized_end=324,
)


_PREPAREFORTOOLCHAINBUILDREQUEST = _descriptor.Descriptor(
  name='PrepareForToolchainBuildRequest',
  full_name='chromite.api.PrepareForToolchainBuildRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_types', full_name='chromite.api.PrepareForToolchainBuildRequest.artifact_types', index=0,
      number=1, type=14, cpp_type=8, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.PrepareForToolchainBuildRequest.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='sysroot', full_name='chromite.api.PrepareForToolchainBuildRequest.sysroot', 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='input_artifacts', full_name='chromite.api.PrepareForToolchainBuildRequest.input_artifacts', 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),
    _descriptor.FieldDescriptor(
      name='additional_args', full_name='chromite.api.PrepareForToolchainBuildRequest.additional_args', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='profile_info', full_name='chromite.api.PrepareForToolchainBuildRequest.profile_info', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=327,
  serialized_end=714,
)


_PREPAREFORTOOLCHAINBUILDRESPONSE = _descriptor.Descriptor(
  name='PrepareForToolchainBuildResponse',
  full_name='chromite.api.PrepareForToolchainBuildResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_relevance', full_name='chromite.api.PrepareForToolchainBuildResponse.build_relevance', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=716,
  serialized_end=829,
)


_BUNDLETOOLCHAINREQUEST = _descriptor.Descriptor(
  name='BundleToolchainRequest',
  full_name='chromite.api.BundleToolchainRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.BundleToolchainRequest.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='sysroot', full_name='chromite.api.BundleToolchainRequest.sysroot', 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='output_dir', full_name='chromite.api.BundleToolchainRequest.output_dir', 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='artifact_types', full_name='chromite.api.BundleToolchainRequest.artifact_types', index=3,
      number=4, 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='additional_args', full_name='chromite.api.BundleToolchainRequest.additional_args', index=4,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
    _descriptor.FieldDescriptor(
      name='profile_info', full_name='chromite.api.BundleToolchainRequest.profile_info', index=5,
      number=6, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=832,
  serialized_end=1150,
)


_BUNDLETOOLCHAINRESPONSE = _descriptor.Descriptor(
  name='BundleToolchainResponse',
  full_name='chromite.api.BundleToolchainResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifacts_info', full_name='chromite.api.BundleToolchainResponse.artifacts_info', index=0,
      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=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1152,
  serialized_end=1235,
)


_GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS = _descriptor.Descriptor(
  name='UploadedArtifacts',
  full_name='chromite.api.GetUpdatedFilesRequest.UploadedArtifacts',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact_info', full_name='chromite.api.GetUpdatedFilesRequest.UploadedArtifacts.artifact_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),
    _descriptor.FieldDescriptor(
      name='profile_info', full_name='chromite.api.GetUpdatedFilesRequest.UploadedArtifacts.profile_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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1348,
  serialized_end=1473,
)

_GETUPDATEDFILESREQUEST = _descriptor.Descriptor(
  name='GetUpdatedFilesRequest',
  full_name='chromite.api.GetUpdatedFilesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='uploaded_artifacts', full_name='chromite.api.GetUpdatedFilesRequest.uploaded_artifacts', 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=[_GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1238,
  serialized_end=1473,
)


_GETUPDATEDFILESRESPONSE_UPDATEDFILE = _descriptor.Descriptor(
  name='UpdatedFile',
  full_name='chromite.api.GetUpdatedFilesResponse.UpdatedFile',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='chromite.api.GetUpdatedFilesResponse.UpdatedFile.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=1676,
  serialized_end=1703,
)

_GETUPDATEDFILESRESPONSE_CQDEPENDFOOTER = _descriptor.Descriptor(
  name='CqDependFooter',
  full_name='chromite.api.GetUpdatedFilesResponse.CqDependFooter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='gerrit_change', full_name='chromite.api.GetUpdatedFilesResponse.CqDependFooter.gerrit_change', 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=1705,
  serialized_end=1770,
)

_GETUPDATEDFILESRESPONSE_CQCLTAGFOOTER = _descriptor.Descriptor(
  name='CqClTagFooter',
  full_name='chromite.api.GetUpdatedFilesResponse.CqClTagFooter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='tag', full_name='chromite.api.GetUpdatedFilesResponse.CqClTagFooter.tag', 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=1772,
  serialized_end=1800,
)

_GETUPDATEDFILESRESPONSE_COMMITFOOTER = _descriptor.Descriptor(
  name='CommitFooter',
  full_name='chromite.api.GetUpdatedFilesResponse.CommitFooter',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cq_depend', full_name='chromite.api.GetUpdatedFilesResponse.CommitFooter.cq_depend', 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='cq_cl_tag', full_name='chromite.api.GetUpdatedFilesResponse.CommitFooter.cq_cl_tag', 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=[
    _descriptor.OneofDescriptor(
      name='footer', full_name='chromite.api.GetUpdatedFilesResponse.CommitFooter.footer',
      index=0, containing_type=None, fields=[]),
  ],
  serialized_start=1803,
  serialized_end=1976,
)

_GETUPDATEDFILESRESPONSE = _descriptor.Descriptor(
  name='GetUpdatedFilesResponse',
  full_name='chromite.api.GetUpdatedFilesResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='updated_files', full_name='chromite.api.GetUpdatedFilesResponse.updated_files', 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='commit_message', full_name='chromite.api.GetUpdatedFilesResponse.commit_message', 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='commit_footer', full_name='chromite.api.GetUpdatedFilesResponse.commit_footer', 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=[_GETUPDATEDFILESRESPONSE_UPDATEDFILE, _GETUPDATEDFILESRESPONSE_CQDEPENDFOOTER, _GETUPDATEDFILESRESPONSE_CQCLTAGFOOTER, _GETUPDATEDFILESRESPONSE_COMMITFOOTER, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1476,
  serialized_end=1976,
)


_VERIFYAFDOARTIFACTSREQUEST = _descriptor.Descriptor(
  name='VerifyAFDOArtifactsRequest',
  full_name='chromite.api.VerifyAFDOArtifactsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='chromite.api.VerifyAFDOArtifactsRequest.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='artifact_type', full_name='chromite.api.VerifyAFDOArtifactsRequest.artifact_type', index=1,
      number=2, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      serialized_options=None, file=DESCRIPTOR),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1979,
  serialized_end=2107,
)


_VERIFYAFDOARTIFACTSRESPONSE = _descriptor.Descriptor(
  name='VerifyAFDOArtifactsResponse',
  full_name='chromite.api.VerifyAFDOArtifactsResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='status', full_name='chromite.api.VerifyAFDOArtifactsResponse.status', 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=2109,
  serialized_end=2154,
)

_ARTIFACTINFO.fields_by_name['artifact_type'].enum_type = chromiumos_dot_builder__config__pb2._BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES
_ARTIFACTINFO.fields_by_name['artifacts'].message_type = chromite_dot_api_dot_artifacts__pb2._ARTIFACT
_PREPAREFORTOOLCHAINBUILDREQUEST.fields_by_name['artifact_types'].enum_type = chromiumos_dot_builder__config__pb2._BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES
_PREPAREFORTOOLCHAINBUILDREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_PREPAREFORTOOLCHAINBUILDREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_PREPAREFORTOOLCHAINBUILDREQUEST.fields_by_name['input_artifacts'].message_type = chromiumos_dot_builder__config__pb2._BUILDERCONFIG_ARTIFACTS_INPUTARTIFACTINFO
_PREPAREFORTOOLCHAINBUILDREQUEST.fields_by_name['additional_args'].message_type = chromiumos_dot_common__pb2._PREPAREFORBUILDADDITIONALARGS
_PREPAREFORTOOLCHAINBUILDREQUEST.fields_by_name['profile_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTPROFILEINFO
_PREPAREFORTOOLCHAINBUILDRESPONSE.fields_by_name['build_relevance'].enum_type = chromite_dot_api_dot_artifacts__pb2._PREPAREFORBUILDRESPONSE_BUILDRELEVANCE
_BUNDLETOOLCHAINREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUNDLETOOLCHAINREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_BUNDLETOOLCHAINREQUEST.fields_by_name['artifact_types'].enum_type = chromiumos_dot_builder__config__pb2._BUILDERCONFIG_ARTIFACTS_ARTIFACTTYPES
_BUNDLETOOLCHAINREQUEST.fields_by_name['additional_args'].message_type = chromiumos_dot_common__pb2._PREPAREFORBUILDADDITIONALARGS
_BUNDLETOOLCHAINREQUEST.fields_by_name['profile_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTPROFILEINFO
_BUNDLETOOLCHAINRESPONSE.fields_by_name['artifacts_info'].message_type = _ARTIFACTINFO
_GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS.fields_by_name['artifact_info'].message_type = _ARTIFACTINFO
_GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS.fields_by_name['profile_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTPROFILEINFO
_GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS.containing_type = _GETUPDATEDFILESREQUEST
_GETUPDATEDFILESREQUEST.fields_by_name['uploaded_artifacts'].message_type = _GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS
_GETUPDATEDFILESRESPONSE_UPDATEDFILE.containing_type = _GETUPDATEDFILESRESPONSE
_GETUPDATEDFILESRESPONSE_CQDEPENDFOOTER.fields_by_name['gerrit_change'].message_type = chromiumos_dot_common__pb2._GERRITCHANGE
_GETUPDATEDFILESRESPONSE_CQDEPENDFOOTER.containing_type = _GETUPDATEDFILESRESPONSE
_GETUPDATEDFILESRESPONSE_CQCLTAGFOOTER.containing_type = _GETUPDATEDFILESRESPONSE
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.fields_by_name['cq_depend'].message_type = _GETUPDATEDFILESRESPONSE_CQDEPENDFOOTER
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.fields_by_name['cq_cl_tag'].message_type = _GETUPDATEDFILESRESPONSE_CQCLTAGFOOTER
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.containing_type = _GETUPDATEDFILESRESPONSE
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.oneofs_by_name['footer'].fields.append(
  _GETUPDATEDFILESRESPONSE_COMMITFOOTER.fields_by_name['cq_depend'])
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.fields_by_name['cq_depend'].containing_oneof = _GETUPDATEDFILESRESPONSE_COMMITFOOTER.oneofs_by_name['footer']
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.oneofs_by_name['footer'].fields.append(
  _GETUPDATEDFILESRESPONSE_COMMITFOOTER.fields_by_name['cq_cl_tag'])
_GETUPDATEDFILESRESPONSE_COMMITFOOTER.fields_by_name['cq_cl_tag'].containing_oneof = _GETUPDATEDFILESRESPONSE_COMMITFOOTER.oneofs_by_name['footer']
_GETUPDATEDFILESRESPONSE.fields_by_name['updated_files'].message_type = _GETUPDATEDFILESRESPONSE_UPDATEDFILE
_GETUPDATEDFILESRESPONSE.fields_by_name['commit_footer'].message_type = _GETUPDATEDFILESRESPONSE_COMMITFOOTER
_VERIFYAFDOARTIFACTSREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_VERIFYAFDOARTIFACTSREQUEST.fields_by_name['artifact_type'].enum_type = chromiumos_dot_common__pb2._AFDOARTIFACTTYPE
DESCRIPTOR.message_types_by_name['ArtifactInfo'] = _ARTIFACTINFO
DESCRIPTOR.message_types_by_name['PrepareForToolchainBuildRequest'] = _PREPAREFORTOOLCHAINBUILDREQUEST
DESCRIPTOR.message_types_by_name['PrepareForToolchainBuildResponse'] = _PREPAREFORTOOLCHAINBUILDRESPONSE
DESCRIPTOR.message_types_by_name['BundleToolchainRequest'] = _BUNDLETOOLCHAINREQUEST
DESCRIPTOR.message_types_by_name['BundleToolchainResponse'] = _BUNDLETOOLCHAINRESPONSE
DESCRIPTOR.message_types_by_name['GetUpdatedFilesRequest'] = _GETUPDATEDFILESREQUEST
DESCRIPTOR.message_types_by_name['GetUpdatedFilesResponse'] = _GETUPDATEDFILESRESPONSE
DESCRIPTOR.message_types_by_name['VerifyAFDOArtifactsRequest'] = _VERIFYAFDOARTIFACTSREQUEST
DESCRIPTOR.message_types_by_name['VerifyAFDOArtifactsResponse'] = _VERIFYAFDOARTIFACTSRESPONSE
DESCRIPTOR.enum_types_by_name['AFDOArtifactType'] = _AFDOARTIFACTTYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ArtifactInfo = _reflection.GeneratedProtocolMessageType('ArtifactInfo', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTINFO,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.ArtifactInfo)
  ))
_sym_db.RegisterMessage(ArtifactInfo)

PrepareForToolchainBuildRequest = _reflection.GeneratedProtocolMessageType('PrepareForToolchainBuildRequest', (_message.Message,), dict(
  DESCRIPTOR = _PREPAREFORTOOLCHAINBUILDREQUEST,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.PrepareForToolchainBuildRequest)
  ))
_sym_db.RegisterMessage(PrepareForToolchainBuildRequest)

PrepareForToolchainBuildResponse = _reflection.GeneratedProtocolMessageType('PrepareForToolchainBuildResponse', (_message.Message,), dict(
  DESCRIPTOR = _PREPAREFORTOOLCHAINBUILDRESPONSE,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.PrepareForToolchainBuildResponse)
  ))
_sym_db.RegisterMessage(PrepareForToolchainBuildResponse)

BundleToolchainRequest = _reflection.GeneratedProtocolMessageType('BundleToolchainRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLETOOLCHAINREQUEST,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleToolchainRequest)
  ))
_sym_db.RegisterMessage(BundleToolchainRequest)

BundleToolchainResponse = _reflection.GeneratedProtocolMessageType('BundleToolchainResponse', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLETOOLCHAINRESPONSE,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleToolchainResponse)
  ))
_sym_db.RegisterMessage(BundleToolchainResponse)

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

  UploadedArtifacts = _reflection.GeneratedProtocolMessageType('UploadedArtifacts', (_message.Message,), dict(
    DESCRIPTOR = _GETUPDATEDFILESREQUEST_UPLOADEDARTIFACTS,
    __module__ = 'chromite.api.toolchain_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesRequest.UploadedArtifacts)
    ))
  ,
  DESCRIPTOR = _GETUPDATEDFILESREQUEST,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesRequest)
  ))
_sym_db.RegisterMessage(GetUpdatedFilesRequest)
_sym_db.RegisterMessage(GetUpdatedFilesRequest.UploadedArtifacts)

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

  UpdatedFile = _reflection.GeneratedProtocolMessageType('UpdatedFile', (_message.Message,), dict(
    DESCRIPTOR = _GETUPDATEDFILESRESPONSE_UPDATEDFILE,
    __module__ = 'chromite.api.toolchain_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesResponse.UpdatedFile)
    ))
  ,

  CqDependFooter = _reflection.GeneratedProtocolMessageType('CqDependFooter', (_message.Message,), dict(
    DESCRIPTOR = _GETUPDATEDFILESRESPONSE_CQDEPENDFOOTER,
    __module__ = 'chromite.api.toolchain_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesResponse.CqDependFooter)
    ))
  ,

  CqClTagFooter = _reflection.GeneratedProtocolMessageType('CqClTagFooter', (_message.Message,), dict(
    DESCRIPTOR = _GETUPDATEDFILESRESPONSE_CQCLTAGFOOTER,
    __module__ = 'chromite.api.toolchain_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesResponse.CqClTagFooter)
    ))
  ,

  CommitFooter = _reflection.GeneratedProtocolMessageType('CommitFooter', (_message.Message,), dict(
    DESCRIPTOR = _GETUPDATEDFILESRESPONSE_COMMITFOOTER,
    __module__ = 'chromite.api.toolchain_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesResponse.CommitFooter)
    ))
  ,
  DESCRIPTOR = _GETUPDATEDFILESRESPONSE,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.GetUpdatedFilesResponse)
  ))
_sym_db.RegisterMessage(GetUpdatedFilesResponse)
_sym_db.RegisterMessage(GetUpdatedFilesResponse.UpdatedFile)
_sym_db.RegisterMessage(GetUpdatedFilesResponse.CqDependFooter)
_sym_db.RegisterMessage(GetUpdatedFilesResponse.CqClTagFooter)
_sym_db.RegisterMessage(GetUpdatedFilesResponse.CommitFooter)

VerifyAFDOArtifactsRequest = _reflection.GeneratedProtocolMessageType('VerifyAFDOArtifactsRequest', (_message.Message,), dict(
  DESCRIPTOR = _VERIFYAFDOARTIFACTSREQUEST,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.VerifyAFDOArtifactsRequest)
  ))
_sym_db.RegisterMessage(VerifyAFDOArtifactsRequest)

VerifyAFDOArtifactsResponse = _reflection.GeneratedProtocolMessageType('VerifyAFDOArtifactsResponse', (_message.Message,), dict(
  DESCRIPTOR = _VERIFYAFDOARTIFACTSRESPONSE,
  __module__ = 'chromite.api.toolchain_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.VerifyAFDOArtifactsResponse)
  ))
_sym_db.RegisterMessage(VerifyAFDOArtifactsResponse)


DESCRIPTOR._options = None

_TOOLCHAINSERVICE = _descriptor.ServiceDescriptor(
  name='ToolchainService',
  full_name='chromite.api.ToolchainService',
  file=DESCRIPTOR,
  index=0,
  serialized_options=_b('\302\355\032\r\n\ttoolchain\020\002'),
  serialized_start=2261,
  serialized_end=2852,
  methods=[
  _descriptor.MethodDescriptor(
    name='UpdateEbuildWithAFDOArtifacts',
    full_name='chromite.api.ToolchainService.UpdateEbuildWithAFDOArtifacts',
    index=0,
    containing_service=None,
    input_type=_VERIFYAFDOARTIFACTSREQUEST,
    output_type=_VERIFYAFDOARTIFACTSRESPONSE,
    serialized_options=_b('\302\355\032\002\020\001'),
  ),
  _descriptor.MethodDescriptor(
    name='UploadVettedAFDOArtifacts',
    full_name='chromite.api.ToolchainService.UploadVettedAFDOArtifacts',
    index=1,
    containing_service=None,
    input_type=_VERIFYAFDOARTIFACTSREQUEST,
    output_type=_VERIFYAFDOARTIFACTSRESPONSE,
    serialized_options=_b('\302\355\032\002\020\001'),
  ),
  _descriptor.MethodDescriptor(
    name='PrepareForBuild',
    full_name='chromite.api.ToolchainService.PrepareForBuild',
    index=2,
    containing_service=None,
    input_type=_PREPAREFORTOOLCHAINBUILDREQUEST,
    output_type=_PREPAREFORTOOLCHAINBUILDRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleArtifacts',
    full_name='chromite.api.ToolchainService.BundleArtifacts',
    index=3,
    containing_service=None,
    input_type=_BUNDLETOOLCHAINREQUEST,
    output_type=_BUNDLETOOLCHAINRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GetUpdatedFiles',
    full_name='chromite.api.ToolchainService.GetUpdatedFiles',
    index=4,
    containing_service=None,
    input_type=_GETUPDATEDFILESREQUEST,
    output_type=_GETUPDATEDFILESRESPONSE,
    serialized_options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_TOOLCHAINSERVICE)

DESCRIPTOR.services_by_name['ToolchainService'] = _TOOLCHAINSERVICE

# @@protoc_insertion_point(module_scope)
