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

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

_sym_db = _symbol_database.Default()


from chromite.api.gen.chromite.api import build_api_pb2 as chromite_dot_api_dot_build__api__pb2
from chromite.api.gen.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.FileDescriptor(
  name='chromite/api/artifacts.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/artifacts.proto\x12\x0c\x63hromite.api\x1a\x1c\x63hromite/api/build_api.proto\x1a\x1a\x63hromite/api/sysroot.proto\x1a\x17\x63hromiumos/common.proto\"\x18\n\x08\x41rtifact\x12\x0c\n\x04path\x18\x01 \x01(\t\"\xbb\x01\n\x16PrepareForBuildRequest\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\x35\n\rartifact_info\x18\x03 \x01(\x0b\x32\x1e.chromiumos.ArtifactsByService\x12\x1e\n\x16\x66orced_build_relevance\x18\x04 \x01(\x08\"\xb3\x01\n\x17PrepareForBuildResponse\x12M\n\x0f\x62uild_relevance\x18\x01 \x01(\x0e\x32\x34.chromite.api.PrepareForBuildResponse.BuildRelevance\"I\n\x0e\x42uildRelevance\x12\x0f\n\x0bUNSPECIFIED\x10\x00\x12\n\n\x06NEEDED\x10\x01\x12\x0b\n\x07UNKNOWN\x10\x02\x12\r\n\tPOINTLESS\x10\x03\"\xaf\x01\n\x16\x42undleArtifactsRequest\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\x35\n\rartifact_info\x18\x03 \x01(\x0b\x32\x1e.chromiumos.ArtifactsByService\x12\x12\n\noutput_dir\x18\x04 \x01(\t\"T\n\x17\x42undleArtifactsResponse\x12\x39\n\tartifacts\x18\x01 \x01(\x0b\x32&.chromiumos.UploadedArtifactsByService\"\x9e\x01\n\rBundleRequest\x12-\n\x0c\x62uild_target\x18\x01 \x01(\x0b\x32\x17.chromiumos.BuildTarget\x12\x12\n\noutput_dir\x18\x02 \x01(\t\x12\"\n\x06\x63hroot\x18\x03 \x01(\x0b\x32\x12.chromiumos.Chroot\x12&\n\x07sysroot\x18\x04 \x01(\x0b\x32\x15.chromite.api.Sysroot\";\n\x0e\x42undleResponse\x12)\n\tartifacts\x18\x01 \x03(\x0b\x32\x16.chromite.api.Artifact\"\x90\x01\n\x14\x42undleVmFilesRequest\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\x18\n\x10test_results_dir\x18\x03 \x01(\t\x12\x12\n\noutput_dir\x18\x04 \x01(\t\"\xb5\x01\n\x17\x42undleChromeAFDORequest\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\x12\n\noutput_dir\x18\x03 \x01(\t\x12\x33\n\rartifact_type\x18\x04 \x01(\x0e\x32\x1c.chromiumos.AFDOArtifactType\"h\n\x1aPinnedGuestImageUriRequest\x12\"\n\x06\x63hroot\x18\x01 \x01(\x0b\x32\x12.chromiumos.Chroot\x12&\n\x07sysroot\x18\x02 \x01(\x0b\x32\x15.chromite.api.Sysroot\"\xa3\x01\n\x1bPinnedGuestImageUriResponse\x12Q\n\rpinned_images\x18\x01 \x03(\x0b\x32:.chromite.api.PinnedGuestImageUriResponse.PinnedGuestImage\x1a\x31\n\x10PinnedGuestImage\x12\x10\n\x08\x66ilename\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t2\xc7\x0e\n\x10\x41rtifactsService\x12^\n\x0fPrepareForBuild\x12$.chromite.api.PrepareForBuildRequest\x1a%.chromite.api.PrepareForBuildResponse\x12^\n\x0f\x42undleArtifacts\x12$.chromite.api.BundleArtifactsRequest\x1a%.chromite.api.BundleArtifactsResponse\x12p\n\x19\x46\x65tchPinnedGuestImageUris\x12(.chromite.api.PinnedGuestImageUriRequest\x1a).chromite.api.PinnedGuestImageUriResponse\x12P\n\x13\x42undleAutotestFiles\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12Q\n\x14\x42undleChromeOSConfig\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12O\n\x12\x42undleDebugSymbols\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12M\n\x10\x42undleEbuildLogs\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12K\n\x0e\x42undleFirmware\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12P\n\x13\x42undleImageArchives\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12K\n\x0e\x42undleImageZip\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12\x64\n\x1d\x42undleAFDOGenerationArtifacts\x12%.chromite.api.BundleChromeAFDORequest\x1a\x1c.chromite.api.BundleResponse\x12T\n\x17\x42undlePinnedGuestImages\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12X\n\x1b\x42undleSimpleChromeArtifacts\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12L\n\x0f\x42undleTastFiles\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12U\n\x18\x42undleTestUpdatePayloads\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12Q\n\rBundleVmFiles\x12\".chromite.api.BundleVmFilesRequest\x1a\x1c.chromite.api.BundleResponse\x12L\n\x0f\x45xportCpeReport\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12Q\n\x14\x42undleFpmcuUnittests\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12M\n\x10\x42undleGceTarball\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12\x62\n%GenerateRemoteTestDriverSpecification\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x12[\n\x1eGenerateRemoteTestDriverImages\x12\x1b.chromite.api.BundleRequest\x1a\x1c.chromite.api.BundleResponse\x1a\x11\xc2\xed\x1a\r\n\tartifacts\x10\x02\x42\x38Z6go.chromium.org/chromiumos/infra/proto/go/chromite/apib\x06proto3')
  ,
  dependencies=[chromite_dot_api_dot_build__api__pb2.DESCRIPTOR,chromite_dot_api_dot_sysroot__pb2.DESCRIPTOR,chromiumos_dot_common__pb2.DESCRIPTOR,])



_PREPAREFORBUILDRESPONSE_BUILDRELEVANCE = _descriptor.EnumDescriptor(
  name='BuildRelevance',
  full_name='chromite.api.PrepareForBuildResponse.BuildRelevance',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSPECIFIED', index=0, number=0,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NEEDED', index=1, number=1,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=2, number=2,
      serialized_options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='POINTLESS', index=3, number=3,
      serialized_options=None,
      type=None),
  ],
  containing_type=None,
  serialized_options=None,
  serialized_start=452,
  serialized_end=525,
)
_sym_db.RegisterEnumDescriptor(_PREPAREFORBUILDRESPONSE_BUILDRELEVANCE)


_ARTIFACT = _descriptor.Descriptor(
  name='Artifact',
  full_name='chromite.api.Artifact',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='chromite.api.Artifact.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=129,
  serialized_end=153,
)


_PREPAREFORBUILDREQUEST = _descriptor.Descriptor(
  name='PrepareForBuildRequest',
  full_name='chromite.api.PrepareForBuildRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.PrepareForBuildRequest.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.PrepareForBuildRequest.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='artifact_info', full_name='chromite.api.PrepareForBuildRequest.artifact_info', 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='forced_build_relevance', full_name='chromite.api.PrepareForBuildRequest.forced_build_relevance', 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=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=156,
  serialized_end=343,
)


_PREPAREFORBUILDRESPONSE = _descriptor.Descriptor(
  name='PrepareForBuildResponse',
  full_name='chromite.api.PrepareForBuildResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_relevance', full_name='chromite.api.PrepareForBuildResponse.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=[
    _PREPAREFORBUILDRESPONSE_BUILDRELEVANCE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=346,
  serialized_end=525,
)


_BUNDLEARTIFACTSREQUEST = _descriptor.Descriptor(
  name='BundleArtifactsRequest',
  full_name='chromite.api.BundleArtifactsRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.BundleArtifactsRequest.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.BundleArtifactsRequest.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='artifact_info', full_name='chromite.api.BundleArtifactsRequest.artifact_info', 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='output_dir', full_name='chromite.api.BundleArtifactsRequest.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=528,
  serialized_end=703,
)


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


_BUNDLEREQUEST = _descriptor.Descriptor(
  name='BundleRequest',
  full_name='chromite.api.BundleRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_target', full_name='chromite.api.BundleRequest.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='output_dir', full_name='chromite.api.BundleRequest.output_dir', 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='chroot', full_name='chromite.api.BundleRequest.chroot', 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='sysroot', full_name='chromite.api.BundleRequest.sysroot', 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=792,
  serialized_end=950,
)


_BUNDLERESPONSE = _descriptor.Descriptor(
  name='BundleResponse',
  full_name='chromite.api.BundleResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifacts', full_name='chromite.api.BundleResponse.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=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=952,
  serialized_end=1011,
)


_BUNDLEVMFILESREQUEST = _descriptor.Descriptor(
  name='BundleVmFilesRequest',
  full_name='chromite.api.BundleVmFilesRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.BundleVmFilesRequest.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.BundleVmFilesRequest.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='test_results_dir', full_name='chromite.api.BundleVmFilesRequest.test_results_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='output_dir', full_name='chromite.api.BundleVmFilesRequest.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=1014,
  serialized_end=1158,
)


_BUNDLECHROMEAFDOREQUEST = _descriptor.Descriptor(
  name='BundleChromeAFDORequest',
  full_name='chromite.api.BundleChromeAFDORequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.BundleChromeAFDORequest.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.BundleChromeAFDORequest.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='output_dir', full_name='chromite.api.BundleChromeAFDORequest.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_type', full_name='chromite.api.BundleChromeAFDORequest.artifact_type', index=3,
      number=4, 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=1161,
  serialized_end=1342,
)


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


_PINNEDGUESTIMAGEURIRESPONSE_PINNEDGUESTIMAGE = _descriptor.Descriptor(
  name='PinnedGuestImage',
  full_name='chromite.api.PinnedGuestImageUriResponse.PinnedGuestImage',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='filename', full_name='chromite.api.PinnedGuestImageUriResponse.PinnedGuestImage.filename', 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='uri', full_name='chromite.api.PinnedGuestImageUriResponse.PinnedGuestImage.uri', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1565,
  serialized_end=1614,
)

_PINNEDGUESTIMAGEURIRESPONSE = _descriptor.Descriptor(
  name='PinnedGuestImageUriResponse',
  full_name='chromite.api.PinnedGuestImageUriResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='pinned_images', full_name='chromite.api.PinnedGuestImageUriResponse.pinned_images', 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=[_PINNEDGUESTIMAGEURIRESPONSE_PINNEDGUESTIMAGE, ],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1451,
  serialized_end=1614,
)

_PREPAREFORBUILDREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_PREPAREFORBUILDREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_PREPAREFORBUILDREQUEST.fields_by_name['artifact_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTSBYSERVICE
_PREPAREFORBUILDRESPONSE.fields_by_name['build_relevance'].enum_type = _PREPAREFORBUILDRESPONSE_BUILDRELEVANCE
_PREPAREFORBUILDRESPONSE_BUILDRELEVANCE.containing_type = _PREPAREFORBUILDRESPONSE
_BUNDLEARTIFACTSREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUNDLEARTIFACTSREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_BUNDLEARTIFACTSREQUEST.fields_by_name['artifact_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTSBYSERVICE
_BUNDLEARTIFACTSRESPONSE.fields_by_name['artifacts'].message_type = chromiumos_dot_common__pb2._UPLOADEDARTIFACTSBYSERVICE
_BUNDLEREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_BUNDLEREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUNDLEREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_BUNDLERESPONSE.fields_by_name['artifacts'].message_type = _ARTIFACT
_BUNDLEVMFILESREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUNDLEVMFILESREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_BUNDLECHROMEAFDOREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUNDLECHROMEAFDOREQUEST.fields_by_name['build_target'].message_type = chromiumos_dot_common__pb2._BUILDTARGET
_BUNDLECHROMEAFDOREQUEST.fields_by_name['artifact_type'].enum_type = chromiumos_dot_common__pb2._AFDOARTIFACTTYPE
_PINNEDGUESTIMAGEURIREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_PINNEDGUESTIMAGEURIREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_PINNEDGUESTIMAGEURIRESPONSE_PINNEDGUESTIMAGE.containing_type = _PINNEDGUESTIMAGEURIRESPONSE
_PINNEDGUESTIMAGEURIRESPONSE.fields_by_name['pinned_images'].message_type = _PINNEDGUESTIMAGEURIRESPONSE_PINNEDGUESTIMAGE
DESCRIPTOR.message_types_by_name['Artifact'] = _ARTIFACT
DESCRIPTOR.message_types_by_name['PrepareForBuildRequest'] = _PREPAREFORBUILDREQUEST
DESCRIPTOR.message_types_by_name['PrepareForBuildResponse'] = _PREPAREFORBUILDRESPONSE
DESCRIPTOR.message_types_by_name['BundleArtifactsRequest'] = _BUNDLEARTIFACTSREQUEST
DESCRIPTOR.message_types_by_name['BundleArtifactsResponse'] = _BUNDLEARTIFACTSRESPONSE
DESCRIPTOR.message_types_by_name['BundleRequest'] = _BUNDLEREQUEST
DESCRIPTOR.message_types_by_name['BundleResponse'] = _BUNDLERESPONSE
DESCRIPTOR.message_types_by_name['BundleVmFilesRequest'] = _BUNDLEVMFILESREQUEST
DESCRIPTOR.message_types_by_name['BundleChromeAFDORequest'] = _BUNDLECHROMEAFDOREQUEST
DESCRIPTOR.message_types_by_name['PinnedGuestImageUriRequest'] = _PINNEDGUESTIMAGEURIREQUEST
DESCRIPTOR.message_types_by_name['PinnedGuestImageUriResponse'] = _PINNEDGUESTIMAGEURIRESPONSE
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

Artifact = _reflection.GeneratedProtocolMessageType('Artifact', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACT,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.Artifact)
  ))
_sym_db.RegisterMessage(Artifact)

PrepareForBuildRequest = _reflection.GeneratedProtocolMessageType('PrepareForBuildRequest', (_message.Message,), dict(
  DESCRIPTOR = _PREPAREFORBUILDREQUEST,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.PrepareForBuildRequest)
  ))
_sym_db.RegisterMessage(PrepareForBuildRequest)

PrepareForBuildResponse = _reflection.GeneratedProtocolMessageType('PrepareForBuildResponse', (_message.Message,), dict(
  DESCRIPTOR = _PREPAREFORBUILDRESPONSE,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.PrepareForBuildResponse)
  ))
_sym_db.RegisterMessage(PrepareForBuildResponse)

BundleArtifactsRequest = _reflection.GeneratedProtocolMessageType('BundleArtifactsRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLEARTIFACTSREQUEST,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleArtifactsRequest)
  ))
_sym_db.RegisterMessage(BundleArtifactsRequest)

BundleArtifactsResponse = _reflection.GeneratedProtocolMessageType('BundleArtifactsResponse', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLEARTIFACTSRESPONSE,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleArtifactsResponse)
  ))
_sym_db.RegisterMessage(BundleArtifactsResponse)

BundleRequest = _reflection.GeneratedProtocolMessageType('BundleRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLEREQUEST,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleRequest)
  ))
_sym_db.RegisterMessage(BundleRequest)

BundleResponse = _reflection.GeneratedProtocolMessageType('BundleResponse', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLERESPONSE,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleResponse)
  ))
_sym_db.RegisterMessage(BundleResponse)

BundleVmFilesRequest = _reflection.GeneratedProtocolMessageType('BundleVmFilesRequest', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLEVMFILESREQUEST,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleVmFilesRequest)
  ))
_sym_db.RegisterMessage(BundleVmFilesRequest)

BundleChromeAFDORequest = _reflection.GeneratedProtocolMessageType('BundleChromeAFDORequest', (_message.Message,), dict(
  DESCRIPTOR = _BUNDLECHROMEAFDOREQUEST,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.BundleChromeAFDORequest)
  ))
_sym_db.RegisterMessage(BundleChromeAFDORequest)

PinnedGuestImageUriRequest = _reflection.GeneratedProtocolMessageType('PinnedGuestImageUriRequest', (_message.Message,), dict(
  DESCRIPTOR = _PINNEDGUESTIMAGEURIREQUEST,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.PinnedGuestImageUriRequest)
  ))
_sym_db.RegisterMessage(PinnedGuestImageUriRequest)

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

  PinnedGuestImage = _reflection.GeneratedProtocolMessageType('PinnedGuestImage', (_message.Message,), dict(
    DESCRIPTOR = _PINNEDGUESTIMAGEURIRESPONSE_PINNEDGUESTIMAGE,
    __module__ = 'chromite.api.artifacts_pb2'
    # @@protoc_insertion_point(class_scope:chromite.api.PinnedGuestImageUriResponse.PinnedGuestImage)
    ))
  ,
  DESCRIPTOR = _PINNEDGUESTIMAGEURIRESPONSE,
  __module__ = 'chromite.api.artifacts_pb2'
  # @@protoc_insertion_point(class_scope:chromite.api.PinnedGuestImageUriResponse)
  ))
_sym_db.RegisterMessage(PinnedGuestImageUriResponse)
_sym_db.RegisterMessage(PinnedGuestImageUriResponse.PinnedGuestImage)


DESCRIPTOR._options = None

_ARTIFACTSSERVICE = _descriptor.ServiceDescriptor(
  name='ArtifactsService',
  full_name='chromite.api.ArtifactsService',
  file=DESCRIPTOR,
  index=0,
  serialized_options=_b('\302\355\032\r\n\tartifacts\020\002'),
  serialized_start=1617,
  serialized_end=3480,
  methods=[
  _descriptor.MethodDescriptor(
    name='PrepareForBuild',
    full_name='chromite.api.ArtifactsService.PrepareForBuild',
    index=0,
    containing_service=None,
    input_type=_PREPAREFORBUILDREQUEST,
    output_type=_PREPAREFORBUILDRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleArtifacts',
    full_name='chromite.api.ArtifactsService.BundleArtifacts',
    index=1,
    containing_service=None,
    input_type=_BUNDLEARTIFACTSREQUEST,
    output_type=_BUNDLEARTIFACTSRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='FetchPinnedGuestImageUris',
    full_name='chromite.api.ArtifactsService.FetchPinnedGuestImageUris',
    index=2,
    containing_service=None,
    input_type=_PINNEDGUESTIMAGEURIREQUEST,
    output_type=_PINNEDGUESTIMAGEURIRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleAutotestFiles',
    full_name='chromite.api.ArtifactsService.BundleAutotestFiles',
    index=3,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleChromeOSConfig',
    full_name='chromite.api.ArtifactsService.BundleChromeOSConfig',
    index=4,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleDebugSymbols',
    full_name='chromite.api.ArtifactsService.BundleDebugSymbols',
    index=5,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleEbuildLogs',
    full_name='chromite.api.ArtifactsService.BundleEbuildLogs',
    index=6,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleFirmware',
    full_name='chromite.api.ArtifactsService.BundleFirmware',
    index=7,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleImageArchives',
    full_name='chromite.api.ArtifactsService.BundleImageArchives',
    index=8,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleImageZip',
    full_name='chromite.api.ArtifactsService.BundleImageZip',
    index=9,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleAFDOGenerationArtifacts',
    full_name='chromite.api.ArtifactsService.BundleAFDOGenerationArtifacts',
    index=10,
    containing_service=None,
    input_type=_BUNDLECHROMEAFDOREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundlePinnedGuestImages',
    full_name='chromite.api.ArtifactsService.BundlePinnedGuestImages',
    index=11,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleSimpleChromeArtifacts',
    full_name='chromite.api.ArtifactsService.BundleSimpleChromeArtifacts',
    index=12,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleTastFiles',
    full_name='chromite.api.ArtifactsService.BundleTastFiles',
    index=13,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleTestUpdatePayloads',
    full_name='chromite.api.ArtifactsService.BundleTestUpdatePayloads',
    index=14,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleVmFiles',
    full_name='chromite.api.ArtifactsService.BundleVmFiles',
    index=15,
    containing_service=None,
    input_type=_BUNDLEVMFILESREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='ExportCpeReport',
    full_name='chromite.api.ArtifactsService.ExportCpeReport',
    index=16,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleFpmcuUnittests',
    full_name='chromite.api.ArtifactsService.BundleFpmcuUnittests',
    index=17,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='BundleGceTarball',
    full_name='chromite.api.ArtifactsService.BundleGceTarball',
    index=18,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GenerateRemoteTestDriverSpecification',
    full_name='chromite.api.ArtifactsService.GenerateRemoteTestDriverSpecification',
    index=19,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='GenerateRemoteTestDriverImages',
    full_name='chromite.api.ArtifactsService.GenerateRemoteTestDriverImages',
    index=20,
    containing_service=None,
    input_type=_BUNDLEREQUEST,
    output_type=_BUNDLERESPONSE,
    serialized_options=None,
  ),
])
_sym_db.RegisterServiceDescriptor(_ARTIFACTSSERVICE)

DESCRIPTOR.services_by_name['ArtifactsService'] = _ARTIFACTSSERVICE

# @@protoc_insertion_point(module_scope)
