# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: grr_response_proto/artifact.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
from google.protobuf import descriptor_pb2
# @@protoc_insertion_point(imports)

_sym_db = _symbol_database.Default()


from grr_response_proto import jobs_pb2 as grr__response__proto_dot_jobs__pb2
from grr_response_proto import semantic_pb2 as grr__response__proto_dot_semantic__pb2
from grr_response_proto import knowledge_base_pb2 as grr__response__proto_dot_knowledge__base__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='grr_response_proto/artifact.proto',
  package='',
  syntax='proto2',
  serialized_pb=_b('\n!grr_response_proto/artifact.proto\x1a\x1dgrr_response_proto/jobs.proto\x1a!grr_response_proto/semantic.proto\x1a\'grr_response_proto/knowledge_base.proto\"\x9c\x06\n\x0e\x41rtifactSource\x12\x45\n\x04type\x18\x01 \x01(\x0e\x32\x1a.ArtifactSource.SourceTypeB\x1b\xe2\xfc\xe3\xc4\x01\x15\x12\x13The type of source.\x12\\\n\nattributes\x18\x02 \x01(\x0b\x32\x05.DictBA\xe2\xfc\xe3\xc4\x01;\x12\x39The attributes that describe the source. e.g. file paths.\x12j\n\nconditions\x18\x03 \x03(\tBV\xe2\xfc\xe3\xc4\x01P\x12NObject filter conditions that decide if this source applies to a given system.\x12\x91\x01\n\x0ereturned_types\x18\x04 \x03(\tBy\xe2\xfc\xe3\xc4\x01s\x12qA list of types that may be returned by this source. Anything returned that is not in this list will be filtered.\x12\x61\n\x0csupported_os\x18\x05 \x03(\tBK\xe2\xfc\xe3\xc4\x01\x45\x12\x43\x41 list of operating systems to which this source should be applied.\"\x81\x02\n\nSourceType\x12\x1a\n\x16\x43OLLECTOR_TYPE_UNKNOWN\x10\x00\x12\x08\n\x04\x46ILE\x10\x01\x12\x10\n\x0cREGISTRY_KEY\x10\x02\x12\x12\n\x0eREGISTRY_VALUE\x10\x03\x12\x07\n\x03WMI\x10\x04\x12\x0c\n\x08\x41RTIFACT\x10\x05\x12\x08\n\x04PATH\x10\x06\x12\r\n\tDIRECTORY\x10\x07\x12\x12\n\x0e\x41RTIFACT_GROUP\x10\x08\x12\x15\n\x11GRR_CLIENT_ACTION\x10(\x12\x0e\n\nLIST_FILES\x10)\x12\x12\n\x0e\x41RTIFACT_FILES\x10*\x12\x08\n\x04GREP\x10+\x12\x0b\n\x07\x43OMMAND\x10-\x12\x11\n\rREKALL_PLUGIN\x10.\"\xaf\x05\n\x08\x41rtifact\x12I\n\x04name\x18\x01 \x01(\tB;\xe2\xfc\xe3\xc4\x01\x35\n\x0c\x41rtifactName\x12%Globally unique name of the artifact.\x12X\n\nconditions\x18\x02 \x03(\tBD\xe2\xfc\xe3\xc4\x01>\x12<A list of conditions that decide if the artifact should run.\x12\x31\n\x03\x64oc\x18\x03 \x01(\tB$\xe2\xfc\xe3\xc4\x01\x1e\x12\x1c\x44oc string for the artifact.\x12\x41\n\x06labels\x18\x04 \x03(\tB1\xe2\xfc\xe3\xc4\x01+\x12)A list of labels the artifact belongs to.\x12P\n\x0csupported_os\x18\x05 \x03(\tB:\xe2\xfc\xe3\xc4\x01\x34\x12\x32\x41 list of operating systems the artifact supports.\x12\x45\n\x04urls\x18\x06 \x03(\tB7\xe2\xfc\xe3\xc4\x01\x31\x12/A list of urls that help document the artifact.\x12P\n\x08provides\x18\x08 \x03(\tB>\xe2\xfc\xe3\xc4\x01\x38\x12\x36\x41 list of knowledgebase values this artifact provides.\x12\x45\n\x07sources\x18\t \x03(\x0b\x32\x0f.ArtifactSourceB#\xe2\xfc\xe3\xc4\x01\x1d\x12\x1b\x41 list of artifact sources.\x12V\n\rerror_message\x18\n \x01(\tB?\xe2\xfc\xe3\xc4\x01\x39\x12\x37The error message for artifacts that failed validation.\"\xf1\x01\n\x1b\x41rtifactProcessorDescriptor\x12<\n\x04name\x18\x01 \x01(\tB.\xe2\xfc\xe3\xc4\x01(\x12&Processor\'s name as registered in GRR.\x12;\n\x0b\x64\x65scription\x18\x02 \x01(\tB&\xe2\xfc\xe3\xc4\x01 \x12\x1e\x44\x65scription of this processor.\x12W\n\x0coutput_types\x18\x03 \x03(\tBA\xe2\xfc\xe3\xc4\x01;\x12\x39The semantic types that can be produced by the processor.\"\x87\x04\n\x12\x41rtifactDescriptor\x12\x35\n\x08\x61rtifact\x18\x01 \x01(\x0b\x32\t.ArtifactB\x18\xe2\xfc\xe3\xc4\x01\x12\x12\x10\x41rtifact itself.\x12J\n\x0c\x64\x65pendencies\x18\x02 \x03(\tB4\xe2\xfc\xe3\xc4\x01.\x12,Names of artifacts this artifact depends on.\x12P\n\x11path_dependencies\x18\x03 \x03(\tB5\xe2\xfc\xe3\xc4\x01/\x12-Names of KB objects this artifact depends on.\x12n\n\nprocessors\x18\x05 \x03(\x0b\x32\x1c.ArtifactProcessorDescriptorB<\xe2\xfc\xe3\xc4\x01\x36\x12\x34Processors that will process this artifact\'s output.\x12T\n\tis_custom\x18\x06 \x01(\x08\x42\x41\xe2\xfc\xe3\xc4\x01;\x12\x39If True, this artifact was manually uploaded by the user.\x12V\n\rerror_message\x18\x07 \x01(\tB?\xe2\xfc\xe3\xc4\x01\x39\x12\x37The error message for artifacts that failed validation.\"\x83\x01\n\x15\x41rtifactCollectorArgs\x12\x42\n\tartifacts\x18\x01 \x03(\x0b\x32\x11.ExtendedArtifactB\x1c\xe2\xfc\xe3\xc4\x01\x16\x12\x14\x41 list of artifacts.\x12&\n\x0eknowledge_base\x18\x02 \x01(\x0b\x32\x0e.KnowledgeBase\"\xa1\x01\n\x10\x45xtendedArtifact\x12=\n\x04name\x18\x01 \x02(\tB/\xe2\xfc\xe3\xc4\x01)\n\x0c\x41rtifactName\x12\x19The name of the artifact.\x12N\n\x07sources\x18\x02 \x03(\x0b\x32\x0f.ExtendedSourceB,\xe2\xfc\xe3\xc4\x01&\x12$The sources and what they depend on.\"\xec\x02\n\x0e\x45xtendedSource\x12>\n\x0b\x62\x61se_source\x18\x01 \x02(\x0b\x32\x0f.ArtifactSourceB\x18\xe2\xfc\xe3\xc4\x01\x12\x12\x10The base source.\x12\x38\n\tpath_type\x18\x06 \x01(\x0e\x32\x12.PathSpec.PathTypeB\x11\xe2\xfc\xe3\xc4\x01\x0b\x12\tPath Type\x12|\n\x0cmax_bytesize\x18\x07 \x01(\x04\x42\x66\xe2\xfc\xe3\xc4\x01`\n\x08\x42yteSize\x12TFile Finder Download Action Option: The maximum byte size of files we will download.\x12\x62\n\x10max_number_files\x18\x08 \x01(\x05\x42H\xe2\xfc\xe3\xc4\x01\x42\x12@File Finder Action Option: The maximum number of results to get.\"\x19\n\x17\x41rtifactCollectorResult')
  ,
  dependencies=[grr__response__proto_dot_jobs__pb2.DESCRIPTOR,grr__response__proto_dot_semantic__pb2.DESCRIPTOR,grr__response__proto_dot_knowledge__base__pb2.DESCRIPTOR,])



_ARTIFACTSOURCE_SOURCETYPE = _descriptor.EnumDescriptor(
  name='SourceType',
  full_name='ArtifactSource.SourceType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='COLLECTOR_TYPE_UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FILE', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REGISTRY_KEY', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REGISTRY_VALUE', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='WMI', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ARTIFACT', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='PATH', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DIRECTORY', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ARTIFACT_GROUP', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GRR_CLIENT_ACTION', index=9, number=40,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='LIST_FILES', index=10, number=41,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='ARTIFACT_FILES', index=11, number=42,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='GREP', index=12, number=43,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='COMMAND', index=13, number=45,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='REKALL_PLUGIN', index=14, number=46,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=684,
  serialized_end=941,
)
_sym_db.RegisterEnumDescriptor(_ARTIFACTSOURCE_SOURCETYPE)


_ARTIFACTSOURCE = _descriptor.Descriptor(
  name='ArtifactSource',
  full_name='ArtifactSource',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='ArtifactSource.type', index=0,
      number=1, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\022\023The type of source.'))),
    _descriptor.FieldDescriptor(
      name='attributes', full_name='ArtifactSource.attributes', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229The attributes that describe the source. e.g. file paths.'))),
    _descriptor.FieldDescriptor(
      name='conditions', full_name='ArtifactSource.conditions', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\022NObject filter conditions that decide if this source applies to a given system.'))),
    _descriptor.FieldDescriptor(
      name='returned_types', full_name='ArtifactSource.returned_types', index=3,
      number=4, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001s\022qA list of types that may be returned by this source. Anything returned that is not in this list will be filtered.'))),
    _descriptor.FieldDescriptor(
      name='supported_os', full_name='ArtifactSource.supported_os', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\022CA list of operating systems to which this source should be applied.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _ARTIFACTSOURCE_SOURCETYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=145,
  serialized_end=941,
)


_ARTIFACT = _descriptor.Descriptor(
  name='Artifact',
  full_name='Artifact',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='Artifact.name', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\014ArtifactName\022%Globally unique name of the artifact.'))),
    _descriptor.FieldDescriptor(
      name='conditions', full_name='Artifact.conditions', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001>\022<A list of conditions that decide if the artifact should run.'))),
    _descriptor.FieldDescriptor(
      name='doc', full_name='Artifact.doc', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\022\034Doc string for the artifact.'))),
    _descriptor.FieldDescriptor(
      name='labels', full_name='Artifact.labels', index=3,
      number=4, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)A list of labels the artifact belongs to.'))),
    _descriptor.FieldDescriptor(
      name='supported_os', full_name='Artifact.supported_os', index=4,
      number=5, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\0222A list of operating systems the artifact supports.'))),
    _descriptor.FieldDescriptor(
      name='urls', full_name='Artifact.urls', index=5,
      number=6, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/A list of urls that help document the artifact.'))),
    _descriptor.FieldDescriptor(
      name='provides', full_name='Artifact.provides', index=6,
      number=8, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226A list of knowledgebase values this artifact provides.'))),
    _descriptor.FieldDescriptor(
      name='sources', full_name='Artifact.sources', index=7,
      number=9, 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033A list of artifact sources.'))),
    _descriptor.FieldDescriptor(
      name='error_message', full_name='Artifact.error_message', index=8,
      number=10, 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\0227The error message for artifacts that failed validation.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=944,
  serialized_end=1631,
)


_ARTIFACTPROCESSORDESCRIPTOR = _descriptor.Descriptor(
  name='ArtifactProcessorDescriptor',
  full_name='ArtifactProcessorDescriptor',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='ArtifactProcessorDescriptor.name', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&Processor\'s name as registered in GRR.'))),
    _descriptor.FieldDescriptor(
      name='description', full_name='ArtifactProcessorDescriptor.description', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\036Description of this processor.'))),
    _descriptor.FieldDescriptor(
      name='output_types', full_name='ArtifactProcessorDescriptor.output_types', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229The semantic types that can be produced by the processor.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1634,
  serialized_end=1875,
)


_ARTIFACTDESCRIPTOR = _descriptor.Descriptor(
  name='ArtifactDescriptor',
  full_name='ArtifactDescriptor',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifact', full_name='ArtifactDescriptor.artifact', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022\022\020Artifact itself.'))),
    _descriptor.FieldDescriptor(
      name='dependencies', full_name='ArtifactDescriptor.dependencies', index=1,
      number=2, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001.\022,Names of artifacts this artifact depends on.'))),
    _descriptor.FieldDescriptor(
      name='path_dependencies', full_name='ArtifactDescriptor.path_dependencies', index=2,
      number=3, type=9, cpp_type=9, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Names of KB objects this artifact depends on.'))),
    _descriptor.FieldDescriptor(
      name='processors', full_name='ArtifactDescriptor.processors', index=3,
      number=5, 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0016\0224Processors that will process this artifact\'s output.'))),
    _descriptor.FieldDescriptor(
      name='is_custom', full_name='ArtifactDescriptor.is_custom', index=4,
      number=6, 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229If True, this artifact was manually uploaded by the user.'))),
    _descriptor.FieldDescriptor(
      name='error_message', full_name='ArtifactDescriptor.error_message', index=5,
      number=7, 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\0227The error message for artifacts that failed validation.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1878,
  serialized_end=2397,
)


_ARTIFACTCOLLECTORARGS = _descriptor.Descriptor(
  name='ArtifactCollectorArgs',
  full_name='ArtifactCollectorArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='artifacts', full_name='ArtifactCollectorArgs.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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\026\022\024A list of artifacts.'))),
    _descriptor.FieldDescriptor(
      name='knowledge_base', full_name='ArtifactCollectorArgs.knowledge_base', 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,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2400,
  serialized_end=2531,
)


_EXTENDEDARTIFACT = _descriptor.Descriptor(
  name='ExtendedArtifact',
  full_name='ExtendedArtifact',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='name', full_name='ExtendedArtifact.name', index=0,
      number=1, type=9, cpp_type=9, label=2,
      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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\014ArtifactName\022\031The name of the artifact.'))),
    _descriptor.FieldDescriptor(
      name='sources', full_name='ExtendedArtifact.sources', index=1,
      number=2, type=11, cpp_type=10, label=3,
      has_default_value=False, default_value=[],
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The sources and what they depend on.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2534,
  serialized_end=2695,
)


_EXTENDEDSOURCE = _descriptor.Descriptor(
  name='ExtendedSource',
  full_name='ExtendedSource',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='base_source', full_name='ExtendedSource.base_source', index=0,
      number=1, type=11, cpp_type=10, label=2,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022\022\020The base source.'))),
    _descriptor.FieldDescriptor(
      name='path_type', full_name='ExtendedSource.path_type', index=1,
      number=6, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=-1,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\022\tPath Type'))),
    _descriptor.FieldDescriptor(
      name='max_bytesize', full_name='ExtendedSource.max_bytesize', index=2,
      number=7, type=4, cpp_type=4, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001`\n\010ByteSize\022TFile Finder Download Action Option: The maximum byte size of files we will download.'))),
    _descriptor.FieldDescriptor(
      name='max_number_files', full_name='ExtendedSource.max_number_files', index=3,
      number=8, type=5, cpp_type=1, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001B\022@File Finder Action Option: The maximum number of results to get.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2698,
  serialized_end=3062,
)


_ARTIFACTCOLLECTORRESULT = _descriptor.Descriptor(
  name='ArtifactCollectorResult',
  full_name='ArtifactCollectorResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3064,
  serialized_end=3089,
)

_ARTIFACTSOURCE.fields_by_name['type'].enum_type = _ARTIFACTSOURCE_SOURCETYPE
_ARTIFACTSOURCE.fields_by_name['attributes'].message_type = grr__response__proto_dot_jobs__pb2._DICT
_ARTIFACTSOURCE_SOURCETYPE.containing_type = _ARTIFACTSOURCE
_ARTIFACT.fields_by_name['sources'].message_type = _ARTIFACTSOURCE
_ARTIFACTDESCRIPTOR.fields_by_name['artifact'].message_type = _ARTIFACT
_ARTIFACTDESCRIPTOR.fields_by_name['processors'].message_type = _ARTIFACTPROCESSORDESCRIPTOR
_ARTIFACTCOLLECTORARGS.fields_by_name['artifacts'].message_type = _EXTENDEDARTIFACT
_ARTIFACTCOLLECTORARGS.fields_by_name['knowledge_base'].message_type = grr__response__proto_dot_knowledge__base__pb2._KNOWLEDGEBASE
_EXTENDEDARTIFACT.fields_by_name['sources'].message_type = _EXTENDEDSOURCE
_EXTENDEDSOURCE.fields_by_name['base_source'].message_type = _ARTIFACTSOURCE
_EXTENDEDSOURCE.fields_by_name['path_type'].enum_type = grr__response__proto_dot_jobs__pb2._PATHSPEC_PATHTYPE
DESCRIPTOR.message_types_by_name['ArtifactSource'] = _ARTIFACTSOURCE
DESCRIPTOR.message_types_by_name['Artifact'] = _ARTIFACT
DESCRIPTOR.message_types_by_name['ArtifactProcessorDescriptor'] = _ARTIFACTPROCESSORDESCRIPTOR
DESCRIPTOR.message_types_by_name['ArtifactDescriptor'] = _ARTIFACTDESCRIPTOR
DESCRIPTOR.message_types_by_name['ArtifactCollectorArgs'] = _ARTIFACTCOLLECTORARGS
DESCRIPTOR.message_types_by_name['ExtendedArtifact'] = _EXTENDEDARTIFACT
DESCRIPTOR.message_types_by_name['ExtendedSource'] = _EXTENDEDSOURCE
DESCRIPTOR.message_types_by_name['ArtifactCollectorResult'] = _ARTIFACTCOLLECTORRESULT
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ArtifactSource = _reflection.GeneratedProtocolMessageType('ArtifactSource', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTSOURCE,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactSource)
  ))
_sym_db.RegisterMessage(ArtifactSource)

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

ArtifactProcessorDescriptor = _reflection.GeneratedProtocolMessageType('ArtifactProcessorDescriptor', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTPROCESSORDESCRIPTOR,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactProcessorDescriptor)
  ))
_sym_db.RegisterMessage(ArtifactProcessorDescriptor)

ArtifactDescriptor = _reflection.GeneratedProtocolMessageType('ArtifactDescriptor', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTDESCRIPTOR,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactDescriptor)
  ))
_sym_db.RegisterMessage(ArtifactDescriptor)

ArtifactCollectorArgs = _reflection.GeneratedProtocolMessageType('ArtifactCollectorArgs', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTCOLLECTORARGS,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactCollectorArgs)
  ))
_sym_db.RegisterMessage(ArtifactCollectorArgs)

ExtendedArtifact = _reflection.GeneratedProtocolMessageType('ExtendedArtifact', (_message.Message,), dict(
  DESCRIPTOR = _EXTENDEDARTIFACT,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ExtendedArtifact)
  ))
_sym_db.RegisterMessage(ExtendedArtifact)

ExtendedSource = _reflection.GeneratedProtocolMessageType('ExtendedSource', (_message.Message,), dict(
  DESCRIPTOR = _EXTENDEDSOURCE,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ExtendedSource)
  ))
_sym_db.RegisterMessage(ExtendedSource)

ArtifactCollectorResult = _reflection.GeneratedProtocolMessageType('ArtifactCollectorResult', (_message.Message,), dict(
  DESCRIPTOR = _ARTIFACTCOLLECTORRESULT,
  __module__ = 'grr_response_proto.artifact_pb2'
  # @@protoc_insertion_point(class_scope:ArtifactCollectorResult)
  ))
_sym_db.RegisterMessage(ArtifactCollectorResult)


_ARTIFACTSOURCE.fields_by_name['type'].has_options = True
_ARTIFACTSOURCE.fields_by_name['type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\022\023The type of source.'))
_ARTIFACTSOURCE.fields_by_name['attributes'].has_options = True
_ARTIFACTSOURCE.fields_by_name['attributes']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229The attributes that describe the source. e.g. file paths.'))
_ARTIFACTSOURCE.fields_by_name['conditions'].has_options = True
_ARTIFACTSOURCE.fields_by_name['conditions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001P\022NObject filter conditions that decide if this source applies to a given system.'))
_ARTIFACTSOURCE.fields_by_name['returned_types'].has_options = True
_ARTIFACTSOURCE.fields_by_name['returned_types']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001s\022qA list of types that may be returned by this source. Anything returned that is not in this list will be filtered.'))
_ARTIFACTSOURCE.fields_by_name['supported_os'].has_options = True
_ARTIFACTSOURCE.fields_by_name['supported_os']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\022CA list of operating systems to which this source should be applied.'))
_ARTIFACT.fields_by_name['name'].has_options = True
_ARTIFACT.fields_by_name['name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\014ArtifactName\022%Globally unique name of the artifact.'))
_ARTIFACT.fields_by_name['conditions'].has_options = True
_ARTIFACT.fields_by_name['conditions']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001>\022<A list of conditions that decide if the artifact should run.'))
_ARTIFACT.fields_by_name['doc'].has_options = True
_ARTIFACT.fields_by_name['doc']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\022\034Doc string for the artifact.'))
_ARTIFACT.fields_by_name['labels'].has_options = True
_ARTIFACT.fields_by_name['labels']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)A list of labels the artifact belongs to.'))
_ARTIFACT.fields_by_name['supported_os'].has_options = True
_ARTIFACT.fields_by_name['supported_os']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0014\0222A list of operating systems the artifact supports.'))
_ARTIFACT.fields_by_name['urls'].has_options = True
_ARTIFACT.fields_by_name['urls']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\022/A list of urls that help document the artifact.'))
_ARTIFACT.fields_by_name['provides'].has_options = True
_ARTIFACT.fields_by_name['provides']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0018\0226A list of knowledgebase values this artifact provides.'))
_ARTIFACT.fields_by_name['sources'].has_options = True
_ARTIFACT.fields_by_name['sources']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\035\022\033A list of artifact sources.'))
_ARTIFACT.fields_by_name['error_message'].has_options = True
_ARTIFACT.fields_by_name['error_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\0227The error message for artifacts that failed validation.'))
_ARTIFACTPROCESSORDESCRIPTOR.fields_by_name['name'].has_options = True
_ARTIFACTPROCESSORDESCRIPTOR.fields_by_name['name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001(\022&Processor\'s name as registered in GRR.'))
_ARTIFACTPROCESSORDESCRIPTOR.fields_by_name['description'].has_options = True
_ARTIFACTPROCESSORDESCRIPTOR.fields_by_name['description']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\036Description of this processor.'))
_ARTIFACTPROCESSORDESCRIPTOR.fields_by_name['output_types'].has_options = True
_ARTIFACTPROCESSORDESCRIPTOR.fields_by_name['output_types']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229The semantic types that can be produced by the processor.'))
_ARTIFACTDESCRIPTOR.fields_by_name['artifact'].has_options = True
_ARTIFACTDESCRIPTOR.fields_by_name['artifact']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022\022\020Artifact itself.'))
_ARTIFACTDESCRIPTOR.fields_by_name['dependencies'].has_options = True
_ARTIFACTDESCRIPTOR.fields_by_name['dependencies']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001.\022,Names of artifacts this artifact depends on.'))
_ARTIFACTDESCRIPTOR.fields_by_name['path_dependencies'].has_options = True
_ARTIFACTDESCRIPTOR.fields_by_name['path_dependencies']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\022-Names of KB objects this artifact depends on.'))
_ARTIFACTDESCRIPTOR.fields_by_name['processors'].has_options = True
_ARTIFACTDESCRIPTOR.fields_by_name['processors']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0016\0224Processors that will process this artifact\'s output.'))
_ARTIFACTDESCRIPTOR.fields_by_name['is_custom'].has_options = True
_ARTIFACTDESCRIPTOR.fields_by_name['is_custom']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\0229If True, this artifact was manually uploaded by the user.'))
_ARTIFACTDESCRIPTOR.fields_by_name['error_message'].has_options = True
_ARTIFACTDESCRIPTOR.fields_by_name['error_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\0227The error message for artifacts that failed validation.'))
_ARTIFACTCOLLECTORARGS.fields_by_name['artifacts'].has_options = True
_ARTIFACTCOLLECTORARGS.fields_by_name['artifacts']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\026\022\024A list of artifacts.'))
_EXTENDEDARTIFACT.fields_by_name['name'].has_options = True
_EXTENDEDARTIFACT.fields_by_name['name']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\014ArtifactName\022\031The name of the artifact.'))
_EXTENDEDARTIFACT.fields_by_name['sources'].has_options = True
_EXTENDEDARTIFACT.fields_by_name['sources']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The sources and what they depend on.'))
_EXTENDEDSOURCE.fields_by_name['base_source'].has_options = True
_EXTENDEDSOURCE.fields_by_name['base_source']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022\022\020The base source.'))
_EXTENDEDSOURCE.fields_by_name['path_type'].has_options = True
_EXTENDEDSOURCE.fields_by_name['path_type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\022\tPath Type'))
_EXTENDEDSOURCE.fields_by_name['max_bytesize'].has_options = True
_EXTENDEDSOURCE.fields_by_name['max_bytesize']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001`\n\010ByteSize\022TFile Finder Download Action Option: The maximum byte size of files we will download.'))
_EXTENDEDSOURCE.fields_by_name['max_number_files'].has_options = True
_EXTENDEDSOURCE.fields_by_name['max_number_files']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001B\022@File Finder Action Option: The maximum number of results to get.'))
# @@protoc_insertion_point(module_scope)
