# 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\"\xb6\x01\n\x11\x42uildSetupRequest\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\"\xa9\x01\n\x12\x42uildSetupResponse\x12H\n\x0f\x62uild_relevance\x18\x01 \x01(\x0e\x32/.chromite.api.BuildSetupResponse.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\"\xbc\x01\n\nGetRequest\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+\n\x0bresult_path\x18\x04 \x01(\x0b\x32\x16.chromiumos.ResultPath\"H\n\x0bGetResponse\x12\x39\n\tartifacts\x18\x01 \x01(\x0b\x32&.chromiumos.UploadedArtifactsByService\"\xdc\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\x12+\n\x0bresult_path\x18\x05 \x01(\x0b\x32\x16.chromiumos.ResultPath\"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\x94\x0e\n\x10\x41rtifactsService\x12O\n\nBuildSetup\x12\x1f.chromite.api.BuildSetupRequest\x1a .chromite.api.BuildSetupResponse\x12:\n\x03Get\x12\x18.chromite.api.GetRequest\x1a\x19.chromite.api.GetResponse\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)

_BUILDSETUPRESPONSE_BUILDRELEVANCE = _descriptor.EnumDescriptor(
  name='BuildRelevance',
  full_name='chromite.api.BuildSetupResponse.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(_BUILDSETUPRESPONSE_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,
)


_BUILDSETUPREQUEST = _descriptor.Descriptor(
  name='BuildSetupRequest',
  full_name='chromite.api.BuildSetupRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.BuildSetupRequest.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.BuildSetupRequest.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.BuildSetupRequest.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.BuildSetupRequest.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=528,
  serialized_end=710,
)


_BUILDSETUPRESPONSE = _descriptor.Descriptor(
  name='BuildSetupResponse',
  full_name='chromite.api.BuildSetupResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='build_relevance', full_name='chromite.api.BuildSetupResponse.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=[
    _BUILDSETUPRESPONSE_BUILDRELEVANCE,
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=713,
  serialized_end=882,
)


_GETREQUEST = _descriptor.Descriptor(
  name='GetRequest',
  full_name='chromite.api.GetRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='chroot', full_name='chromite.api.GetRequest.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.GetRequest.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.GetRequest.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='result_path', full_name='chromite.api.GetRequest.result_path', 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=885,
  serialized_end=1073,
)


_GETRESPONSE = _descriptor.Descriptor(
  name='GetResponse',
  full_name='chromite.api.GetResponse',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifacts', full_name='chromite.api.GetResponse.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=1075,
  serialized_end=1147,
)


_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),
    _descriptor.FieldDescriptor(
      name='result_path', full_name='chromite.api.BundleArtifactsRequest.result_path', 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),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  serialized_options=None,
  is_extendable=False,
  syntax='proto3',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1150,
  serialized_end=1370,
)


_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=1372,
  serialized_end=1456,
)


_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=1459,
  serialized_end=1617,
)


_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=1619,
  serialized_end=1678,
)


_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=1681,
  serialized_end=1825,
)


_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=1828,
  serialized_end=2009,
)


_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=2011,
  serialized_end=2115,
)


_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=2232,
  serialized_end=2281,
)

_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=2118,
  serialized_end=2281,
)

_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
_BUILDSETUPREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_BUILDSETUPREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_BUILDSETUPREQUEST.fields_by_name['artifact_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTSBYSERVICE
_BUILDSETUPRESPONSE.fields_by_name['build_relevance'].enum_type = _BUILDSETUPRESPONSE_BUILDRELEVANCE
_BUILDSETUPRESPONSE_BUILDRELEVANCE.containing_type = _BUILDSETUPRESPONSE
_GETREQUEST.fields_by_name['chroot'].message_type = chromiumos_dot_common__pb2._CHROOT
_GETREQUEST.fields_by_name['sysroot'].message_type = chromite_dot_api_dot_sysroot__pb2._SYSROOT
_GETREQUEST.fields_by_name['artifact_info'].message_type = chromiumos_dot_common__pb2._ARTIFACTSBYSERVICE
_GETREQUEST.fields_by_name['result_path'].message_type = chromiumos_dot_common__pb2._RESULTPATH
_GETRESPONSE.fields_by_name['artifacts'].message_type = chromiumos_dot_common__pb2._UPLOADEDARTIFACTSBYSERVICE
_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
_BUNDLEARTIFACTSREQUEST.fields_by_name['result_path'].message_type = chromiumos_dot_common__pb2._RESULTPATH
_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['BuildSetupRequest'] = _BUILDSETUPREQUEST
DESCRIPTOR.message_types_by_name['BuildSetupResponse'] = _BUILDSETUPRESPONSE
DESCRIPTOR.message_types_by_name['GetRequest'] = _GETREQUEST
DESCRIPTOR.message_types_by_name['GetResponse'] = _GETRESPONSE
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)

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

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

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

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

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=2284,
  serialized_end=4096,
  methods=[
  _descriptor.MethodDescriptor(
    name='BuildSetup',
    full_name='chromite.api.ArtifactsService.BuildSetup',
    index=0,
    containing_service=None,
    input_type=_BUILDSETUPREQUEST,
    output_type=_BUILDSETUPRESPONSE,
    serialized_options=None,
  ),
  _descriptor.MethodDescriptor(
    name='Get',
    full_name='chromite.api.ArtifactsService.Get',
    index=1,
    containing_service=None,
    input_type=_GETREQUEST,
    output_type=_GETRESPONSE,
    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)
