# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: grr/proto/api/client.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.proto.api import stats_pb2 as grr_dot_proto_dot_api_dot_stats__pb2
from grr.proto import jobs_pb2 as grr_dot_proto_dot_jobs__pb2
from grr.proto import knowledge_base_pb2 as grr_dot_proto_dot_knowledge__base__pb2
from grr.proto import semantic_pb2 as grr_dot_proto_dot_semantic__pb2
from grr.proto import sysinfo_pb2 as grr_dot_proto_dot_sysinfo__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='grr/proto/api/client.proto',
  package='',
  syntax='proto2',
  serialized_pb=_b('\n\x1agrr/proto/api/client.proto\x1a\x19grr/proto/api/stats.proto\x1a\x14grr/proto/jobs.proto\x1a\x1egrr/proto/knowledge_base.proto\x1a\x18grr/proto/semantic.proto\x1a\x17grr/proto/sysinfo.proto\"\x83\x07\n\tApiClient\x12\x32\n\tclient_id\x18\x12 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12+\n\x03urn\x18\x01 \x01(\tB\x1e\xe2\xfc\xe3\xc4\x01\x18\n\tClientURN\x12\x0b\x43lient URN.\x12&\n\nagent_info\x18\x02 \x01(\x0b\x32\x12.ClientInformation\x12$\n\rhardware_info\x18\x03 \x01(\x0b\x32\r.HardwareInfo\x12\x17\n\x07os_info\x18\x04 \x01(\x0b\x32\x06.Uname\x12&\n\x0eknowledge_base\x18\x10 \x01(\x0b\x32\x0e.KnowledgeBase\x12G\n\x0bmemory_size\x18\x11 \x01(\x04\x42\x32\xe2\xfc\xe3\xc4\x01,\n\x08\x42yteSize\x12 Memory available to this client.\x12\x42\n\rfirst_seen_at\x18\x06 \x01(\x04\x42+\xe2\xfc\xe3\xc4\x01%\n\x0bRDFDatetime\x12\x16When flow was created.\x12L\n\x0clast_seen_at\x18\x07 \x01(\x04\x42\x36\xe2\xfc\xe3\xc4\x01\x30\n\x0bRDFDatetime\x12!Last time when client checked in.\x12<\n\x0elast_booted_at\x18\x08 \x01(\x04\x42$\xe2\xfc\xe3\xc4\x01\x1e\n\x0bRDFDatetime\x12\x0fLast boot time.\x12S\n\nlast_clock\x18\t \x01(\x04\x42?\xe2\xfc\xe3\xc4\x01\x39\n\x0bRDFDatetime\x12*Client clocks value during latest checkin.\x12<\n\rlast_crash_at\x18\n \x01(\x04\x42%\xe2\xfc\xe3\xc4\x01\x1f\n\x0bRDFDatetime\x12\x10Last crash time.\x12 \n\x06labels\x18\x0b \x03(\x0b\x32\x10.AFF4ObjectLabel\x12\x1e\n\ninterfaces\x18\x0c \x03(\x0b\x32\n.Interface\x12\x14\n\x05users\x18\r \x03(\x0b\x32\x05.User\x12\x18\n\x07volumes\x18\x0e \x03(\x0b\x32\x07.Volume\x12@\n\x03\x61ge\x18\x0f \x01(\x04\x42\x33\xe2\xfc\xe3\xc4\x01-\n\x0bRDFDatetime\x12\x1e\x41ge of the client information.\x12&\n\x0e\x63loud_instance\x18\x13 \x01(\x0b\x32\x0e.CloudInstance\"\xca\x02\n\x16\x41piClientActionRequest\x12\x0f\n\x07task_id\x18\x01 \x01(\x04\x12I\n\x08task_eta\x18\x02 \x01(\x04\x42\x37\xe2\xfc\xe3\xc4\x01\x31\n\x0bRDFDatetime\x12\"This task\'s lease expiration time.\x12J\n\nsession_id\x18\x03 \x01(\tB6\xe2\xfc\xe3\xc4\x01\x30\n\x06RDFURN\x12&Session id that triggered the request.\x12<\n\rclient_action\x18\x04 \x01(\tB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dRequested client action name.\x12J\n\tresponses\x18\x05 \x03(\x0b\x32\x0b.GrrMessageB*\xe2\xfc\xe3\xc4\x01$\x12\"Responses queued for this request.\"\xa7\x02\n\x14\x41piSearchClientsArgs\x12\x9d\x01\n\x05query\x18\x01 \x01(\tB\x8d\x01\xe2\xfc\xe3\xc4\x01\x86\x01\x12\x83\x01Search query string. See here for syntax: https://grr-doc.readthedocs.io/en/v3.2.0/investigating-with-grr/searching-for-client.html\x12\x36\n\x06offset\x18\x02 \x01(\x03\x42&\xe2\xfc\xe3\xc4\x01 \x12\x1e\x46ound clients starting offset.\x12\x37\n\x05\x63ount\x18\x03 \x01(\x03\x42(\xe2\xfc\xe3\xc4\x01\"\x12 Number of found client to fetch.\"3\n\x16\x41piSearchClientsResult\x12\x19\n\x05items\x18\x01 \x03(\x0b\x32\n.ApiClient\"\x88\x01\n\x10\x41piGetClientArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12@\n\ttimestamp\x18\x02 \x01(\x04\x42-\xe2\xfc\xe3\xc4\x01\'\n\x0bRDFDatetime\x12\x18Timestamp of the client.\"\xd9\x03\n\x18\x41piGetClientVersionsArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12U\n\x05start\x18\x02 \x01(\x04\x42\x46\xe2\xfc\xe3\xc4\x01@\n\x0bRDFDatetime\x12\x31Timerange start (timerange is a closed interval).\x12Q\n\x03\x65nd\x18\x03 \x01(\x04\x42\x44\xe2\xfc\xe3\xc4\x01>\n\x0bRDFDatetime\x12/Timerange end (timerange is a closed interval).\x12\xb7\x01\n\x04mode\x18\x04 \x01(\x0e\x32\x1e.ApiGetClientVersionsArgs.ModeB\x88\x01\xe2\xfc\xe3\xc4\x01\x81\x01\x12\x7fMode to be used: FULL to return full versions for every timestamp, DIFF to return only differences between subsequent versions.\"%\n\x04Mode\x12\t\n\x05UNSET\x10\x00\x12\x08\n\x04\x46ULL\x10\x01\x12\x08\n\x04\x44IFF\x10\x02\"7\n\x1a\x41piGetClientVersionsResult\x12\x19\n\x05items\x18\x01 \x03(\x0b\x32\n.ApiClient\"R\n\x1c\x41piGetClientVersionTimesArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\"`\n\x1e\x41piGetClientVersionTimesResult\x12>\n\x05times\x18\x01 \x03(\x04\x42/\xe2\xfc\xe3\xc4\x01)\n\x0bRDFDatetime\x12\x1aThe list of version times.\"N\n\x18\x41piInterrogateClientArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\"`\n\x1a\x41piInterrogateClientResult\x12\x42\n\x0coperation_id\x18\x01 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$The id of the interrogate operation.\"i\n#ApiGetInterrogateOperationStateArgs\x12\x42\n\x0coperation_id\x18\x01 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$The id of the interrogate operation.\"\xb9\x01\n%ApiGetInterrogateOperationStateResult\x12l\n\x05state\x18\x01 \x01(\x0e\x32,.ApiGetInterrogateOperationStateResult.StateB/\xe2\xfc\xe3\xc4\x01)\x12\'The state of the interrogate operation.\"\"\n\x05State\x12\x0b\n\x07RUNNING\x10\x00\x12\x0c\n\x08\x46INISHED\x10\x01\"S\n\x1d\x41piGetLastClientIPAddressArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\"\xc4\x02\n\x1f\x41piGetLastClientIPAddressResult\x12H\n\x02ip\x18\x01 \x01(\tB<\xe2\xfc\xe3\xc4\x01\x36\x12\x34The ip the client used for the latest communication.\x12;\n\x04info\x18\x02 \x01(\tB-\xe2\xfc\xe3\xc4\x01\'\x12%Additional info about the ip address.\x12^\n\x06status\x18\x03 \x01(\x0e\x32\'.ApiGetLastClientIPAddressResult.StatusB%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dThe status of the ip address.\":\n\x06Status\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x0c\n\x08INTERNAL\x10\x01\x12\x0c\n\x08\x45XTERNAL\x10\x02\x12\x07\n\x03VPN\x10\x03\"\xa2\x02\n\x18\x41piListClientCrashesArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12\x37\n\x06offset\x18\x02 \x01(\x03\x42\'\xe2\xfc\xe3\xc4\x01!\x12\x1f\x43lient crashes starting offset.\x12\x36\n\x05\x63ount\x18\x03 \x01(\x03\x42\'\xe2\xfc\xe3\xc4\x01!\x12\x1fMax number of crashes to fetch.\x12\x61\n\x06\x66ilter\x18\x04 \x01(\tBQ\xe2\xfc\xe3\xc4\x01K\x12IReturn only results whose string representation contains given substring.\"\x89\x01\n\x1a\x41piListClientCrashesResult\x12\x37\n\x05items\x18\x01 \x03(\x0b\x32\x0c.ClientCrashB\x1a\xe2\xfc\xe3\xc4\x01\x14\x12\x12The client crashes\x12\x32\n\x0btotal_count\x18\x02 \x01(\x03\x42\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15Total count of items.\"^\n\x17\x41piAddClientsLabelsArgs\x12\x33\n\nclient_ids\x18\x01 \x03(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12\x0e\n\x06labels\x18\x02 \x03(\t\"a\n\x1a\x41piRemoveClientsLabelsArgs\x12\x33\n\nclient_ids\x18\x01 \x03(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12\x0e\n\x06labels\x18\x02 \x03(\t\"=\n\x1a\x41piListClientsLabelsResult\x12\x1f\n\x05items\x18\x01 \x03(\x0b\x32\x10.AFF4ObjectLabel\"&\n\x15\x41piListKbFieldsResult\x12\r\n\x05items\x18\x02 \x03(\t\"\xa4\x05\n\x19\x41piGetClientLoadStatsArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12\x8a\x01\n\x05start\x18\x02 \x01(\x04\x42{\xe2\xfc\xe3\xc4\x01u\n\x0bRDFDatetime\x12\x66\x46\x65tch client load stats data starting from this timestamp. If not set, will default to 30 minutes ago.\x12\x9c\x01\n\x03\x65nd\x18\x03 \x01(\x04\x42\x8e\x01\xe2\xfc\xe3\xc4\x01\x87\x01\n\x0bRDFDatetime\x12xFetch client load stats data from the interval ending with this timestamp. If not set, will default to the current time.\x12\x31\n\x06metric\x18\x05 \x01(\x0e\x32!.ApiGetClientLoadStatsArgs.Metric\"\xf3\x01\n\x06Metric\x12\x0f\n\x0b\x43PU_PERCENT\x10\x00\x12\x0e\n\nCPU_SYSTEM\x10\x01\x12\x0c\n\x08\x43PU_USER\x10\x02\x12\x11\n\rIO_READ_BYTES\x10\x03\x12\x12\n\x0eIO_WRITE_BYTES\x10\x04\x12\x0f\n\x0bIO_READ_OPS\x10\x05\x12\x10\n\x0cIO_WRITE_OPS\x10\x06\x12\x1a\n\x16NETWORK_BYTES_RECEIVED\x10\x07\x12\x16\n\x12NETWORK_BYTES_SENT\x10\x08\x12\x12\n\x0eMEMORY_PERCENT\x10\t\x12\x13\n\x0fMEMORY_RSS_SIZE\x10\n\x12\x13\n\x0fMEMORY_VMS_SIZE\x10\x0b\"Q\n\x1b\x41piGetClientLoadStatsResult\x12\x32\n\x0b\x64\x61ta_points\x18\x01 \x03(\x0b\x32\x1d.ApiStatsStoreMetricDataPoint\"\xab\x01\n\x1f\x41piListClientActionRequestsArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12T\n\x0f\x66\x65tch_responses\x18\x02 \x01(\x08\x42;\xe2\xfc\xe3\xc4\x01\x35\x12\x33If true, fetch all the responses for every request.\"K\n!ApiListClientActionRequestsResult\x12&\n\x05items\x18\x01 \x03(\x0b\x32\x17.ApiClientActionRequest')
  ,
  dependencies=[grr_dot_proto_dot_api_dot_stats__pb2.DESCRIPTOR,grr_dot_proto_dot_jobs__pb2.DESCRIPTOR,grr_dot_proto_dot_knowledge__base__pb2.DESCRIPTOR,grr_dot_proto_dot_semantic__pb2.DESCRIPTOR,grr_dot_proto_dot_sysinfo__pb2.DESCRIPTOR,])



_APIGETCLIENTVERSIONSARGS_MODE = _descriptor.EnumDescriptor(
  name='Mode',
  full_name='ApiGetClientVersionsArgs.Mode',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNSET', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FULL', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='DIFF', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=2324,
  serialized_end=2361,
)
_sym_db.RegisterEnumDescriptor(_APIGETCLIENTVERSIONSARGS_MODE)

_APIGETINTERROGATEOPERATIONSTATERESULT_STATE = _descriptor.EnumDescriptor(
  name='State',
  full_name='ApiGetInterrogateOperationStateResult.State',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='RUNNING', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FINISHED', index=1, number=1,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3039,
  serialized_end=3073,
)
_sym_db.RegisterEnumDescriptor(_APIGETINTERROGATEOPERATIONSTATERESULT_STATE)

_APIGETLASTCLIENTIPADDRESSRESULT_STATUS = _descriptor.EnumDescriptor(
  name='Status',
  full_name='ApiGetLastClientIPAddressResult.Status',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='INTERNAL', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='EXTERNAL', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VPN', index=3, number=3,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=3427,
  serialized_end=3485,
)
_sym_db.RegisterEnumDescriptor(_APIGETLASTCLIENTIPADDRESSRESULT_STATUS)

_APIGETCLIENTLOADSTATSARGS_METRIC = _descriptor.EnumDescriptor(
  name='Metric',
  full_name='ApiGetClientLoadStatsArgs.Metric',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='CPU_PERCENT', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CPU_SYSTEM', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CPU_USER', index=2, number=2,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IO_READ_BYTES', index=3, number=3,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IO_WRITE_BYTES', index=4, number=4,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IO_READ_OPS', index=5, number=5,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='IO_WRITE_OPS', index=6, number=6,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NETWORK_BYTES_RECEIVED', index=7, number=7,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='NETWORK_BYTES_SENT', index=8, number=8,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MEMORY_PERCENT', index=9, number=9,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MEMORY_RSS_SIZE', index=10, number=10,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='MEMORY_VMS_SIZE', index=11, number=11,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4652,
  serialized_end=4895,
)
_sym_db.RegisterEnumDescriptor(_APIGETCLIENTLOADSTATSARGS_METRIC)


_APICLIENT = _descriptor.Descriptor(
  name='ApiClient',
  full_name='ApiClient',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiClient.client_id', index=0,
      number=18, 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='urn', full_name='ApiClient.urn', index=1,
      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\030\n\tClientURN\022\013Client URN.'))),
    _descriptor.FieldDescriptor(
      name='agent_info', full_name='ApiClient.agent_info', index=2,
      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),
    _descriptor.FieldDescriptor(
      name='hardware_info', full_name='ApiClient.hardware_info', index=3,
      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,
      options=None),
    _descriptor.FieldDescriptor(
      name='os_info', full_name='ApiClient.os_info', index=4,
      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,
      options=None),
    _descriptor.FieldDescriptor(
      name='knowledge_base', full_name='ApiClient.knowledge_base', index=5,
      number=16, 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),
    _descriptor.FieldDescriptor(
      name='memory_size', full_name='ApiClient.memory_size', index=6,
      number=17, 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\022 Memory available to this client.'))),
    _descriptor.FieldDescriptor(
      name='first_seen_at', full_name='ApiClient.first_seen_at', index=7,
      number=6, 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\013RDFDatetime\022\026When flow was created.'))),
    _descriptor.FieldDescriptor(
      name='last_seen_at', full_name='ApiClient.last_seen_at', index=8,
      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\0010\n\013RDFDatetime\022!Last time when client checked in.'))),
    _descriptor.FieldDescriptor(
      name='last_booted_at', full_name='ApiClient.last_booted_at', index=9,
      number=8, 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\036\n\013RDFDatetime\022\017Last boot time.'))),
    _descriptor.FieldDescriptor(
      name='last_clock', full_name='ApiClient.last_clock', index=10,
      number=9, 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\0019\n\013RDFDatetime\022*Client clocks value during latest checkin.'))),
    _descriptor.FieldDescriptor(
      name='last_crash_at', full_name='ApiClient.last_crash_at', index=11,
      number=10, 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\037\n\013RDFDatetime\022\020Last crash time.'))),
    _descriptor.FieldDescriptor(
      name='labels', full_name='ApiClient.labels', index=12,
      number=11, 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=None),
    _descriptor.FieldDescriptor(
      name='interfaces', full_name='ApiClient.interfaces', index=13,
      number=12, 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=None),
    _descriptor.FieldDescriptor(
      name='users', full_name='ApiClient.users', index=14,
      number=13, 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=None),
    _descriptor.FieldDescriptor(
      name='volumes', full_name='ApiClient.volumes', index=15,
      number=14, 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=None),
    _descriptor.FieldDescriptor(
      name='age', full_name='ApiClient.age', index=16,
      number=15, 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\013RDFDatetime\022\036Age of the client information.'))),
    _descriptor.FieldDescriptor(
      name='cloud_instance', full_name='ApiClient.cloud_instance', index=17,
      number=19, 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=163,
  serialized_end=1062,
)


_APICLIENTACTIONREQUEST = _descriptor.Descriptor(
  name='ApiClientActionRequest',
  full_name='ApiClientActionRequest',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='task_id', full_name='ApiClientActionRequest.task_id', index=0,
      number=1, 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=None),
    _descriptor.FieldDescriptor(
      name='task_eta', full_name='ApiClientActionRequest.task_eta', index=1,
      number=2, 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\0011\n\013RDFDatetime\022\"This task\'s lease expiration time.'))),
    _descriptor.FieldDescriptor(
      name='session_id', full_name='ApiClientActionRequest.session_id', 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\0010\n\006RDFURN\022&Session id that triggered the request.'))),
    _descriptor.FieldDescriptor(
      name='client_action', full_name='ApiClientActionRequest.client_action', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Requested client action name.'))),
    _descriptor.FieldDescriptor(
      name='responses', full_name='ApiClientActionRequest.responses', index=4,
      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\001$\022\"Responses queued for this request.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1065,
  serialized_end=1395,
)


_APISEARCHCLIENTSARGS = _descriptor.Descriptor(
  name='ApiSearchClientsArgs',
  full_name='ApiSearchClientsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='query', full_name='ApiSearchClientsArgs.query', 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\206\001\022\203\001Search query string. See here for syntax: https://grr-doc.readthedocs.io/en/v3.2.0/investigating-with-grr/searching-for-client.html'))),
    _descriptor.FieldDescriptor(
      name='offset', full_name='ApiSearchClientsArgs.offset', index=1,
      number=2, type=3, cpp_type=2, 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 \022\036Found clients starting offset.'))),
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiSearchClientsArgs.count', index=2,
      number=3, type=3, cpp_type=2, 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\"\022 Number of found client to fetch.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1398,
  serialized_end=1693,
)


_APISEARCHCLIENTSRESULT = _descriptor.Descriptor(
  name='ApiSearchClientsResult',
  full_name='ApiSearchClientsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiSearchClientsResult.items', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1695,
  serialized_end=1746,
)


_APIGETCLIENTARGS = _descriptor.Descriptor(
  name='ApiGetClientArgs',
  full_name='ApiGetClientArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGetClientArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='ApiGetClientArgs.timestamp', index=1,
      number=2, 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\013RDFDatetime\022\030Timestamp of the client.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1749,
  serialized_end=1885,
)


_APIGETCLIENTVERSIONSARGS = _descriptor.Descriptor(
  name='ApiGetClientVersionsArgs',
  full_name='ApiGetClientVersionsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGetClientVersionsArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='start', full_name='ApiGetClientVersionsArgs.start', index=1,
      number=2, 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\013RDFDatetime\0221Timerange start (timerange is a closed interval).'))),
    _descriptor.FieldDescriptor(
      name='end', full_name='ApiGetClientVersionsArgs.end', index=2,
      number=3, 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\013RDFDatetime\022/Timerange end (timerange is a closed interval).'))),
    _descriptor.FieldDescriptor(
      name='mode', full_name='ApiGetClientVersionsArgs.mode', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\201\001\022\177Mode to be used: FULL to return full versions for every timestamp, DIFF to return only differences between subsequent versions.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _APIGETCLIENTVERSIONSARGS_MODE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1888,
  serialized_end=2361,
)


_APIGETCLIENTVERSIONSRESULT = _descriptor.Descriptor(
  name='ApiGetClientVersionsResult',
  full_name='ApiGetClientVersionsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiGetClientVersionsResult.items', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2363,
  serialized_end=2418,
)


_APIGETCLIENTVERSIONTIMESARGS = _descriptor.Descriptor(
  name='ApiGetClientVersionTimesArgs',
  full_name='ApiGetClientVersionTimesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGetClientVersionTimesArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2420,
  serialized_end=2502,
)


_APIGETCLIENTVERSIONTIMESRESULT = _descriptor.Descriptor(
  name='ApiGetClientVersionTimesResult',
  full_name='ApiGetClientVersionTimesResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='times', full_name='ApiGetClientVersionTimesResult.times', index=0,
      number=1, type=4, cpp_type=4, 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)\n\013RDFDatetime\022\032The list of version times.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2504,
  serialized_end=2600,
)


_APIINTERROGATECLIENTARGS = _descriptor.Descriptor(
  name='ApiInterrogateClientArgs',
  full_name='ApiInterrogateClientArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiInterrogateClientArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2602,
  serialized_end=2680,
)


_APIINTERROGATECLIENTRESULT = _descriptor.Descriptor(
  name='ApiInterrogateClientResult',
  full_name='ApiInterrogateClientResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='operation_id', full_name='ApiInterrogateClientResult.operation_id', 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$The id of the interrogate operation.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2682,
  serialized_end=2778,
)


_APIGETINTERROGATEOPERATIONSTATEARGS = _descriptor.Descriptor(
  name='ApiGetInterrogateOperationStateArgs',
  full_name='ApiGetInterrogateOperationStateArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='operation_id', full_name='ApiGetInterrogateOperationStateArgs.operation_id', 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$The id of the interrogate operation.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2780,
  serialized_end=2885,
)


_APIGETINTERROGATEOPERATIONSTATERESULT = _descriptor.Descriptor(
  name='ApiGetInterrogateOperationStateResult',
  full_name='ApiGetInterrogateOperationStateResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='state', full_name='ApiGetInterrogateOperationStateResult.state', 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)\022\'The state of the interrogate operation.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _APIGETINTERROGATEOPERATIONSTATERESULT_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2888,
  serialized_end=3073,
)


_APIGETLASTCLIENTIPADDRESSARGS = _descriptor.Descriptor(
  name='ApiGetLastClientIPAddressArgs',
  full_name='ApiGetLastClientIPAddressArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGetLastClientIPAddressArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3075,
  serialized_end=3158,
)


_APIGETLASTCLIENTIPADDRESSRESULT = _descriptor.Descriptor(
  name='ApiGetLastClientIPAddressResult',
  full_name='ApiGetLastClientIPAddressResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='ip', full_name='ApiGetLastClientIPAddressResult.ip', 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\0016\0224The ip the client used for the latest communication.'))),
    _descriptor.FieldDescriptor(
      name='info', full_name='ApiGetLastClientIPAddressResult.info', 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%Additional info about the ip address.'))),
    _descriptor.FieldDescriptor(
      name='status', full_name='ApiGetLastClientIPAddressResult.status', index=2,
      number=3, 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\037\022\035The status of the ip address.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _APIGETLASTCLIENTIPADDRESSRESULT_STATUS,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3161,
  serialized_end=3485,
)


_APILISTCLIENTCRASHESARGS = _descriptor.Descriptor(
  name='ApiListClientCrashesArgs',
  full_name='ApiListClientCrashesArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiListClientCrashesArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='offset', full_name='ApiListClientCrashesArgs.offset', index=1,
      number=2, type=3, cpp_type=2, 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!\022\037Client crashes starting offset.'))),
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiListClientCrashesArgs.count', index=2,
      number=3, type=3, cpp_type=2, 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!\022\037Max number of crashes to fetch.'))),
    _descriptor.FieldDescriptor(
      name='filter', full_name='ApiListClientCrashesArgs.filter', 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,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022IReturn only results whose string representation contains given substring.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3488,
  serialized_end=3778,
)


_APILISTCLIENTCRASHESRESULT = _descriptor.Descriptor(
  name='ApiListClientCrashesResult',
  full_name='ApiListClientCrashesResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListClientCrashesResult.items', 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\024\022\022The client crashes'))),
    _descriptor.FieldDescriptor(
      name='total_count', full_name='ApiListClientCrashesResult.total_count', index=1,
      number=2, type=3, cpp_type=2, 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\027\022\025Total count of items.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3781,
  serialized_end=3918,
)


_APIADDCLIENTSLABELSARGS = _descriptor.Descriptor(
  name='ApiAddClientsLabelsArgs',
  full_name='ApiAddClientsLabelsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_ids', full_name='ApiAddClientsLabelsArgs.client_ids', index=0,
      number=1, 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='labels', full_name='ApiAddClientsLabelsArgs.labels', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3920,
  serialized_end=4014,
)


_APIREMOVECLIENTSLABELSARGS = _descriptor.Descriptor(
  name='ApiRemoveClientsLabelsArgs',
  full_name='ApiRemoveClientsLabelsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_ids', full_name='ApiRemoveClientsLabelsArgs.client_ids', index=0,
      number=1, 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='labels', full_name='ApiRemoveClientsLabelsArgs.labels', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4016,
  serialized_end=4113,
)


_APILISTCLIENTSLABELSRESULT = _descriptor.Descriptor(
  name='ApiListClientsLabelsResult',
  full_name='ApiListClientsLabelsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListClientsLabelsResult.items', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4115,
  serialized_end=4176,
)


_APILISTKBFIELDSRESULT = _descriptor.Descriptor(
  name='ApiListKbFieldsResult',
  full_name='ApiListKbFieldsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListKbFieldsResult.items', index=0,
      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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4178,
  serialized_end=4216,
)


_APIGETCLIENTLOADSTATSARGS = _descriptor.Descriptor(
  name='ApiGetClientLoadStatsArgs',
  full_name='ApiGetClientLoadStatsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGetClientLoadStatsArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='start', full_name='ApiGetClientLoadStatsArgs.start', index=1,
      number=2, 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\001u\n\013RDFDatetime\022fFetch client load stats data starting from this timestamp. If not set, will default to 30 minutes ago.'))),
    _descriptor.FieldDescriptor(
      name='end', full_name='ApiGetClientLoadStatsArgs.end', index=2,
      number=3, 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\207\001\n\013RDFDatetime\022xFetch client load stats data from the interval ending with this timestamp. If not set, will default to the current time.'))),
    _descriptor.FieldDescriptor(
      name='metric', full_name='ApiGetClientLoadStatsArgs.metric', index=3,
      number=5, 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _APIGETCLIENTLOADSTATSARGS_METRIC,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4219,
  serialized_end=4895,
)


_APIGETCLIENTLOADSTATSRESULT = _descriptor.Descriptor(
  name='ApiGetClientLoadStatsResult',
  full_name='ApiGetClientLoadStatsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='data_points', full_name='ApiGetClientLoadStatsResult.data_points', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4897,
  serialized_end=4978,
)


_APILISTCLIENTACTIONREQUESTSARGS = _descriptor.Descriptor(
  name='ApiListClientActionRequestsArgs',
  full_name='ApiListClientActionRequestsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiListClientActionRequestsArgs.client_id', 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\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='fetch_responses', full_name='ApiListClientActionRequestsArgs.fetch_responses', index=1,
      number=2, 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\0015\0223If true, fetch all the responses for every request.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4981,
  serialized_end=5152,
)


_APILISTCLIENTACTIONREQUESTSRESULT = _descriptor.Descriptor(
  name='ApiListClientActionRequestsResult',
  full_name='ApiListClientActionRequestsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListClientActionRequestsResult.items', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5154,
  serialized_end=5229,
)

_APICLIENT.fields_by_name['agent_info'].message_type = grr_dot_proto_dot_jobs__pb2._CLIENTINFORMATION
_APICLIENT.fields_by_name['hardware_info'].message_type = grr_dot_proto_dot_sysinfo__pb2._HARDWAREINFO
_APICLIENT.fields_by_name['os_info'].message_type = grr_dot_proto_dot_jobs__pb2._UNAME
_APICLIENT.fields_by_name['knowledge_base'].message_type = grr_dot_proto_dot_knowledge__base__pb2._KNOWLEDGEBASE
_APICLIENT.fields_by_name['labels'].message_type = grr_dot_proto_dot_jobs__pb2._AFF4OBJECTLABEL
_APICLIENT.fields_by_name['interfaces'].message_type = grr_dot_proto_dot_jobs__pb2._INTERFACE
_APICLIENT.fields_by_name['users'].message_type = grr_dot_proto_dot_knowledge__base__pb2._USER
_APICLIENT.fields_by_name['volumes'].message_type = grr_dot_proto_dot_sysinfo__pb2._VOLUME
_APICLIENT.fields_by_name['cloud_instance'].message_type = grr_dot_proto_dot_jobs__pb2._CLOUDINSTANCE
_APICLIENTACTIONREQUEST.fields_by_name['responses'].message_type = grr_dot_proto_dot_jobs__pb2._GRRMESSAGE
_APISEARCHCLIENTSRESULT.fields_by_name['items'].message_type = _APICLIENT
_APIGETCLIENTVERSIONSARGS.fields_by_name['mode'].enum_type = _APIGETCLIENTVERSIONSARGS_MODE
_APIGETCLIENTVERSIONSARGS_MODE.containing_type = _APIGETCLIENTVERSIONSARGS
_APIGETCLIENTVERSIONSRESULT.fields_by_name['items'].message_type = _APICLIENT
_APIGETINTERROGATEOPERATIONSTATERESULT.fields_by_name['state'].enum_type = _APIGETINTERROGATEOPERATIONSTATERESULT_STATE
_APIGETINTERROGATEOPERATIONSTATERESULT_STATE.containing_type = _APIGETINTERROGATEOPERATIONSTATERESULT
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['status'].enum_type = _APIGETLASTCLIENTIPADDRESSRESULT_STATUS
_APIGETLASTCLIENTIPADDRESSRESULT_STATUS.containing_type = _APIGETLASTCLIENTIPADDRESSRESULT
_APILISTCLIENTCRASHESRESULT.fields_by_name['items'].message_type = grr_dot_proto_dot_jobs__pb2._CLIENTCRASH
_APILISTCLIENTSLABELSRESULT.fields_by_name['items'].message_type = grr_dot_proto_dot_jobs__pb2._AFF4OBJECTLABEL
_APIGETCLIENTLOADSTATSARGS.fields_by_name['metric'].enum_type = _APIGETCLIENTLOADSTATSARGS_METRIC
_APIGETCLIENTLOADSTATSARGS_METRIC.containing_type = _APIGETCLIENTLOADSTATSARGS
_APIGETCLIENTLOADSTATSRESULT.fields_by_name['data_points'].message_type = grr_dot_proto_dot_api_dot_stats__pb2._APISTATSSTOREMETRICDATAPOINT
_APILISTCLIENTACTIONREQUESTSRESULT.fields_by_name['items'].message_type = _APICLIENTACTIONREQUEST
DESCRIPTOR.message_types_by_name['ApiClient'] = _APICLIENT
DESCRIPTOR.message_types_by_name['ApiClientActionRequest'] = _APICLIENTACTIONREQUEST
DESCRIPTOR.message_types_by_name['ApiSearchClientsArgs'] = _APISEARCHCLIENTSARGS
DESCRIPTOR.message_types_by_name['ApiSearchClientsResult'] = _APISEARCHCLIENTSRESULT
DESCRIPTOR.message_types_by_name['ApiGetClientArgs'] = _APIGETCLIENTARGS
DESCRIPTOR.message_types_by_name['ApiGetClientVersionsArgs'] = _APIGETCLIENTVERSIONSARGS
DESCRIPTOR.message_types_by_name['ApiGetClientVersionsResult'] = _APIGETCLIENTVERSIONSRESULT
DESCRIPTOR.message_types_by_name['ApiGetClientVersionTimesArgs'] = _APIGETCLIENTVERSIONTIMESARGS
DESCRIPTOR.message_types_by_name['ApiGetClientVersionTimesResult'] = _APIGETCLIENTVERSIONTIMESRESULT
DESCRIPTOR.message_types_by_name['ApiInterrogateClientArgs'] = _APIINTERROGATECLIENTARGS
DESCRIPTOR.message_types_by_name['ApiInterrogateClientResult'] = _APIINTERROGATECLIENTRESULT
DESCRIPTOR.message_types_by_name['ApiGetInterrogateOperationStateArgs'] = _APIGETINTERROGATEOPERATIONSTATEARGS
DESCRIPTOR.message_types_by_name['ApiGetInterrogateOperationStateResult'] = _APIGETINTERROGATEOPERATIONSTATERESULT
DESCRIPTOR.message_types_by_name['ApiGetLastClientIPAddressArgs'] = _APIGETLASTCLIENTIPADDRESSARGS
DESCRIPTOR.message_types_by_name['ApiGetLastClientIPAddressResult'] = _APIGETLASTCLIENTIPADDRESSRESULT
DESCRIPTOR.message_types_by_name['ApiListClientCrashesArgs'] = _APILISTCLIENTCRASHESARGS
DESCRIPTOR.message_types_by_name['ApiListClientCrashesResult'] = _APILISTCLIENTCRASHESRESULT
DESCRIPTOR.message_types_by_name['ApiAddClientsLabelsArgs'] = _APIADDCLIENTSLABELSARGS
DESCRIPTOR.message_types_by_name['ApiRemoveClientsLabelsArgs'] = _APIREMOVECLIENTSLABELSARGS
DESCRIPTOR.message_types_by_name['ApiListClientsLabelsResult'] = _APILISTCLIENTSLABELSRESULT
DESCRIPTOR.message_types_by_name['ApiListKbFieldsResult'] = _APILISTKBFIELDSRESULT
DESCRIPTOR.message_types_by_name['ApiGetClientLoadStatsArgs'] = _APIGETCLIENTLOADSTATSARGS
DESCRIPTOR.message_types_by_name['ApiGetClientLoadStatsResult'] = _APIGETCLIENTLOADSTATSRESULT
DESCRIPTOR.message_types_by_name['ApiListClientActionRequestsArgs'] = _APILISTCLIENTACTIONREQUESTSARGS
DESCRIPTOR.message_types_by_name['ApiListClientActionRequestsResult'] = _APILISTCLIENTACTIONREQUESTSRESULT
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ApiClient = _reflection.GeneratedProtocolMessageType('ApiClient', (_message.Message,), dict(
  DESCRIPTOR = _APICLIENT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiClient)
  ))
_sym_db.RegisterMessage(ApiClient)

ApiClientActionRequest = _reflection.GeneratedProtocolMessageType('ApiClientActionRequest', (_message.Message,), dict(
  DESCRIPTOR = _APICLIENTACTIONREQUEST,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiClientActionRequest)
  ))
_sym_db.RegisterMessage(ApiClientActionRequest)

ApiSearchClientsArgs = _reflection.GeneratedProtocolMessageType('ApiSearchClientsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APISEARCHCLIENTSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiSearchClientsArgs)
  ))
_sym_db.RegisterMessage(ApiSearchClientsArgs)

ApiSearchClientsResult = _reflection.GeneratedProtocolMessageType('ApiSearchClientsResult', (_message.Message,), dict(
  DESCRIPTOR = _APISEARCHCLIENTSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiSearchClientsResult)
  ))
_sym_db.RegisterMessage(ApiSearchClientsResult)

ApiGetClientArgs = _reflection.GeneratedProtocolMessageType('ApiGetClientArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientArgs)
  ))
_sym_db.RegisterMessage(ApiGetClientArgs)

ApiGetClientVersionsArgs = _reflection.GeneratedProtocolMessageType('ApiGetClientVersionsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTVERSIONSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientVersionsArgs)
  ))
_sym_db.RegisterMessage(ApiGetClientVersionsArgs)

ApiGetClientVersionsResult = _reflection.GeneratedProtocolMessageType('ApiGetClientVersionsResult', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTVERSIONSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientVersionsResult)
  ))
_sym_db.RegisterMessage(ApiGetClientVersionsResult)

ApiGetClientVersionTimesArgs = _reflection.GeneratedProtocolMessageType('ApiGetClientVersionTimesArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTVERSIONTIMESARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientVersionTimesArgs)
  ))
_sym_db.RegisterMessage(ApiGetClientVersionTimesArgs)

ApiGetClientVersionTimesResult = _reflection.GeneratedProtocolMessageType('ApiGetClientVersionTimesResult', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTVERSIONTIMESRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientVersionTimesResult)
  ))
_sym_db.RegisterMessage(ApiGetClientVersionTimesResult)

ApiInterrogateClientArgs = _reflection.GeneratedProtocolMessageType('ApiInterrogateClientArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIINTERROGATECLIENTARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiInterrogateClientArgs)
  ))
_sym_db.RegisterMessage(ApiInterrogateClientArgs)

ApiInterrogateClientResult = _reflection.GeneratedProtocolMessageType('ApiInterrogateClientResult', (_message.Message,), dict(
  DESCRIPTOR = _APIINTERROGATECLIENTRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiInterrogateClientResult)
  ))
_sym_db.RegisterMessage(ApiInterrogateClientResult)

ApiGetInterrogateOperationStateArgs = _reflection.GeneratedProtocolMessageType('ApiGetInterrogateOperationStateArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETINTERROGATEOPERATIONSTATEARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetInterrogateOperationStateArgs)
  ))
_sym_db.RegisterMessage(ApiGetInterrogateOperationStateArgs)

ApiGetInterrogateOperationStateResult = _reflection.GeneratedProtocolMessageType('ApiGetInterrogateOperationStateResult', (_message.Message,), dict(
  DESCRIPTOR = _APIGETINTERROGATEOPERATIONSTATERESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetInterrogateOperationStateResult)
  ))
_sym_db.RegisterMessage(ApiGetInterrogateOperationStateResult)

ApiGetLastClientIPAddressArgs = _reflection.GeneratedProtocolMessageType('ApiGetLastClientIPAddressArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETLASTCLIENTIPADDRESSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetLastClientIPAddressArgs)
  ))
_sym_db.RegisterMessage(ApiGetLastClientIPAddressArgs)

ApiGetLastClientIPAddressResult = _reflection.GeneratedProtocolMessageType('ApiGetLastClientIPAddressResult', (_message.Message,), dict(
  DESCRIPTOR = _APIGETLASTCLIENTIPADDRESSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetLastClientIPAddressResult)
  ))
_sym_db.RegisterMessage(ApiGetLastClientIPAddressResult)

ApiListClientCrashesArgs = _reflection.GeneratedProtocolMessageType('ApiListClientCrashesArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTCRASHESARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientCrashesArgs)
  ))
_sym_db.RegisterMessage(ApiListClientCrashesArgs)

ApiListClientCrashesResult = _reflection.GeneratedProtocolMessageType('ApiListClientCrashesResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTCRASHESRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientCrashesResult)
  ))
_sym_db.RegisterMessage(ApiListClientCrashesResult)

ApiAddClientsLabelsArgs = _reflection.GeneratedProtocolMessageType('ApiAddClientsLabelsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIADDCLIENTSLABELSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiAddClientsLabelsArgs)
  ))
_sym_db.RegisterMessage(ApiAddClientsLabelsArgs)

ApiRemoveClientsLabelsArgs = _reflection.GeneratedProtocolMessageType('ApiRemoveClientsLabelsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIREMOVECLIENTSLABELSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiRemoveClientsLabelsArgs)
  ))
_sym_db.RegisterMessage(ApiRemoveClientsLabelsArgs)

ApiListClientsLabelsResult = _reflection.GeneratedProtocolMessageType('ApiListClientsLabelsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTSLABELSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientsLabelsResult)
  ))
_sym_db.RegisterMessage(ApiListClientsLabelsResult)

ApiListKbFieldsResult = _reflection.GeneratedProtocolMessageType('ApiListKbFieldsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTKBFIELDSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiListKbFieldsResult)
  ))
_sym_db.RegisterMessage(ApiListKbFieldsResult)

ApiGetClientLoadStatsArgs = _reflection.GeneratedProtocolMessageType('ApiGetClientLoadStatsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTLOADSTATSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientLoadStatsArgs)
  ))
_sym_db.RegisterMessage(ApiGetClientLoadStatsArgs)

ApiGetClientLoadStatsResult = _reflection.GeneratedProtocolMessageType('ApiGetClientLoadStatsResult', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTLOADSTATSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientLoadStatsResult)
  ))
_sym_db.RegisterMessage(ApiGetClientLoadStatsResult)

ApiListClientActionRequestsArgs = _reflection.GeneratedProtocolMessageType('ApiListClientActionRequestsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTACTIONREQUESTSARGS,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientActionRequestsArgs)
  ))
_sym_db.RegisterMessage(ApiListClientActionRequestsArgs)

ApiListClientActionRequestsResult = _reflection.GeneratedProtocolMessageType('ApiListClientActionRequestsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTACTIONREQUESTSRESULT,
  __module__ = 'grr.proto.api.client_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientActionRequestsResult)
  ))
_sym_db.RegisterMessage(ApiListClientActionRequestsResult)


_APICLIENT.fields_by_name['client_id'].has_options = True
_APICLIENT.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APICLIENT.fields_by_name['urn'].has_options = True
_APICLIENT.fields_by_name['urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\030\n\tClientURN\022\013Client URN.'))
_APICLIENT.fields_by_name['memory_size'].has_options = True
_APICLIENT.fields_by_name['memory_size']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001,\n\010ByteSize\022 Memory available to this client.'))
_APICLIENT.fields_by_name['first_seen_at'].has_options = True
_APICLIENT.fields_by_name['first_seen_at']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001%\n\013RDFDatetime\022\026When flow was created.'))
_APICLIENT.fields_by_name['last_seen_at'].has_options = True
_APICLIENT.fields_by_name['last_seen_at']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\n\013RDFDatetime\022!Last time when client checked in.'))
_APICLIENT.fields_by_name['last_booted_at'].has_options = True
_APICLIENT.fields_by_name['last_booted_at']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\036\n\013RDFDatetime\022\017Last boot time.'))
_APICLIENT.fields_by_name['last_clock'].has_options = True
_APICLIENT.fields_by_name['last_clock']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0019\n\013RDFDatetime\022*Client clocks value during latest checkin.'))
_APICLIENT.fields_by_name['last_crash_at'].has_options = True
_APICLIENT.fields_by_name['last_crash_at']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\n\013RDFDatetime\022\020Last crash time.'))
_APICLIENT.fields_by_name['age'].has_options = True
_APICLIENT.fields_by_name['age']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\n\013RDFDatetime\022\036Age of the client information.'))
_APICLIENTACTIONREQUEST.fields_by_name['task_eta'].has_options = True
_APICLIENTACTIONREQUEST.fields_by_name['task_eta']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\n\013RDFDatetime\022\"This task\'s lease expiration time.'))
_APICLIENTACTIONREQUEST.fields_by_name['session_id'].has_options = True
_APICLIENTACTIONREQUEST.fields_by_name['session_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\n\006RDFURN\022&Session id that triggered the request.'))
_APICLIENTACTIONREQUEST.fields_by_name['client_action'].has_options = True
_APICLIENTACTIONREQUEST.fields_by_name['client_action']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Requested client action name.'))
_APICLIENTACTIONREQUEST.fields_by_name['responses'].has_options = True
_APICLIENTACTIONREQUEST.fields_by_name['responses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"Responses queued for this request.'))
_APISEARCHCLIENTSARGS.fields_by_name['query'].has_options = True
_APISEARCHCLIENTSARGS.fields_by_name['query']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\206\001\022\203\001Search query string. See here for syntax: https://grr-doc.readthedocs.io/en/v3.2.0/investigating-with-grr/searching-for-client.html'))
_APISEARCHCLIENTSARGS.fields_by_name['offset'].has_options = True
_APISEARCHCLIENTSARGS.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001 \022\036Found clients starting offset.'))
_APISEARCHCLIENTSARGS.fields_by_name['count'].has_options = True
_APISEARCHCLIENTSARGS.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\"\022 Number of found client to fetch.'))
_APIGETCLIENTARGS.fields_by_name['client_id'].has_options = True
_APIGETCLIENTARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETCLIENTARGS.fields_by_name['timestamp'].has_options = True
_APIGETCLIENTARGS.fields_by_name['timestamp']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\n\013RDFDatetime\022\030Timestamp of the client.'))
_APIGETCLIENTVERSIONSARGS.fields_by_name['client_id'].has_options = True
_APIGETCLIENTVERSIONSARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETCLIENTVERSIONSARGS.fields_by_name['start'].has_options = True
_APIGETCLIENTVERSIONSARGS.fields_by_name['start']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\n\013RDFDatetime\0221Timerange start (timerange is a closed interval).'))
_APIGETCLIENTVERSIONSARGS.fields_by_name['end'].has_options = True
_APIGETCLIENTVERSIONSARGS.fields_by_name['end']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001>\n\013RDFDatetime\022/Timerange end (timerange is a closed interval).'))
_APIGETCLIENTVERSIONSARGS.fields_by_name['mode'].has_options = True
_APIGETCLIENTVERSIONSARGS.fields_by_name['mode']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\201\001\022\177Mode to be used: FULL to return full versions for every timestamp, DIFF to return only differences between subsequent versions.'))
_APIGETCLIENTVERSIONTIMESARGS.fields_by_name['client_id'].has_options = True
_APIGETCLIENTVERSIONTIMESARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETCLIENTVERSIONTIMESRESULT.fields_by_name['times'].has_options = True
_APIGETCLIENTVERSIONTIMESRESULT.fields_by_name['times']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\013RDFDatetime\022\032The list of version times.'))
_APIINTERROGATECLIENTARGS.fields_by_name['client_id'].has_options = True
_APIINTERROGATECLIENTARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIINTERROGATECLIENTRESULT.fields_by_name['operation_id'].has_options = True
_APIINTERROGATECLIENTRESULT.fields_by_name['operation_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The id of the interrogate operation.'))
_APIGETINTERROGATEOPERATIONSTATEARGS.fields_by_name['operation_id'].has_options = True
_APIGETINTERROGATEOPERATIONSTATEARGS.fields_by_name['operation_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$The id of the interrogate operation.'))
_APIGETINTERROGATEOPERATIONSTATERESULT.fields_by_name['state'].has_options = True
_APIGETINTERROGATEOPERATIONSTATERESULT.fields_by_name['state']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\022\'The state of the interrogate operation.'))
_APIGETLASTCLIENTIPADDRESSARGS.fields_by_name['client_id'].has_options = True
_APIGETLASTCLIENTIPADDRESSARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['ip'].has_options = True
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['ip']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0016\0224The ip the client used for the latest communication.'))
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['info'].has_options = True
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['info']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\'\022%Additional info about the ip address.'))
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['status'].has_options = True
_APIGETLASTCLIENTIPADDRESSRESULT.fields_by_name['status']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035The status of the ip address.'))
_APILISTCLIENTCRASHESARGS.fields_by_name['client_id'].has_options = True
_APILISTCLIENTCRASHESARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APILISTCLIENTCRASHESARGS.fields_by_name['offset'].has_options = True
_APILISTCLIENTCRASHESARGS.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001!\022\037Client crashes starting offset.'))
_APILISTCLIENTCRASHESARGS.fields_by_name['count'].has_options = True
_APILISTCLIENTCRASHESARGS.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001!\022\037Max number of crashes to fetch.'))
_APILISTCLIENTCRASHESARGS.fields_by_name['filter'].has_options = True
_APILISTCLIENTCRASHESARGS.fields_by_name['filter']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001K\022IReturn only results whose string representation contains given substring.'))
_APILISTCLIENTCRASHESRESULT.fields_by_name['items'].has_options = True
_APILISTCLIENTCRASHESRESULT.fields_by_name['items']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\024\022\022The client crashes'))
_APILISTCLIENTCRASHESRESULT.fields_by_name['total_count'].has_options = True
_APILISTCLIENTCRASHESRESULT.fields_by_name['total_count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\027\022\025Total count of items.'))
_APIADDCLIENTSLABELSARGS.fields_by_name['client_ids'].has_options = True
_APIADDCLIENTSLABELSARGS.fields_by_name['client_ids']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIREMOVECLIENTSLABELSARGS.fields_by_name['client_ids'].has_options = True
_APIREMOVECLIENTSLABELSARGS.fields_by_name['client_ids']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETCLIENTLOADSTATSARGS.fields_by_name['client_id'].has_options = True
_APIGETCLIENTLOADSTATSARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETCLIENTLOADSTATSARGS.fields_by_name['start'].has_options = True
_APIGETCLIENTLOADSTATSARGS.fields_by_name['start']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001u\n\013RDFDatetime\022fFetch client load stats data starting from this timestamp. If not set, will default to 30 minutes ago.'))
_APIGETCLIENTLOADSTATSARGS.fields_by_name['end'].has_options = True
_APIGETCLIENTLOADSTATSARGS.fields_by_name['end']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\207\001\n\013RDFDatetime\022xFetch client load stats data from the interval ending with this timestamp. If not set, will default to the current time.'))
_APILISTCLIENTACTIONREQUESTSARGS.fields_by_name['client_id'].has_options = True
_APILISTCLIENTACTIONREQUESTSARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APILISTCLIENTACTIONREQUESTSARGS.fields_by_name['fetch_responses'].has_options = True
_APILISTCLIENTACTIONREQUESTSARGS.fields_by_name['fetch_responses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\0223If true, fetch all the responses for every request.'))
# @@protoc_insertion_point(module_scope)
