# 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\"\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\xa3\x0e\n\x10\x41rtifactsService\x12^\n\x0fPrepareForBuild\x12$.chromite.api.PrepareForBuildRequest\x1a%.chromite.api.PrepareForBuildResponse\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)


_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,
)


_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=528,
  serialized_end=716,
)


_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=718,
  serialized_end=790,
)


_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=793,
  serialized_end=1013,
)


_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=1015,
  serialized_end=1099,
)


_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=1102,
  serialized_end=1260,
)


_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=1262,
  serialized_end=1321,
)


_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=1324,
  serialized_end=1468,
)


_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=1471,
  serialized_end=1652,
)


_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=1654,
  serialized_end=1758,
)


_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=1875,
  serialized_end=1924,
)

_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=1761,
  serialized_end=1924,
)

_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
_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['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)

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=1927,
  serialized_end=3754,
  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='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)
