# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: grr/proto/api/user.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 cron_pb2 as grr_dot_proto_dot_api_dot_cron__pb2
from grr.proto.api import flow_pb2 as grr_dot_proto_dot_api_dot_flow__pb2
from grr.proto.api import hunt_pb2 as grr_dot_proto_dot_api_dot_hunt__pb2
from grr.proto.api import client_pb2 as grr_dot_proto_dot_api_dot_client__pb2
from grr.proto import flows_pb2 as grr_dot_proto_dot_flows__pb2
from grr.proto import jobs_pb2 as grr_dot_proto_dot_jobs__pb2
from grr.proto import semantic_pb2 as grr_dot_proto_dot_semantic__pb2


DESCRIPTOR = _descriptor.FileDescriptor(
  name='grr/proto/api/user.proto',
  package='',
  syntax='proto2',
  serialized_pb=_b('\n\x18grr/proto/api/user.proto\x1a\x18grr/proto/api/cron.proto\x1a\x18grr/proto/api/flow.proto\x1a\x18grr/proto/api/hunt.proto\x1a\x1agrr/proto/api/client.proto\x1a\x15grr/proto/flows.proto\x1a\x14grr/proto/jobs.proto\x1a\x18grr/proto/semantic.proto\"\xa5\t\n\x0f\x41piHuntApproval\x12\x61\n\x07subject\x18\x01 \x01(\x0b\x32\x08.ApiHuntBF\xe2\xfc\xe3\xc4\x01@\x12>A hunt that has to be accessed after this approval is granted.\x12q\n\x02id\x18\x08 \x01(\tBe\xe2\xfc\xe3\xc4\x01_\x12]Approval id. Approval is identified by the hunt id, requestor\'s username and the approval id.\x12\x38\n\x06reason\x18\x02 \x01(\tB(\xe2\xfc\xe3\xc4\x01\"\x12 A reason for accessing the hunt.\x12r\n\x08is_valid\x18\x03 \x01(\x08\x42`\xe2\xfc\xe3\xc4\x01Z\x12XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.\x12\x94\x01\n\x10is_valid_message\x18\x04 \x01(\tBz\xe2\xfc\xe3\xc4\x01t\x12rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.\x12\x63\n\x0enotified_users\x18\x05 \x03(\tBK\xe2\xfc\xe3\xc4\x01\x45\x12\x43GRR users that will be notified about the approval being requested.\x12v\n\x12\x65mail_cc_addresses\x18\x06 \x03(\tBZ\xe2\xfc\xe3\xc4\x01T\x12RList of emails used to send a notification to about this approval being requested.\x12\x88\x01\n\tapprovers\x18\x07 \x03(\tBu\xe2\xfc\xe3\xc4\x01o\x12mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.\x12\x88\x01\n\x10\x63opied_from_hunt\x18\t \x01(\x0b\x32\x08.ApiHuntBd\xe2\xfc\xe3\xc4\x01^\x12\\If the hunt was copied from another hunt, the original hunt information will be stored here.\x12\x83\x01\n\x10\x63opied_from_flow\x18\n \x01(\x0b\x32\x08.ApiFlowB_\xe2\xfc\xe3\xc4\x01Y\x12WIf the hunt was started from a flow, the original flow information will be stored here.\"\xa6\x07\n\x12\x41piCronJobApproval\x12h\n\x07subject\x18\x01 \x01(\x0b\x32\x0b.ApiCronJobBJ\xe2\xfc\xe3\xc4\x01\x44\x12\x42\x41 cron job that has to be accessed after this approval is granted.\x12u\n\x02id\x18\x08 \x01(\tBi\xe2\xfc\xe3\xc4\x01\x63\x12\x61\x41pproval id. Approval is identified by the cron job id, requestor\'s username and the approval id.\x12<\n\x06reason\x18\x02 \x01(\tB,\xe2\xfc\xe3\xc4\x01&\x12$A reason for accessing the cron job.\x12r\n\x08is_valid\x18\x03 \x01(\x08\x42`\xe2\xfc\xe3\xc4\x01Z\x12XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.\x12\x94\x01\n\x10is_valid_message\x18\x04 \x01(\tBz\xe2\xfc\xe3\xc4\x01t\x12rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.\x12\x63\n\x0enotified_users\x18\x05 \x03(\tBK\xe2\xfc\xe3\xc4\x01\x45\x12\x43GRR users that will be notified about the approval being requested.\x12v\n\x12\x65mail_cc_addresses\x18\x06 \x03(\tBZ\xe2\xfc\xe3\xc4\x01T\x12RList of emails used to send a notification to about this approval being requested.\x12\x88\x01\n\tapprovers\x18\x07 \x03(\tBu\xe2\xfc\xe3\xc4\x01o\x12mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.\"\x9e\x07\n\x11\x41piClientApproval\x12\x65\n\x07subject\x18\x01 \x01(\x0b\x32\n.ApiClientBH\xe2\xfc\xe3\xc4\x01\x42\x12@A client that has to be accessed after this approval is granted.\x12s\n\x02id\x18\x08 \x01(\tBg\xe2\xfc\xe3\xc4\x01\x61\x12_Approval id. Approval is identified by the client id, requestor\'s username and the approval id.\x12:\n\x06reason\x18\x02 \x01(\tB*\xe2\xfc\xe3\xc4\x01$\x12\"A reason for accessing the client.\x12r\n\x08is_valid\x18\x03 \x01(\x08\x42`\xe2\xfc\xe3\xc4\x01Z\x12XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.\x12\x94\x01\n\x10is_valid_message\x18\x04 \x01(\tBz\xe2\xfc\xe3\xc4\x01t\x12rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.\x12\x63\n\x0enotified_users\x18\x05 \x03(\tBK\xe2\xfc\xe3\xc4\x01\x45\x12\x43GRR users that will be notified about the approval being requested.\x12v\n\x12\x65mail_cc_addresses\x18\x06 \x03(\tBZ\xe2\xfc\xe3\xc4\x01T\x12RList of emails used to send a notification to about this approval being requested.\x12\x88\x01\n\tapprovers\x18\x07 \x03(\tBu\xe2\xfc\xe3\xc4\x01o\x12mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.\"\xab\x05\n\x19\x41piGrrUserInterfaceTraits\x12\"\n\x1a\x63ron_jobs_nav_item_enabled\x18\x01 \x01(\x08\x12&\n\x1e\x63reate_cron_job_action_enabled\x18\x02 \x01(\x08\x12%\n\x1dhunt_manager_nav_item_enabled\x18\x03 \x01(\x08\x12\"\n\x1a\x63reate_hunt_action_enabled\x18\x04 \x01(\x08\x12(\n show_statistics_nav_item_enabled\x18\x05 \x01(\x08\x12$\n\x1cserver_load_nav_item_enabled\x18\x07 \x01(\x08\x12(\n manage_binaries_nav_item_enabled\x18\t \x01(\x08\x12$\n\x1cupload_binary_action_enabled\x18\n \x01(\x08\x12!\n\x19settings_nav_item_enabled\x18\x0b \x01(\x08\x12)\n!artifact_manager_nav_item_enabled\x18\x0c \x01(\x08\x12&\n\x1eupload_artifact_action_enabled\x18\r \x01(\x08\x12%\n\x1dsearch_clients_action_enabled\x18\x0e \x01(\x08\x12\x33\n+browse_virtual_file_system_nav_item_enabled\x18\x0f \x01(\x08\x12*\n\"start_client_flow_nav_item_enabled\x18\x10 \x01(\x08\x12,\n$manage_client_flows_nav_item_enabled\x18\x11 \x01(\x08\x12+\n#modify_client_labels_action_enabled\x18\x12 \x01(\x08\"\xed\x02\n\nApiGrrUser\x12/\n\x08username\x18\x01 \x01(\tB\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15The name of the user.\x12\x39\n\x08settings\x18\x02 \x01(\x0b\x32\x0c.GUISettingsB\x19\xe2\xfc\xe3\xc4\x01\x13\x12\x11User UI settings.\x12}\n\x10interface_traits\x18\x03 \x01(\x0b\x32\x1a.ApiGrrUserInterfaceTraitsBG\xe2\xfc\xe3\xc4\x01\x41\x12?User\'s interface traits (what they can and can\'t do in the UI).\x12\'\n\tuser_type\x18\x04 \x01(\x0e\x32\x14.ApiGrrUser.UserType\"K\n\x08UserType\x12\x12\n\x0eUSER_TYPE_NONE\x10\x00\x12\x16\n\x12USER_TYPE_STANDARD\x10\x01\x12\x13\n\x0fUSER_TYPE_ADMIN\x10\x02\"\xea\x06\n\x18\x41piNotificationReference\x12,\n\x04type\x18\x01 \x01(\x0e\x32\x1e.ApiNotificationReference.Type\x12\x35\n\tdiscovery\x18\x02 \x01(\x0b\x32\".ApiNotificationDiscoveryReference\x12+\n\x04hunt\x18\x05 \x01(\x0b\x32\x1d.ApiNotificationHuntReference\x12+\n\x04\x63ron\x18\x06 \x01(\x0b\x32\x1d.ApiNotificationCronReference\x12+\n\x04\x66low\x18\x07 \x01(\x0b\x32\x1d.ApiNotificationFlowReference\x12)\n\x03vfs\x18\x08 \x01(\x0b\x32\x1c.ApiNotificationVfsReference\x12@\n\x0f\x63lient_approval\x18\x0b \x01(\x0b\x32\'.ApiNotificationClientApprovalReference\x12<\n\rhunt_approval\x18\x0c \x01(\x0b\x32%.ApiNotificationHuntApprovalReference\x12\x43\n\x11\x63ron_job_approval\x18\r \x01(\x0b\x32(.ApiNotificationCronJobApprovalReference\x12\x31\n\x07unknown\x18\x0e \x01(\x0b\x32 .ApiNotificationUnknownReference\"\xb0\x02\n\x04Type\x12\x1e\n\tDISCOVERY\x10\x00\x1a\x0f\xea\xb9\xcb\xb9\x01\tDiscovery\x12\x14\n\x04HUNT\x10\x03\x1a\n\xea\xb9\xcb\xb9\x01\x04Hunt\x12\x18\n\x04\x43RON\x10\x04\x1a\x0e\xea\xb9\xcb\xb9\x01\x08\x43ron job\x12\x14\n\x04\x46LOW\x10\x05\x1a\n\xea\xb9\xcb\xb9\x01\x04\x46low\x12\"\n\x03VFS\x10\x06\x1a\x19\xea\xb9\xcb\xb9\x01\x13Virtual file system\x12*\n\x0f\x43LIENT_APPROVAL\x10\n\x1a\x15\xea\xb9\xcb\xb9\x01\x0f\x43lient approval\x12&\n\rHUNT_APPROVAL\x10\x0b\x1a\x13\xea\xb9\xcb\xb9\x01\rHunt approval\x12.\n\x11\x43RON_JOB_APPROVAL\x10\x0c\x1a\x17\xea\xb9\xcb\xb9\x01\x11\x43ron job approval\x12\x1a\n\x07UNKNOWN\x10\r\x1a\r\xea\xb9\xcb\xb9\x01\x07Unknown:\x0c\xda\xfc\xe3\xc4\x01\x06\x12\x04type\"s\n!ApiNotificationDiscoveryReference\x12N\n\tclient_id\x18\x01 \x01(\tB;\xe2\xfc\xe3\xc4\x01\x35\n\x0b\x41piClientId\x12&The client this notification is about.\"e\n$ApiNotificationFileDownloadReference\x12=\n\x04path\x18\x01 \x01(\tB/\xe2\xfc\xe3\xc4\x01)\n\x06RDFURN\x12\x1fThe download path for the file.\"f\n\x1c\x41piNotificationHuntReference\x12\x46\n\x08hunt_urn\x18\x01 \x01(\tB4\xe2\xfc\xe3\xc4\x01.\n\x06RDFURN\x12$The hunt this notification is about.\"n\n\x1c\x41piNotificationCronReference\x12N\n\x0c\x63ron_job_urn\x18\x01 \x01(\tB8\xe2\xfc\xe3\xc4\x01\x32\n\x06RDFURN\x12(The cron job this notification is about.\"\xb8\x01\n\x1c\x41piNotificationFlowReference\x12N\n\tclient_id\x18\x02 \x01(\tB;\xe2\xfc\xe3\xc4\x01\x35\n\x0b\x41piClientId\x12&The client this notification is about.\x12H\n\x07\x66low_id\x18\x03 \x01(\tB7\xe2\xfc\xe3\xc4\x01\x31\n\tApiFlowId\x12$The flow this notification is about.\"\xb9\x01\n\x1b\x41piNotificationVfsReference\x12J\n\x08vfs_path\x18\x01 \x01(\tB8\xe2\xfc\xe3\xc4\x01\x32\n\x06RDFURN\x12(The cron job this notification is about.\x12N\n\tclient_id\x18\x02 \x01(\tB;\xe2\xfc\xe3\xc4\x01\x35\n\x0b\x41piClientId\x12&The client this notification is about.\"w\n&ApiNotificationClientApprovalReference\x12&\n\tclient_id\x18\x01 \x01(\tB\x13\xe2\xfc\xe3\xc4\x01\r\n\x0b\x41piClientId\x12\x13\n\x0b\x61pproval_id\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\"q\n$ApiNotificationHuntApprovalReference\x12\"\n\x07hunt_id\x18\x01 \x01(\tB\x11\xe2\xfc\xe3\xc4\x01\x0b\n\tApiHuntId\x12\x13\n\x0b\x61pproval_id\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\"e\n\'ApiNotificationCronJobApprovalReference\x12\x13\n\x0b\x63ron_job_id\x18\x01 \x01(\t\x12\x13\n\x0b\x61pproval_id\x18\x02 \x01(\t\x12\x10\n\x08username\x18\x03 \x01(\t\"j\n\x1f\x41piNotificationUnknownReference\x12\"\n\nsource_urn\x18\x01 \x01(\tB\x0e\xe2\xfc\xe3\xc4\x01\x08\n\x06RDFURN\x12#\n\x0bsubject_urn\x18\x02 \x01(\tB\x0e\xe2\xfc\xe3\xc4\x01\x08\n\x06RDFURN\"\xc2\x02\n\x0f\x41piNotification\x12H\n\ttimestamp\x18\x01 \x01(\x04\x42\x35\xe2\xfc\xe3\xc4\x01/\n\x0bRDFDatetime\x12 Time the notification was added.\x12\x42\n\x07message\x18\x02 \x01(\tB1\xe2\xfc\xe3\xc4\x01+\x12)The content message of this notification.\x12X\n\treference\x18\x03 \x01(\x0b\x32\x19.ApiNotificationReferenceB*\xe2\xfc\xe3\xc4\x01$\x12\"The reference of the notification.\x12G\n\nis_pending\x18\x04 \x01(\x08\x42\x33\xe2\xfc\xe3\xc4\x01-\x12+Whether the notification is pending or not.\"m\n\x19\x41piCreateHuntApprovalArgs\x12,\n\x07hunt_id\x18\x01 \x01(\tB\x1b\xe2\xfc\xe3\xc4\x01\x15\n\tApiHuntId\x12\x08Hunt id.\x12\"\n\x08\x61pproval\x18\x02 \x01(\x0b\x32\x10.ApiHuntApproval\"\xb3\x02\n\x16\x41piGetHuntApprovalArgs\x12,\n\x07hunt_id\x18\x01 \x01(\tB\x1b\xe2\xfc\xe3\xc4\x01\x15\n\tApiHuntId\x12\x08Hunt id.\x12\x91\x01\n\x0b\x61pproval_id\x18\x02 \x01(\tB|\xe2\xfc\xe3\xc4\x01v\x12tHunt approvals are uniquely identified by the user who requested them, the hunt id in question, and the approval id.\x12W\n\x08username\x18\x03 \x01(\tBE\xe2\xfc\xe3\xc4\x01?\x12=Username of the user, whose hunt approval is being requested.\"\xb5\x02\n\x18\x41piGrantHuntApprovalArgs\x12,\n\x07hunt_id\x18\x01 \x01(\tB\x1b\xe2\xfc\xe3\xc4\x01\x15\n\tApiHuntId\x12\x08Hunt id.\x12\x91\x01\n\x0b\x61pproval_id\x18\x02 \x01(\tB|\xe2\xfc\xe3\xc4\x01v\x12tHunt approvals are uniquely identified by the user who requested them, the hunt id in question, and the approval id.\x12W\n\x08username\x18\x03 \x01(\tBE\xe2\xfc\xe3\xc4\x01?\x12=Username of the user, whose hunt approval is being requested.\"\x84\x01\n\x18\x41piListHuntApprovalsArgs\x12\x32\n\x06offset\x18\x01 \x01(\x03\x42\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1a\x41pprovals starting offset.\x12\x34\n\x05\x63ount\x18\x02 \x01(\x03\x42%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dNumber of approvals to fetch.\"=\n\x1a\x41piListHuntApprovalsResult\x12\x1f\n\x05items\x18\x01 \x03(\x0b\x32\x10.ApiHuntApproval\"l\n\x1c\x41piCreateCronJobApprovalArgs\x12%\n\x0b\x63ron_job_id\x18\x01 \x01(\tB\x10\xe2\xfc\xe3\xc4\x01\n\x12\x08\x43ron id.\x12%\n\x08\x61pproval\x18\x02 \x01(\x0b\x32\x13.ApiCronJobApproval\"\xb4\x02\n\x19\x41piGetCronJobApprovalArgs\x12%\n\x0b\x63ron_job_id\x18\x01 \x01(\tB\x10\xe2\xfc\xe3\xc4\x01\n\x12\x08\x43ron id.\x12\x96\x01\n\x0b\x61pproval_id\x18\x02 \x01(\tB\x80\x01\xe2\xfc\xe3\xc4\x01z\x12xCron job approvals are uniquely identified by the user who requested them, the cron id in question, and the approval id.\x12W\n\x08username\x18\x03 \x01(\tBE\xe2\xfc\xe3\xc4\x01?\x12=Username of the user, whose cron approval is being requested.\"\xb6\x02\n\x1b\x41piGrantCronJobApprovalArgs\x12%\n\x0b\x63ron_job_id\x18\x01 \x01(\tB\x10\xe2\xfc\xe3\xc4\x01\n\x12\x08\x43ron id.\x12\x96\x01\n\x0b\x61pproval_id\x18\x02 \x01(\tB\x80\x01\xe2\xfc\xe3\xc4\x01z\x12xCron job approvals are uniquely identified by the user who requested them, the cron id in question, and the approval id.\x12W\n\x08username\x18\x03 \x01(\tBE\xe2\xfc\xe3\xc4\x01?\x12=Username of the user, whose cron approval is being requested.\"\x87\x01\n\x1b\x41piListCronJobApprovalsArgs\x12\x32\n\x06offset\x18\x01 \x01(\x03\x42\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1a\x41pprovals starting offset.\x12\x34\n\x05\x63ount\x18\x02 \x01(\x03\x42%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dNumber of approvals to fetch.\"C\n\x1d\x41piListCronJobApprovalsResult\x12\"\n\x05items\x18\x01 \x03(\x0b\x32\x13.ApiCronJobApproval\"\xf8\x01\n\x1b\x41piCreateClientApprovalArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12$\n\x08\x61pproval\x18\x02 \x01(\x0b\x32\x12.ApiClientApproval\x12\x7f\n\x11keep_client_alive\x18\x03 \x01(\x08\x42\x64\xe2\xfc\xe3\xc4\x01^\x12\\If true, the client will be kept alive for an hour right after the approval request is sent.\"\xc2\x02\n\x18\x41piGetClientApprovalArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12\x96\x01\n\x0b\x61pproval_id\x18\x02 \x01(\tB\x80\x01\xe2\xfc\xe3\xc4\x01z\x12xClient approvals are uniquely identified by the user who requested them, the client id in question, and the approval id.\x12Y\n\x08username\x18\x03 \x01(\tBG\xe2\xfc\xe3\xc4\x01\x41\x12?Username of the user, whose client approval is being requested.\"\xc4\x02\n\x1a\x41piGrantClientApprovalArgs\x12\x32\n\tclient_id\x18\x01 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12\x96\x01\n\x0b\x61pproval_id\x18\x02 \x01(\tB\x80\x01\xe2\xfc\xe3\xc4\x01z\x12xClient approvals are uniquely identified by the user who requested them, the client id in question, and the approval id.\x12Y\n\x08username\x18\x03 \x01(\tBG\xe2\xfc\xe3\xc4\x01\x41\x12?Username of the user, whose client approval is being requested.\"\xc0\x02\n\x1a\x41piListClientApprovalsArgs\x12\x32\n\x06offset\x18\x01 \x01(\x03\x42\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1a\x41pprovals starting offset.\x12\x34\n\x05\x63ount\x18\x02 \x01(\x03\x42%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dNumber of approvals to fetch.\x12\x32\n\tclient_id\x18\x03 \x01(\tB\x1f\xe2\xfc\xe3\xc4\x01\x19\n\x0b\x41piClientId\x12\nClient id.\x12Z\n\x05state\x18\x04 \x01(\x0e\x32!.ApiListClientApprovalsArgs.StateB(\xe2\xfc\xe3\xc4\x01\"\x12 The state of approvals to fetch.\"(\n\x05State\x12\x07\n\x03\x41NY\x10\x00\x12\t\n\x05VALID\x10\x01\x12\x0b\n\x07INVALID\x10\x02\"A\n\x1c\x41piListClientApprovalsResult\x12!\n\x05items\x18\x01 \x03(\x0b\x32\x12.ApiClientApproval\"\x80\x01\n\'ApiListPendingGlobalNotificationsResult\x12U\n\x05items\x18\x01 \x03(\x0b\x32\x13.GlobalNotificationB1\xe2\xfc\xe3\xc4\x01+\x12)The list of pending global notifications.\"\x88\x01\n&ApiDeletePendingGlobalNotificationArgs\x12^\n\x04type\x18\x01 \x01(\x0e\x32\x18.GlobalNotification.TypeB6\xe2\xfc\xe3\xc4\x01\x30\x12.The type of the global notification to delete.\"d\n)ApiGetPendingUserNotificationsCountResult\x12\x37\n\x05\x63ount\x18\x01 \x01(\x03\x42(\xe2\xfc\xe3\xc4\x01\"\x12 Number of pending notifications.\"|\n$ApiDeletePendingUserNotificationArgs\x12T\n\ttimestamp\x18\x01 \x01(\x04\x42\x41\xe2\xfc\xe3\xc4\x01;\n\x0bRDFDatetime\x12,The timestamp of the notification to delete.\"\xe9\x01\n$ApiListAndResetUserNotificationsArgs\x12(\n\x06offset\x18\x02 \x01(\x03\x42\x18\xe2\xfc\xe3\xc4\x01\x12\x12\x10Starting offset.\x12\x34\n\x05\x63ount\x18\x03 \x01(\x03\x42%\xe2\xfc\xe3\xc4\x01\x1f\x12\x1dMax number of items 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.\"\xa1\x01\n&ApiListAndResetUserNotificationsResult\x12\x43\n\x05items\x18\x01 \x03(\x0b\x32\x10.ApiNotificationB\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1aThe list of notifications.\x12\x32\n\x0btotal_count\x18\x02 \x01(\x03\x42\x1d\xe2\xfc\xe3\xc4\x01\x17\x12\x15Total count of items.\"\x88\x01\n#ApiListPendingUserNotificationsArgs\x12\x61\n\ttimestamp\x18\x01 \x01(\x04\x42N\xe2\xfc\xe3\xc4\x01H\n\x0bRDFDatetime\x12\x39Only notifications after this timestamp will be returned.\"l\n%ApiListPendingUserNotificationsResult\x12\x43\n\x05items\x18\x01 \x03(\x0b\x32\x10.ApiNotificationB\"\xe2\xfc\xe3\xc4\x01\x1c\x12\x1aThe list of notifications.')
  ,
  dependencies=[grr_dot_proto_dot_api_dot_cron__pb2.DESCRIPTOR,grr_dot_proto_dot_api_dot_flow__pb2.DESCRIPTOR,grr_dot_proto_dot_api_dot_hunt__pb2.DESCRIPTOR,grr_dot_proto_dot_api_dot_client__pb2.DESCRIPTOR,grr_dot_proto_dot_flows__pb2.DESCRIPTOR,grr_dot_proto_dot_jobs__pb2.DESCRIPTOR,grr_dot_proto_dot_semantic__pb2.DESCRIPTOR,])



_APIGRRUSER_USERTYPE = _descriptor.EnumDescriptor(
  name='UserType',
  full_name='ApiGrrUser.UserType',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='USER_TYPE_NONE', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='USER_TYPE_STANDARD', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='USER_TYPE_ADMIN', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4240,
  serialized_end=4315,
)
_sym_db.RegisterEnumDescriptor(_APIGRRUSER_USERTYPE)

_APINOTIFICATIONREFERENCE_TYPE = _descriptor.EnumDescriptor(
  name='Type',
  full_name='ApiNotificationReference.Type',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='DISCOVERY', index=0, number=0,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\tDiscovery')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='HUNT', index=1, number=3,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Hunt')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CRON', index=2, number=4,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\010Cron job')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='FLOW', index=3, number=5,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Flow')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VFS', index=4, number=6,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\023Virtual file system')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CLIENT_APPROVAL', index=5, number=10,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\017Client approval')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='HUNT_APPROVAL', index=6, number=11,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\rHunt approval')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='CRON_JOB_APPROVAL', index=7, number=12,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Cron job approval')),
      type=None),
    _descriptor.EnumValueDescriptor(
      name='UNKNOWN', index=8, number=13,
      options=_descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\007Unknown')),
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=4874,
  serialized_end=5178,
)
_sym_db.RegisterEnumDescriptor(_APINOTIFICATIONREFERENCE_TYPE)

_APILISTCLIENTAPPROVALSARGS_STATE = _descriptor.EnumDescriptor(
  name='State',
  full_name='ApiListClientApprovalsArgs.State',
  filename=None,
  file=DESCRIPTOR,
  values=[
    _descriptor.EnumValueDescriptor(
      name='ANY', index=0, number=0,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='VALID', index=1, number=1,
      options=None,
      type=None),
    _descriptor.EnumValueDescriptor(
      name='INVALID', index=2, number=2,
      options=None,
      type=None),
  ],
  containing_type=None,
  options=None,
  serialized_start=9833,
  serialized_end=9873,
)
_sym_db.RegisterEnumDescriptor(_APILISTCLIENTAPPROVALSARGS_STATE)


_APIHUNTAPPROVAL = _descriptor.Descriptor(
  name='ApiHuntApproval',
  full_name='ApiHuntApproval',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='subject', full_name='ApiHuntApproval.subject', 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>A hunt that has to be accessed after this approval is granted.'))),
    _descriptor.FieldDescriptor(
      name='id', full_name='ApiHuntApproval.id', index=1,
      number=8, 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]Approval id. Approval is identified by the hunt id, requestor\'s username and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='reason', full_name='ApiHuntApproval.reason', index=2,
      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 A reason for accessing the hunt.'))),
    _descriptor.FieldDescriptor(
      name='is_valid', full_name='ApiHuntApproval.is_valid', index=3,
      number=3, 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\001Z\022XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.'))),
    _descriptor.FieldDescriptor(
      name='is_valid_message', full_name='ApiHuntApproval.is_valid_message', index=4,
      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\001t\022rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.'))),
    _descriptor.FieldDescriptor(
      name='notified_users', full_name='ApiHuntApproval.notified_users', index=5,
      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\022CGRR users that will be notified about the approval being requested.'))),
    _descriptor.FieldDescriptor(
      name='email_cc_addresses', full_name='ApiHuntApproval.email_cc_addresses', index=6,
      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\001T\022RList of emails used to send a notification to about this approval being requested.'))),
    _descriptor.FieldDescriptor(
      name='approvers', full_name='ApiHuntApproval.approvers', index=7,
      number=7, 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\001o\022mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.'))),
    _descriptor.FieldDescriptor(
      name='copied_from_hunt', full_name='ApiHuntApproval.copied_from_hunt', index=8,
      number=9, 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\\If the hunt was copied from another hunt, the original hunt information will be stored here.'))),
    _descriptor.FieldDescriptor(
      name='copied_from_flow', full_name='ApiHuntApproval.copied_from_flow', index=9,
      number=10, 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\001Y\022WIf the hunt was started from a flow, the original flow information will be stored here.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=206,
  serialized_end=1395,
)


_APICRONJOBAPPROVAL = _descriptor.Descriptor(
  name='ApiCronJobApproval',
  full_name='ApiCronJobApproval',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='subject', full_name='ApiCronJobApproval.subject', 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\001D\022BA cron job that has to be accessed after this approval is granted.'))),
    _descriptor.FieldDescriptor(
      name='id', full_name='ApiCronJobApproval.id', index=1,
      number=8, 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\001c\022aApproval id. Approval is identified by the cron job id, requestor\'s username and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='reason', full_name='ApiCronJobApproval.reason', index=2,
      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$A reason for accessing the cron job.'))),
    _descriptor.FieldDescriptor(
      name='is_valid', full_name='ApiCronJobApproval.is_valid', index=3,
      number=3, 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\001Z\022XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.'))),
    _descriptor.FieldDescriptor(
      name='is_valid_message', full_name='ApiCronJobApproval.is_valid_message', index=4,
      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\001t\022rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.'))),
    _descriptor.FieldDescriptor(
      name='notified_users', full_name='ApiCronJobApproval.notified_users', index=5,
      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\022CGRR users that will be notified about the approval being requested.'))),
    _descriptor.FieldDescriptor(
      name='email_cc_addresses', full_name='ApiCronJobApproval.email_cc_addresses', index=6,
      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\001T\022RList of emails used to send a notification to about this approval being requested.'))),
    _descriptor.FieldDescriptor(
      name='approvers', full_name='ApiCronJobApproval.approvers', index=7,
      number=7, 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\001o\022mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=1398,
  serialized_end=2332,
)


_APICLIENTAPPROVAL = _descriptor.Descriptor(
  name='ApiClientApproval',
  full_name='ApiClientApproval',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='subject', full_name='ApiClientApproval.subject', 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\001B\022@A client that has to be accessed after this approval is granted.'))),
    _descriptor.FieldDescriptor(
      name='id', full_name='ApiClientApproval.id', index=1,
      number=8, 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\001a\022_Approval id. Approval is identified by the client id, requestor\'s username and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='reason', full_name='ApiClientApproval.reason', index=2,
      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\"A reason for accessing the client.'))),
    _descriptor.FieldDescriptor(
      name='is_valid', full_name='ApiClientApproval.is_valid', index=3,
      number=3, 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\001Z\022XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.'))),
    _descriptor.FieldDescriptor(
      name='is_valid_message', full_name='ApiClientApproval.is_valid_message', index=4,
      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\001t\022rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.'))),
    _descriptor.FieldDescriptor(
      name='notified_users', full_name='ApiClientApproval.notified_users', index=5,
      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\022CGRR users that will be notified about the approval being requested.'))),
    _descriptor.FieldDescriptor(
      name='email_cc_addresses', full_name='ApiClientApproval.email_cc_addresses', index=6,
      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\001T\022RList of emails used to send a notification to about this approval being requested.'))),
    _descriptor.FieldDescriptor(
      name='approvers', full_name='ApiClientApproval.approvers', index=7,
      number=7, 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\001o\022mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=2335,
  serialized_end=3261,
)


_APIGRRUSERINTERFACETRAITS = _descriptor.Descriptor(
  name='ApiGrrUserInterfaceTraits',
  full_name='ApiGrrUserInterfaceTraits',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cron_jobs_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.cron_jobs_nav_item_enabled', index=0,
      number=1, 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=None),
    _descriptor.FieldDescriptor(
      name='create_cron_job_action_enabled', full_name='ApiGrrUserInterfaceTraits.create_cron_job_action_enabled', 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=None),
    _descriptor.FieldDescriptor(
      name='hunt_manager_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.hunt_manager_nav_item_enabled', index=2,
      number=3, 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=None),
    _descriptor.FieldDescriptor(
      name='create_hunt_action_enabled', full_name='ApiGrrUserInterfaceTraits.create_hunt_action_enabled', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='show_statistics_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.show_statistics_nav_item_enabled', index=4,
      number=5, 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=None),
    _descriptor.FieldDescriptor(
      name='server_load_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.server_load_nav_item_enabled', index=5,
      number=7, 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=None),
    _descriptor.FieldDescriptor(
      name='manage_binaries_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.manage_binaries_nav_item_enabled', index=6,
      number=9, 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=None),
    _descriptor.FieldDescriptor(
      name='upload_binary_action_enabled', full_name='ApiGrrUserInterfaceTraits.upload_binary_action_enabled', index=7,
      number=10, 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=None),
    _descriptor.FieldDescriptor(
      name='settings_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.settings_nav_item_enabled', index=8,
      number=11, 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=None),
    _descriptor.FieldDescriptor(
      name='artifact_manager_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.artifact_manager_nav_item_enabled', index=9,
      number=12, 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=None),
    _descriptor.FieldDescriptor(
      name='upload_artifact_action_enabled', full_name='ApiGrrUserInterfaceTraits.upload_artifact_action_enabled', index=10,
      number=13, 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=None),
    _descriptor.FieldDescriptor(
      name='search_clients_action_enabled', full_name='ApiGrrUserInterfaceTraits.search_clients_action_enabled', index=11,
      number=14, 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=None),
    _descriptor.FieldDescriptor(
      name='browse_virtual_file_system_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.browse_virtual_file_system_nav_item_enabled', index=12,
      number=15, 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=None),
    _descriptor.FieldDescriptor(
      name='start_client_flow_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.start_client_flow_nav_item_enabled', index=13,
      number=16, 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=None),
    _descriptor.FieldDescriptor(
      name='manage_client_flows_nav_item_enabled', full_name='ApiGrrUserInterfaceTraits.manage_client_flows_nav_item_enabled', index=14,
      number=17, 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=None),
    _descriptor.FieldDescriptor(
      name='modify_client_labels_action_enabled', full_name='ApiGrrUserInterfaceTraits.modify_client_labels_action_enabled', index=15,
      number=18, 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3264,
  serialized_end=3947,
)


_APIGRRUSER = _descriptor.Descriptor(
  name='ApiGrrUser',
  full_name='ApiGrrUser',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGrrUser.username', 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\027\022\025The name of the user.'))),
    _descriptor.FieldDescriptor(
      name='settings', full_name='ApiGrrUser.settings', 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\023\022\021User UI settings.'))),
    _descriptor.FieldDescriptor(
      name='interface_traits', full_name='ApiGrrUser.interface_traits', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001A\022?User\'s interface traits (what they can and can\'t do in the UI).'))),
    _descriptor.FieldDescriptor(
      name='user_type', full_name='ApiGrrUser.user_type', index=3,
      number=4, type=14, cpp_type=8, label=1,
      has_default_value=False, default_value=0,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _APIGRRUSER_USERTYPE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=3950,
  serialized_end=4315,
)


_APINOTIFICATIONREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationReference',
  full_name='ApiNotificationReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='ApiNotificationReference.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=None),
    _descriptor.FieldDescriptor(
      name='discovery', full_name='ApiNotificationReference.discovery', 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),
    _descriptor.FieldDescriptor(
      name='hunt', full_name='ApiNotificationReference.hunt', index=2,
      number=5, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=None),
    _descriptor.FieldDescriptor(
      name='cron', full_name='ApiNotificationReference.cron', index=3,
      number=6, 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='flow', full_name='ApiNotificationReference.flow', index=4,
      number=7, 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='vfs', full_name='ApiNotificationReference.vfs', index=5,
      number=8, 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='client_approval', full_name='ApiNotificationReference.client_approval', index=6,
      number=11, 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='hunt_approval', full_name='ApiNotificationReference.hunt_approval', index=7,
      number=12, 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='cron_job_approval', full_name='ApiNotificationReference.cron_job_approval', index=8,
      number=13, 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='unknown', full_name='ApiNotificationReference.unknown', index=9,
      number=14, 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=[
    _APINOTIFICATIONREFERENCE_TYPE,
  ],
  options=_descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\006\022\004type')),
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=4318,
  serialized_end=5192,
)


_APINOTIFICATIONDISCOVERYREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationDiscoveryReference',
  full_name='ApiNotificationDiscoveryReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiNotificationDiscoveryReference.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\0015\n\013ApiClientId\022&The client this notification is about.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5194,
  serialized_end=5309,
)


_APINOTIFICATIONFILEDOWNLOADREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationFileDownloadReference',
  full_name='ApiNotificationFileDownloadReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='path', full_name='ApiNotificationFileDownloadReference.path', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\006RDFURN\022\037The download path for the file.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5311,
  serialized_end=5412,
)


_APINOTIFICATIONHUNTREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationHuntReference',
  full_name='ApiNotificationHuntReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_urn', full_name='ApiNotificationHuntReference.hunt_urn', 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.\n\006RDFURN\022$The hunt this notification is about.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5414,
  serialized_end=5516,
)


_APINOTIFICATIONCRONREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationCronReference',
  full_name='ApiNotificationCronReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cron_job_urn', full_name='ApiNotificationCronReference.cron_job_urn', 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\0012\n\006RDFURN\022(The cron job this notification is about.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5518,
  serialized_end=5628,
)


_APINOTIFICATIONFLOWREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationFlowReference',
  full_name='ApiNotificationFlowReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiNotificationFlowReference.client_id', index=0,
      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\0015\n\013ApiClientId\022&The client this notification is about.'))),
    _descriptor.FieldDescriptor(
      name='flow_id', full_name='ApiNotificationFlowReference.flow_id', index=1,
      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\0011\n\tApiFlowId\022$The flow this notification is about.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5631,
  serialized_end=5815,
)


_APINOTIFICATIONVFSREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationVfsReference',
  full_name='ApiNotificationVfsReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='vfs_path', full_name='ApiNotificationVfsReference.vfs_path', index=0,
      number=1, type=9, cpp_type=9, label=1,
      has_default_value=False, default_value=_b("").decode('utf-8'),
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\n\006RDFURN\022(The cron job this notification is about.'))),
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiNotificationVfsReference.client_id', 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\0015\n\013ApiClientId\022&The client this notification is about.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=5818,
  serialized_end=6003,
)


_APINOTIFICATIONCLIENTAPPROVALREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationClientApprovalReference',
  full_name='ApiNotificationClientApprovalReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiNotificationClientApprovalReference.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\r\n\013ApiClientId'))),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiNotificationClientApprovalReference.approval_id', 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=None),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiNotificationClientApprovalReference.username', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6005,
  serialized_end=6124,
)


_APINOTIFICATIONHUNTAPPROVALREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationHuntApprovalReference',
  full_name='ApiNotificationHuntApprovalReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_id', full_name='ApiNotificationHuntApprovalReference.hunt_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\013\n\tApiHuntId'))),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiNotificationHuntApprovalReference.approval_id', 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=None),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiNotificationHuntApprovalReference.username', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6126,
  serialized_end=6239,
)


_APINOTIFICATIONCRONJOBAPPROVALREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationCronJobApprovalReference',
  full_name='ApiNotificationCronJobApprovalReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cron_job_id', full_name='ApiNotificationCronJobApprovalReference.cron_job_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=None),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiNotificationCronJobApprovalReference.approval_id', 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=None),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiNotificationCronJobApprovalReference.username', 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=None),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6241,
  serialized_end=6342,
)


_APINOTIFICATIONUNKNOWNREFERENCE = _descriptor.Descriptor(
  name='ApiNotificationUnknownReference',
  full_name='ApiNotificationUnknownReference',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='source_urn', full_name='ApiNotificationUnknownReference.source_urn', 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\010\n\006RDFURN'))),
    _descriptor.FieldDescriptor(
      name='subject_urn', full_name='ApiNotificationUnknownReference.subject_urn', 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\010\n\006RDFURN'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6344,
  serialized_end=6450,
)


_APINOTIFICATION = _descriptor.Descriptor(
  name='ApiNotification',
  full_name='ApiNotification',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='ApiNotification.timestamp', 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\013RDFDatetime\022 Time the notification was added.'))),
    _descriptor.FieldDescriptor(
      name='message', full_name='ApiNotification.message', 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)The content message of this notification.'))),
    _descriptor.FieldDescriptor(
      name='reference', full_name='ApiNotification.reference', index=2,
      number=3, type=11, cpp_type=10, label=1,
      has_default_value=False, default_value=None,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"The reference of the notification.'))),
    _descriptor.FieldDescriptor(
      name='is_pending', full_name='ApiNotification.is_pending', index=3,
      number=4, type=8, cpp_type=7, label=1,
      has_default_value=False, default_value=False,
      message_type=None, enum_type=None, containing_type=None,
      is_extension=False, extension_scope=None,
      options=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+Whether the notification is pending or not.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6453,
  serialized_end=6775,
)


_APICREATEHUNTAPPROVALARGS = _descriptor.Descriptor(
  name='ApiCreateHuntApprovalArgs',
  full_name='ApiCreateHuntApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_id', full_name='ApiCreateHuntApprovalArgs.hunt_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\025\n\tApiHuntId\022\010Hunt id.'))),
    _descriptor.FieldDescriptor(
      name='approval', full_name='ApiCreateHuntApprovalArgs.approval', 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=6777,
  serialized_end=6886,
)


_APIGETHUNTAPPROVALARGS = _descriptor.Descriptor(
  name='ApiGetHuntApprovalArgs',
  full_name='ApiGetHuntApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_id', full_name='ApiGetHuntApprovalArgs.hunt_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\025\n\tApiHuntId\022\010Hunt id.'))),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiGetHuntApprovalArgs.approval_id', 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\001v\022tHunt approvals are uniquely identified by the user who requested them, the hunt id in question, and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGetHuntApprovalArgs.username', 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?\022=Username of the user, whose hunt approval is being requested.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=6889,
  serialized_end=7196,
)


_APIGRANTHUNTAPPROVALARGS = _descriptor.Descriptor(
  name='ApiGrantHuntApprovalArgs',
  full_name='ApiGrantHuntApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='hunt_id', full_name='ApiGrantHuntApprovalArgs.hunt_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\025\n\tApiHuntId\022\010Hunt id.'))),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiGrantHuntApprovalArgs.approval_id', 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\001v\022tHunt approvals are uniquely identified by the user who requested them, the hunt id in question, and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGrantHuntApprovalArgs.username', 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?\022=Username of the user, whose hunt approval is being requested.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7199,
  serialized_end=7508,
)


_APILISTHUNTAPPROVALSARGS = _descriptor.Descriptor(
  name='ApiListHuntApprovalsArgs',
  full_name='ApiListHuntApprovalsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='offset', full_name='ApiListHuntApprovalsArgs.offset', index=0,
      number=1, 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\034\022\032Approvals starting offset.'))),
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiListHuntApprovalsArgs.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\037\022\035Number of approvals to fetch.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7511,
  serialized_end=7643,
)


_APILISTHUNTAPPROVALSRESULT = _descriptor.Descriptor(
  name='ApiListHuntApprovalsResult',
  full_name='ApiListHuntApprovalsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListHuntApprovalsResult.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=7645,
  serialized_end=7706,
)


_APICREATECRONJOBAPPROVALARGS = _descriptor.Descriptor(
  name='ApiCreateCronJobApprovalArgs',
  full_name='ApiCreateCronJobApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cron_job_id', full_name='ApiCreateCronJobApprovalArgs.cron_job_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\n\022\010Cron id.'))),
    _descriptor.FieldDescriptor(
      name='approval', full_name='ApiCreateCronJobApprovalArgs.approval', 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=7708,
  serialized_end=7816,
)


_APIGETCRONJOBAPPROVALARGS = _descriptor.Descriptor(
  name='ApiGetCronJobApprovalArgs',
  full_name='ApiGetCronJobApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cron_job_id', full_name='ApiGetCronJobApprovalArgs.cron_job_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\n\022\010Cron id.'))),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiGetCronJobApprovalArgs.approval_id', 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\001z\022xCron job approvals are uniquely identified by the user who requested them, the cron id in question, and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGetCronJobApprovalArgs.username', 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?\022=Username of the user, whose cron approval is being requested.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=7819,
  serialized_end=8127,
)


_APIGRANTCRONJOBAPPROVALARGS = _descriptor.Descriptor(
  name='ApiGrantCronJobApprovalArgs',
  full_name='ApiGrantCronJobApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='cron_job_id', full_name='ApiGrantCronJobApprovalArgs.cron_job_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\n\022\010Cron id.'))),
    _descriptor.FieldDescriptor(
      name='approval_id', full_name='ApiGrantCronJobApprovalArgs.approval_id', 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\001z\022xCron job approvals are uniquely identified by the user who requested them, the cron id in question, and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGrantCronJobApprovalArgs.username', 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?\022=Username of the user, whose cron approval is being requested.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8130,
  serialized_end=8440,
)


_APILISTCRONJOBAPPROVALSARGS = _descriptor.Descriptor(
  name='ApiListCronJobApprovalsArgs',
  full_name='ApiListCronJobApprovalsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='offset', full_name='ApiListCronJobApprovalsArgs.offset', index=0,
      number=1, 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\034\022\032Approvals starting offset.'))),
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiListCronJobApprovalsArgs.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\037\022\035Number of approvals to fetch.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8443,
  serialized_end=8578,
)


_APILISTCRONJOBAPPROVALSRESULT = _descriptor.Descriptor(
  name='ApiListCronJobApprovalsResult',
  full_name='ApiListCronJobApprovalsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListCronJobApprovalsResult.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=8580,
  serialized_end=8647,
)


_APICREATECLIENTAPPROVALARGS = _descriptor.Descriptor(
  name='ApiCreateClientApprovalArgs',
  full_name='ApiCreateClientApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiCreateClientApprovalArgs.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='approval', full_name='ApiCreateClientApprovalArgs.approval', 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),
    _descriptor.FieldDescriptor(
      name='keep_client_alive', full_name='ApiCreateClientApprovalArgs.keep_client_alive', index=2,
      number=3, 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^\022\\If true, the client will be kept alive for an hour right after the approval request is sent.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8650,
  serialized_end=8898,
)


_APIGETCLIENTAPPROVALARGS = _descriptor.Descriptor(
  name='ApiGetClientApprovalArgs',
  full_name='ApiGetClientApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGetClientApprovalArgs.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='approval_id', full_name='ApiGetClientApprovalArgs.approval_id', 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\001z\022xClient approvals are uniquely identified by the user who requested them, the client id in question, and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGetClientApprovalArgs.username', 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\001A\022?Username of the user, whose client approval is being requested.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=8901,
  serialized_end=9223,
)


_APIGRANTCLIENTAPPROVALARGS = _descriptor.Descriptor(
  name='ApiGrantClientApprovalArgs',
  full_name='ApiGrantClientApprovalArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiGrantClientApprovalArgs.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='approval_id', full_name='ApiGrantClientApprovalArgs.approval_id', 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\001z\022xClient approvals are uniquely identified by the user who requested them, the client id in question, and the approval id.'))),
    _descriptor.FieldDescriptor(
      name='username', full_name='ApiGrantClientApprovalArgs.username', 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\001A\022?Username of the user, whose client approval is being requested.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9226,
  serialized_end=9550,
)


_APILISTCLIENTAPPROVALSARGS = _descriptor.Descriptor(
  name='ApiListClientApprovalsArgs',
  full_name='ApiListClientApprovalsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='offset', full_name='ApiListClientApprovalsArgs.offset', index=0,
      number=1, 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\034\022\032Approvals starting offset.'))),
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiListClientApprovalsArgs.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\037\022\035Number of approvals to fetch.'))),
    _descriptor.FieldDescriptor(
      name='client_id', full_name='ApiListClientApprovalsArgs.client_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\001\031\n\013ApiClientId\022\nClient id.'))),
    _descriptor.FieldDescriptor(
      name='state', full_name='ApiListClientApprovalsArgs.state', 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\"\022 The state of approvals to fetch.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
    _APILISTCLIENTAPPROVALSARGS_STATE,
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9553,
  serialized_end=9873,
)


_APILISTCLIENTAPPROVALSRESULT = _descriptor.Descriptor(
  name='ApiListClientApprovalsResult',
  full_name='ApiListClientApprovalsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListClientApprovalsResult.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=9875,
  serialized_end=9940,
)


_APILISTPENDINGGLOBALNOTIFICATIONSRESULT = _descriptor.Descriptor(
  name='ApiListPendingGlobalNotificationsResult',
  full_name='ApiListPendingGlobalNotificationsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListPendingGlobalNotificationsResult.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+\022)The list of pending global notifications.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=9943,
  serialized_end=10071,
)


_APIDELETEPENDINGGLOBALNOTIFICATIONARGS = _descriptor.Descriptor(
  name='ApiDeletePendingGlobalNotificationArgs',
  full_name='ApiDeletePendingGlobalNotificationArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='type', full_name='ApiDeletePendingGlobalNotificationArgs.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\0010\022.The type of the global notification to delete.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10074,
  serialized_end=10210,
)


_APIGETPENDINGUSERNOTIFICATIONSCOUNTRESULT = _descriptor.Descriptor(
  name='ApiGetPendingUserNotificationsCountResult',
  full_name='ApiGetPendingUserNotificationsCountResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiGetPendingUserNotificationsCountResult.count', index=0,
      number=1, 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 pending notifications.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10212,
  serialized_end=10312,
)


_APIDELETEPENDINGUSERNOTIFICATIONARGS = _descriptor.Descriptor(
  name='ApiDeletePendingUserNotificationArgs',
  full_name='ApiDeletePendingUserNotificationArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='ApiDeletePendingUserNotificationArgs.timestamp', 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\n\013RDFDatetime\022,The timestamp of the notification to delete.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10314,
  serialized_end=10438,
)


_APILISTANDRESETUSERNOTIFICATIONSARGS = _descriptor.Descriptor(
  name='ApiListAndResetUserNotificationsArgs',
  full_name='ApiListAndResetUserNotificationsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='offset', full_name='ApiListAndResetUserNotificationsArgs.offset', index=0,
      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\022\020Starting offset.'))),
    _descriptor.FieldDescriptor(
      name='count', full_name='ApiListAndResetUserNotificationsArgs.count', index=1,
      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\037\022\035Max number of items to fetch.'))),
    _descriptor.FieldDescriptor(
      name='filter', full_name='ApiListAndResetUserNotificationsArgs.filter', index=2,
      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=10441,
  serialized_end=10674,
)


_APILISTANDRESETUSERNOTIFICATIONSRESULT = _descriptor.Descriptor(
  name='ApiListAndResetUserNotificationsResult',
  full_name='ApiListAndResetUserNotificationsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListAndResetUserNotificationsResult.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\034\022\032The list of notifications.'))),
    _descriptor.FieldDescriptor(
      name='total_count', full_name='ApiListAndResetUserNotificationsResult.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=10677,
  serialized_end=10838,
)


_APILISTPENDINGUSERNOTIFICATIONSARGS = _descriptor.Descriptor(
  name='ApiListPendingUserNotificationsArgs',
  full_name='ApiListPendingUserNotificationsArgs',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='timestamp', full_name='ApiListPendingUserNotificationsArgs.timestamp', 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=_descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001H\n\013RDFDatetime\0229Only notifications after this timestamp will be returned.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10841,
  serialized_end=10977,
)


_APILISTPENDINGUSERNOTIFICATIONSRESULT = _descriptor.Descriptor(
  name='ApiListPendingUserNotificationsResult',
  full_name='ApiListPendingUserNotificationsResult',
  filename=None,
  file=DESCRIPTOR,
  containing_type=None,
  fields=[
    _descriptor.FieldDescriptor(
      name='items', full_name='ApiListPendingUserNotificationsResult.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\034\022\032The list of notifications.'))),
  ],
  extensions=[
  ],
  nested_types=[],
  enum_types=[
  ],
  options=None,
  is_extendable=False,
  syntax='proto2',
  extension_ranges=[],
  oneofs=[
  ],
  serialized_start=10979,
  serialized_end=11087,
)

_APIHUNTAPPROVAL.fields_by_name['subject'].message_type = grr_dot_proto_dot_api_dot_hunt__pb2._APIHUNT
_APIHUNTAPPROVAL.fields_by_name['copied_from_hunt'].message_type = grr_dot_proto_dot_api_dot_hunt__pb2._APIHUNT
_APIHUNTAPPROVAL.fields_by_name['copied_from_flow'].message_type = grr_dot_proto_dot_api_dot_flow__pb2._APIFLOW
_APICRONJOBAPPROVAL.fields_by_name['subject'].message_type = grr_dot_proto_dot_api_dot_cron__pb2._APICRONJOB
_APICLIENTAPPROVAL.fields_by_name['subject'].message_type = grr_dot_proto_dot_api_dot_client__pb2._APICLIENT
_APIGRRUSER.fields_by_name['settings'].message_type = grr_dot_proto_dot_flows__pb2._GUISETTINGS
_APIGRRUSER.fields_by_name['interface_traits'].message_type = _APIGRRUSERINTERFACETRAITS
_APIGRRUSER.fields_by_name['user_type'].enum_type = _APIGRRUSER_USERTYPE
_APIGRRUSER_USERTYPE.containing_type = _APIGRRUSER
_APINOTIFICATIONREFERENCE.fields_by_name['type'].enum_type = _APINOTIFICATIONREFERENCE_TYPE
_APINOTIFICATIONREFERENCE.fields_by_name['discovery'].message_type = _APINOTIFICATIONDISCOVERYREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['hunt'].message_type = _APINOTIFICATIONHUNTREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['cron'].message_type = _APINOTIFICATIONCRONREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['flow'].message_type = _APINOTIFICATIONFLOWREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['vfs'].message_type = _APINOTIFICATIONVFSREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['client_approval'].message_type = _APINOTIFICATIONCLIENTAPPROVALREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['hunt_approval'].message_type = _APINOTIFICATIONHUNTAPPROVALREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['cron_job_approval'].message_type = _APINOTIFICATIONCRONJOBAPPROVALREFERENCE
_APINOTIFICATIONREFERENCE.fields_by_name['unknown'].message_type = _APINOTIFICATIONUNKNOWNREFERENCE
_APINOTIFICATIONREFERENCE_TYPE.containing_type = _APINOTIFICATIONREFERENCE
_APINOTIFICATION.fields_by_name['reference'].message_type = _APINOTIFICATIONREFERENCE
_APICREATEHUNTAPPROVALARGS.fields_by_name['approval'].message_type = _APIHUNTAPPROVAL
_APILISTHUNTAPPROVALSRESULT.fields_by_name['items'].message_type = _APIHUNTAPPROVAL
_APICREATECRONJOBAPPROVALARGS.fields_by_name['approval'].message_type = _APICRONJOBAPPROVAL
_APILISTCRONJOBAPPROVALSRESULT.fields_by_name['items'].message_type = _APICRONJOBAPPROVAL
_APICREATECLIENTAPPROVALARGS.fields_by_name['approval'].message_type = _APICLIENTAPPROVAL
_APILISTCLIENTAPPROVALSARGS.fields_by_name['state'].enum_type = _APILISTCLIENTAPPROVALSARGS_STATE
_APILISTCLIENTAPPROVALSARGS_STATE.containing_type = _APILISTCLIENTAPPROVALSARGS
_APILISTCLIENTAPPROVALSRESULT.fields_by_name['items'].message_type = _APICLIENTAPPROVAL
_APILISTPENDINGGLOBALNOTIFICATIONSRESULT.fields_by_name['items'].message_type = grr_dot_proto_dot_jobs__pb2._GLOBALNOTIFICATION
_APIDELETEPENDINGGLOBALNOTIFICATIONARGS.fields_by_name['type'].enum_type = grr_dot_proto_dot_jobs__pb2._GLOBALNOTIFICATION_TYPE
_APILISTANDRESETUSERNOTIFICATIONSRESULT.fields_by_name['items'].message_type = _APINOTIFICATION
_APILISTPENDINGUSERNOTIFICATIONSRESULT.fields_by_name['items'].message_type = _APINOTIFICATION
DESCRIPTOR.message_types_by_name['ApiHuntApproval'] = _APIHUNTAPPROVAL
DESCRIPTOR.message_types_by_name['ApiCronJobApproval'] = _APICRONJOBAPPROVAL
DESCRIPTOR.message_types_by_name['ApiClientApproval'] = _APICLIENTAPPROVAL
DESCRIPTOR.message_types_by_name['ApiGrrUserInterfaceTraits'] = _APIGRRUSERINTERFACETRAITS
DESCRIPTOR.message_types_by_name['ApiGrrUser'] = _APIGRRUSER
DESCRIPTOR.message_types_by_name['ApiNotificationReference'] = _APINOTIFICATIONREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationDiscoveryReference'] = _APINOTIFICATIONDISCOVERYREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationFileDownloadReference'] = _APINOTIFICATIONFILEDOWNLOADREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationHuntReference'] = _APINOTIFICATIONHUNTREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationCronReference'] = _APINOTIFICATIONCRONREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationFlowReference'] = _APINOTIFICATIONFLOWREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationVfsReference'] = _APINOTIFICATIONVFSREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationClientApprovalReference'] = _APINOTIFICATIONCLIENTAPPROVALREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationHuntApprovalReference'] = _APINOTIFICATIONHUNTAPPROVALREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationCronJobApprovalReference'] = _APINOTIFICATIONCRONJOBAPPROVALREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotificationUnknownReference'] = _APINOTIFICATIONUNKNOWNREFERENCE
DESCRIPTOR.message_types_by_name['ApiNotification'] = _APINOTIFICATION
DESCRIPTOR.message_types_by_name['ApiCreateHuntApprovalArgs'] = _APICREATEHUNTAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiGetHuntApprovalArgs'] = _APIGETHUNTAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiGrantHuntApprovalArgs'] = _APIGRANTHUNTAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiListHuntApprovalsArgs'] = _APILISTHUNTAPPROVALSARGS
DESCRIPTOR.message_types_by_name['ApiListHuntApprovalsResult'] = _APILISTHUNTAPPROVALSRESULT
DESCRIPTOR.message_types_by_name['ApiCreateCronJobApprovalArgs'] = _APICREATECRONJOBAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiGetCronJobApprovalArgs'] = _APIGETCRONJOBAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiGrantCronJobApprovalArgs'] = _APIGRANTCRONJOBAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiListCronJobApprovalsArgs'] = _APILISTCRONJOBAPPROVALSARGS
DESCRIPTOR.message_types_by_name['ApiListCronJobApprovalsResult'] = _APILISTCRONJOBAPPROVALSRESULT
DESCRIPTOR.message_types_by_name['ApiCreateClientApprovalArgs'] = _APICREATECLIENTAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiGetClientApprovalArgs'] = _APIGETCLIENTAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiGrantClientApprovalArgs'] = _APIGRANTCLIENTAPPROVALARGS
DESCRIPTOR.message_types_by_name['ApiListClientApprovalsArgs'] = _APILISTCLIENTAPPROVALSARGS
DESCRIPTOR.message_types_by_name['ApiListClientApprovalsResult'] = _APILISTCLIENTAPPROVALSRESULT
DESCRIPTOR.message_types_by_name['ApiListPendingGlobalNotificationsResult'] = _APILISTPENDINGGLOBALNOTIFICATIONSRESULT
DESCRIPTOR.message_types_by_name['ApiDeletePendingGlobalNotificationArgs'] = _APIDELETEPENDINGGLOBALNOTIFICATIONARGS
DESCRIPTOR.message_types_by_name['ApiGetPendingUserNotificationsCountResult'] = _APIGETPENDINGUSERNOTIFICATIONSCOUNTRESULT
DESCRIPTOR.message_types_by_name['ApiDeletePendingUserNotificationArgs'] = _APIDELETEPENDINGUSERNOTIFICATIONARGS
DESCRIPTOR.message_types_by_name['ApiListAndResetUserNotificationsArgs'] = _APILISTANDRESETUSERNOTIFICATIONSARGS
DESCRIPTOR.message_types_by_name['ApiListAndResetUserNotificationsResult'] = _APILISTANDRESETUSERNOTIFICATIONSRESULT
DESCRIPTOR.message_types_by_name['ApiListPendingUserNotificationsArgs'] = _APILISTPENDINGUSERNOTIFICATIONSARGS
DESCRIPTOR.message_types_by_name['ApiListPendingUserNotificationsResult'] = _APILISTPENDINGUSERNOTIFICATIONSRESULT
_sym_db.RegisterFileDescriptor(DESCRIPTOR)

ApiHuntApproval = _reflection.GeneratedProtocolMessageType('ApiHuntApproval', (_message.Message,), dict(
  DESCRIPTOR = _APIHUNTAPPROVAL,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiHuntApproval)
  ))
_sym_db.RegisterMessage(ApiHuntApproval)

ApiCronJobApproval = _reflection.GeneratedProtocolMessageType('ApiCronJobApproval', (_message.Message,), dict(
  DESCRIPTOR = _APICRONJOBAPPROVAL,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiCronJobApproval)
  ))
_sym_db.RegisterMessage(ApiCronJobApproval)

ApiClientApproval = _reflection.GeneratedProtocolMessageType('ApiClientApproval', (_message.Message,), dict(
  DESCRIPTOR = _APICLIENTAPPROVAL,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiClientApproval)
  ))
_sym_db.RegisterMessage(ApiClientApproval)

ApiGrrUserInterfaceTraits = _reflection.GeneratedProtocolMessageType('ApiGrrUserInterfaceTraits', (_message.Message,), dict(
  DESCRIPTOR = _APIGRRUSERINTERFACETRAITS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGrrUserInterfaceTraits)
  ))
_sym_db.RegisterMessage(ApiGrrUserInterfaceTraits)

ApiGrrUser = _reflection.GeneratedProtocolMessageType('ApiGrrUser', (_message.Message,), dict(
  DESCRIPTOR = _APIGRRUSER,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGrrUser)
  ))
_sym_db.RegisterMessage(ApiGrrUser)

ApiNotificationReference = _reflection.GeneratedProtocolMessageType('ApiNotificationReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationReference)
  ))
_sym_db.RegisterMessage(ApiNotificationReference)

ApiNotificationDiscoveryReference = _reflection.GeneratedProtocolMessageType('ApiNotificationDiscoveryReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONDISCOVERYREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationDiscoveryReference)
  ))
_sym_db.RegisterMessage(ApiNotificationDiscoveryReference)

ApiNotificationFileDownloadReference = _reflection.GeneratedProtocolMessageType('ApiNotificationFileDownloadReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONFILEDOWNLOADREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationFileDownloadReference)
  ))
_sym_db.RegisterMessage(ApiNotificationFileDownloadReference)

ApiNotificationHuntReference = _reflection.GeneratedProtocolMessageType('ApiNotificationHuntReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONHUNTREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationHuntReference)
  ))
_sym_db.RegisterMessage(ApiNotificationHuntReference)

ApiNotificationCronReference = _reflection.GeneratedProtocolMessageType('ApiNotificationCronReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONCRONREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationCronReference)
  ))
_sym_db.RegisterMessage(ApiNotificationCronReference)

ApiNotificationFlowReference = _reflection.GeneratedProtocolMessageType('ApiNotificationFlowReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONFLOWREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationFlowReference)
  ))
_sym_db.RegisterMessage(ApiNotificationFlowReference)

ApiNotificationVfsReference = _reflection.GeneratedProtocolMessageType('ApiNotificationVfsReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONVFSREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationVfsReference)
  ))
_sym_db.RegisterMessage(ApiNotificationVfsReference)

ApiNotificationClientApprovalReference = _reflection.GeneratedProtocolMessageType('ApiNotificationClientApprovalReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONCLIENTAPPROVALREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationClientApprovalReference)
  ))
_sym_db.RegisterMessage(ApiNotificationClientApprovalReference)

ApiNotificationHuntApprovalReference = _reflection.GeneratedProtocolMessageType('ApiNotificationHuntApprovalReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONHUNTAPPROVALREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationHuntApprovalReference)
  ))
_sym_db.RegisterMessage(ApiNotificationHuntApprovalReference)

ApiNotificationCronJobApprovalReference = _reflection.GeneratedProtocolMessageType('ApiNotificationCronJobApprovalReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONCRONJOBAPPROVALREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationCronJobApprovalReference)
  ))
_sym_db.RegisterMessage(ApiNotificationCronJobApprovalReference)

ApiNotificationUnknownReference = _reflection.GeneratedProtocolMessageType('ApiNotificationUnknownReference', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATIONUNKNOWNREFERENCE,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotificationUnknownReference)
  ))
_sym_db.RegisterMessage(ApiNotificationUnknownReference)

ApiNotification = _reflection.GeneratedProtocolMessageType('ApiNotification', (_message.Message,), dict(
  DESCRIPTOR = _APINOTIFICATION,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiNotification)
  ))
_sym_db.RegisterMessage(ApiNotification)

ApiCreateHuntApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiCreateHuntApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APICREATEHUNTAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiCreateHuntApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiCreateHuntApprovalArgs)

ApiGetHuntApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiGetHuntApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETHUNTAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetHuntApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiGetHuntApprovalArgs)

ApiGrantHuntApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiGrantHuntApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGRANTHUNTAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGrantHuntApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiGrantHuntApprovalArgs)

ApiListHuntApprovalsArgs = _reflection.GeneratedProtocolMessageType('ApiListHuntApprovalsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTHUNTAPPROVALSARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListHuntApprovalsArgs)
  ))
_sym_db.RegisterMessage(ApiListHuntApprovalsArgs)

ApiListHuntApprovalsResult = _reflection.GeneratedProtocolMessageType('ApiListHuntApprovalsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTHUNTAPPROVALSRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListHuntApprovalsResult)
  ))
_sym_db.RegisterMessage(ApiListHuntApprovalsResult)

ApiCreateCronJobApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiCreateCronJobApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APICREATECRONJOBAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiCreateCronJobApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiCreateCronJobApprovalArgs)

ApiGetCronJobApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiGetCronJobApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCRONJOBAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetCronJobApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiGetCronJobApprovalArgs)

ApiGrantCronJobApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiGrantCronJobApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGRANTCRONJOBAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGrantCronJobApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiGrantCronJobApprovalArgs)

ApiListCronJobApprovalsArgs = _reflection.GeneratedProtocolMessageType('ApiListCronJobApprovalsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCRONJOBAPPROVALSARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListCronJobApprovalsArgs)
  ))
_sym_db.RegisterMessage(ApiListCronJobApprovalsArgs)

ApiListCronJobApprovalsResult = _reflection.GeneratedProtocolMessageType('ApiListCronJobApprovalsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCRONJOBAPPROVALSRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListCronJobApprovalsResult)
  ))
_sym_db.RegisterMessage(ApiListCronJobApprovalsResult)

ApiCreateClientApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiCreateClientApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APICREATECLIENTAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiCreateClientApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiCreateClientApprovalArgs)

ApiGetClientApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiGetClientApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGETCLIENTAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetClientApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiGetClientApprovalArgs)

ApiGrantClientApprovalArgs = _reflection.GeneratedProtocolMessageType('ApiGrantClientApprovalArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIGRANTCLIENTAPPROVALARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGrantClientApprovalArgs)
  ))
_sym_db.RegisterMessage(ApiGrantClientApprovalArgs)

ApiListClientApprovalsArgs = _reflection.GeneratedProtocolMessageType('ApiListClientApprovalsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTAPPROVALSARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientApprovalsArgs)
  ))
_sym_db.RegisterMessage(ApiListClientApprovalsArgs)

ApiListClientApprovalsResult = _reflection.GeneratedProtocolMessageType('ApiListClientApprovalsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTCLIENTAPPROVALSRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListClientApprovalsResult)
  ))
_sym_db.RegisterMessage(ApiListClientApprovalsResult)

ApiListPendingGlobalNotificationsResult = _reflection.GeneratedProtocolMessageType('ApiListPendingGlobalNotificationsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTPENDINGGLOBALNOTIFICATIONSRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListPendingGlobalNotificationsResult)
  ))
_sym_db.RegisterMessage(ApiListPendingGlobalNotificationsResult)

ApiDeletePendingGlobalNotificationArgs = _reflection.GeneratedProtocolMessageType('ApiDeletePendingGlobalNotificationArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIDELETEPENDINGGLOBALNOTIFICATIONARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiDeletePendingGlobalNotificationArgs)
  ))
_sym_db.RegisterMessage(ApiDeletePendingGlobalNotificationArgs)

ApiGetPendingUserNotificationsCountResult = _reflection.GeneratedProtocolMessageType('ApiGetPendingUserNotificationsCountResult', (_message.Message,), dict(
  DESCRIPTOR = _APIGETPENDINGUSERNOTIFICATIONSCOUNTRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiGetPendingUserNotificationsCountResult)
  ))
_sym_db.RegisterMessage(ApiGetPendingUserNotificationsCountResult)

ApiDeletePendingUserNotificationArgs = _reflection.GeneratedProtocolMessageType('ApiDeletePendingUserNotificationArgs', (_message.Message,), dict(
  DESCRIPTOR = _APIDELETEPENDINGUSERNOTIFICATIONARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiDeletePendingUserNotificationArgs)
  ))
_sym_db.RegisterMessage(ApiDeletePendingUserNotificationArgs)

ApiListAndResetUserNotificationsArgs = _reflection.GeneratedProtocolMessageType('ApiListAndResetUserNotificationsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTANDRESETUSERNOTIFICATIONSARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListAndResetUserNotificationsArgs)
  ))
_sym_db.RegisterMessage(ApiListAndResetUserNotificationsArgs)

ApiListAndResetUserNotificationsResult = _reflection.GeneratedProtocolMessageType('ApiListAndResetUserNotificationsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTANDRESETUSERNOTIFICATIONSRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListAndResetUserNotificationsResult)
  ))
_sym_db.RegisterMessage(ApiListAndResetUserNotificationsResult)

ApiListPendingUserNotificationsArgs = _reflection.GeneratedProtocolMessageType('ApiListPendingUserNotificationsArgs', (_message.Message,), dict(
  DESCRIPTOR = _APILISTPENDINGUSERNOTIFICATIONSARGS,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListPendingUserNotificationsArgs)
  ))
_sym_db.RegisterMessage(ApiListPendingUserNotificationsArgs)

ApiListPendingUserNotificationsResult = _reflection.GeneratedProtocolMessageType('ApiListPendingUserNotificationsResult', (_message.Message,), dict(
  DESCRIPTOR = _APILISTPENDINGUSERNOTIFICATIONSRESULT,
  __module__ = 'grr.proto.api.user_pb2'
  # @@protoc_insertion_point(class_scope:ApiListPendingUserNotificationsResult)
  ))
_sym_db.RegisterMessage(ApiListPendingUserNotificationsResult)


_APIHUNTAPPROVAL.fields_by_name['subject'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['subject']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001@\022>A hunt that has to be accessed after this approval is granted.'))
_APIHUNTAPPROVAL.fields_by_name['id'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001_\022]Approval id. Approval is identified by the hunt id, requestor\'s username and the approval id.'))
_APIHUNTAPPROVAL.fields_by_name['reason'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['reason']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\"\022 A reason for accessing the hunt.'))
_APIHUNTAPPROVAL.fields_by_name['is_valid'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['is_valid']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\022XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.'))
_APIHUNTAPPROVAL.fields_by_name['is_valid_message'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['is_valid_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001t\022rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.'))
_APIHUNTAPPROVAL.fields_by_name['notified_users'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['notified_users']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\022CGRR users that will be notified about the approval being requested.'))
_APIHUNTAPPROVAL.fields_by_name['email_cc_addresses'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['email_cc_addresses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\022RList of emails used to send a notification to about this approval being requested.'))
_APIHUNTAPPROVAL.fields_by_name['approvers'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['approvers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001o\022mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.'))
_APIHUNTAPPROVAL.fields_by_name['copied_from_hunt'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['copied_from_hunt']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001^\022\\If the hunt was copied from another hunt, the original hunt information will be stored here.'))
_APIHUNTAPPROVAL.fields_by_name['copied_from_flow'].has_options = True
_APIHUNTAPPROVAL.fields_by_name['copied_from_flow']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Y\022WIf the hunt was started from a flow, the original flow information will be stored here.'))
_APICRONJOBAPPROVAL.fields_by_name['subject'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['subject']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001D\022BA cron job that has to be accessed after this approval is granted.'))
_APICRONJOBAPPROVAL.fields_by_name['id'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001c\022aApproval id. Approval is identified by the cron job id, requestor\'s username and the approval id.'))
_APICRONJOBAPPROVAL.fields_by_name['reason'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['reason']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001&\022$A reason for accessing the cron job.'))
_APICRONJOBAPPROVAL.fields_by_name['is_valid'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['is_valid']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\022XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.'))
_APICRONJOBAPPROVAL.fields_by_name['is_valid_message'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['is_valid_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001t\022rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.'))
_APICRONJOBAPPROVAL.fields_by_name['notified_users'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['notified_users']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\022CGRR users that will be notified about the approval being requested.'))
_APICRONJOBAPPROVAL.fields_by_name['email_cc_addresses'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['email_cc_addresses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\022RList of emails used to send a notification to about this approval being requested.'))
_APICRONJOBAPPROVAL.fields_by_name['approvers'].has_options = True
_APICRONJOBAPPROVAL.fields_by_name['approvers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001o\022mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.'))
_APICLIENTAPPROVAL.fields_by_name['subject'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['subject']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001B\022@A client that has to be accessed after this approval is granted.'))
_APICLIENTAPPROVAL.fields_by_name['id'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001a\022_Approval id. Approval is identified by the client id, requestor\'s username and the approval id.'))
_APICLIENTAPPROVAL.fields_by_name['reason'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['reason']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"A reason for accessing the client.'))
_APICLIENTAPPROVAL.fields_by_name['is_valid'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['is_valid']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001Z\022XIf True, this approval is still valid. If False, then it wasn\'t approved or got expired.'))
_APICLIENTAPPROVAL.fields_by_name['is_valid_message'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['is_valid_message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001t\022rIf is_valid is False, is_valid_message will contain a human-readable description of why the approval is not valid.'))
_APICLIENTAPPROVAL.fields_by_name['notified_users'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['notified_users']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001E\022CGRR users that will be notified about the approval being requested.'))
_APICLIENTAPPROVAL.fields_by_name['email_cc_addresses'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['email_cc_addresses']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001T\022RList of emails used to send a notification to about this approval being requested.'))
_APICLIENTAPPROVAL.fields_by_name['approvers'].has_options = True
_APICLIENTAPPROVAL.fields_by_name['approvers']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001o\022mList of GRR users who granted this approval. Note: this list always includes the original approval requestor.'))
_APIGRRUSER.fields_by_name['username'].has_options = True
_APIGRRUSER.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\027\022\025The name of the user.'))
_APIGRRUSER.fields_by_name['settings'].has_options = True
_APIGRRUSER.fields_by_name['settings']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\023\022\021User UI settings.'))
_APIGRRUSER.fields_by_name['interface_traits'].has_options = True
_APIGRRUSER.fields_by_name['interface_traits']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001A\022?User\'s interface traits (what they can and can\'t do in the UI).'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["DISCOVERY"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["DISCOVERY"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\tDiscovery'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["HUNT"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["HUNT"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Hunt'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["CRON"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["CRON"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\010Cron job'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["FLOW"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["FLOW"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\004Flow'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["VFS"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["VFS"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\023Virtual file system'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["CLIENT_APPROVAL"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["CLIENT_APPROVAL"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\017Client approval'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["HUNT_APPROVAL"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["HUNT_APPROVAL"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\rHunt approval'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["CRON_JOB_APPROVAL"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["CRON_JOB_APPROVAL"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\021Cron job approval'))
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["UNKNOWN"].has_options = True
_APINOTIFICATIONREFERENCE_TYPE.values_by_name["UNKNOWN"]._options = _descriptor._ParseOptions(descriptor_pb2.EnumValueOptions(), _b('\352\271\313\271\001\007Unknown'))
_APINOTIFICATIONREFERENCE.has_options = True
_APINOTIFICATIONREFERENCE._options = _descriptor._ParseOptions(descriptor_pb2.MessageOptions(), _b('\332\374\343\304\001\006\022\004type'))
_APINOTIFICATIONDISCOVERYREFERENCE.fields_by_name['client_id'].has_options = True
_APINOTIFICATIONDISCOVERYREFERENCE.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013ApiClientId\022&The client this notification is about.'))
_APINOTIFICATIONFILEDOWNLOADREFERENCE.fields_by_name['path'].has_options = True
_APINOTIFICATIONFILEDOWNLOADREFERENCE.fields_by_name['path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001)\n\006RDFURN\022\037The download path for the file.'))
_APINOTIFICATIONHUNTREFERENCE.fields_by_name['hunt_urn'].has_options = True
_APINOTIFICATIONHUNTREFERENCE.fields_by_name['hunt_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001.\n\006RDFURN\022$The hunt this notification is about.'))
_APINOTIFICATIONCRONREFERENCE.fields_by_name['cron_job_urn'].has_options = True
_APINOTIFICATIONCRONREFERENCE.fields_by_name['cron_job_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\n\006RDFURN\022(The cron job this notification is about.'))
_APINOTIFICATIONFLOWREFERENCE.fields_by_name['client_id'].has_options = True
_APINOTIFICATIONFLOWREFERENCE.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013ApiClientId\022&The client this notification is about.'))
_APINOTIFICATIONFLOWREFERENCE.fields_by_name['flow_id'].has_options = True
_APINOTIFICATIONFLOWREFERENCE.fields_by_name['flow_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0011\n\tApiFlowId\022$The flow this notification is about.'))
_APINOTIFICATIONVFSREFERENCE.fields_by_name['vfs_path'].has_options = True
_APINOTIFICATIONVFSREFERENCE.fields_by_name['vfs_path']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0012\n\006RDFURN\022(The cron job this notification is about.'))
_APINOTIFICATIONVFSREFERENCE.fields_by_name['client_id'].has_options = True
_APINOTIFICATIONVFSREFERENCE.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0015\n\013ApiClientId\022&The client this notification is about.'))
_APINOTIFICATIONCLIENTAPPROVALREFERENCE.fields_by_name['client_id'].has_options = True
_APINOTIFICATIONCLIENTAPPROVALREFERENCE.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\r\n\013ApiClientId'))
_APINOTIFICATIONHUNTAPPROVALREFERENCE.fields_by_name['hunt_id'].has_options = True
_APINOTIFICATIONHUNTAPPROVALREFERENCE.fields_by_name['hunt_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\013\n\tApiHuntId'))
_APINOTIFICATIONUNKNOWNREFERENCE.fields_by_name['source_urn'].has_options = True
_APINOTIFICATIONUNKNOWNREFERENCE.fields_by_name['source_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\010\n\006RDFURN'))
_APINOTIFICATIONUNKNOWNREFERENCE.fields_by_name['subject_urn'].has_options = True
_APINOTIFICATIONUNKNOWNREFERENCE.fields_by_name['subject_urn']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\010\n\006RDFURN'))
_APINOTIFICATION.fields_by_name['timestamp'].has_options = True
_APINOTIFICATION.fields_by_name['timestamp']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001/\n\013RDFDatetime\022 Time the notification was added.'))
_APINOTIFICATION.fields_by_name['message'].has_options = True
_APINOTIFICATION.fields_by_name['message']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)The content message of this notification.'))
_APINOTIFICATION.fields_by_name['reference'].has_options = True
_APINOTIFICATION.fields_by_name['reference']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001$\022\"The reference of the notification.'))
_APINOTIFICATION.fields_by_name['is_pending'].has_options = True
_APINOTIFICATION.fields_by_name['is_pending']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001-\022+Whether the notification is pending or not.'))
_APICREATEHUNTAPPROVALARGS.fields_by_name['hunt_id'].has_options = True
_APICREATEHUNTAPPROVALARGS.fields_by_name['hunt_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\n\tApiHuntId\022\010Hunt id.'))
_APIGETHUNTAPPROVALARGS.fields_by_name['hunt_id'].has_options = True
_APIGETHUNTAPPROVALARGS.fields_by_name['hunt_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\n\tApiHuntId\022\010Hunt id.'))
_APIGETHUNTAPPROVALARGS.fields_by_name['approval_id'].has_options = True
_APIGETHUNTAPPROVALARGS.fields_by_name['approval_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001v\022tHunt approvals are uniquely identified by the user who requested them, the hunt id in question, and the approval id.'))
_APIGETHUNTAPPROVALARGS.fields_by_name['username'].has_options = True
_APIGETHUNTAPPROVALARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022=Username of the user, whose hunt approval is being requested.'))
_APIGRANTHUNTAPPROVALARGS.fields_by_name['hunt_id'].has_options = True
_APIGRANTHUNTAPPROVALARGS.fields_by_name['hunt_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\025\n\tApiHuntId\022\010Hunt id.'))
_APIGRANTHUNTAPPROVALARGS.fields_by_name['approval_id'].has_options = True
_APIGRANTHUNTAPPROVALARGS.fields_by_name['approval_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001v\022tHunt approvals are uniquely identified by the user who requested them, the hunt id in question, and the approval id.'))
_APIGRANTHUNTAPPROVALARGS.fields_by_name['username'].has_options = True
_APIGRANTHUNTAPPROVALARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022=Username of the user, whose hunt approval is being requested.'))
_APILISTHUNTAPPROVALSARGS.fields_by_name['offset'].has_options = True
_APILISTHUNTAPPROVALSARGS.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Approvals starting offset.'))
_APILISTHUNTAPPROVALSARGS.fields_by_name['count'].has_options = True
_APILISTHUNTAPPROVALSARGS.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Number of approvals to fetch.'))
_APICREATECRONJOBAPPROVALARGS.fields_by_name['cron_job_id'].has_options = True
_APICREATECRONJOBAPPROVALARGS.fields_by_name['cron_job_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\n\022\010Cron id.'))
_APIGETCRONJOBAPPROVALARGS.fields_by_name['cron_job_id'].has_options = True
_APIGETCRONJOBAPPROVALARGS.fields_by_name['cron_job_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\n\022\010Cron id.'))
_APIGETCRONJOBAPPROVALARGS.fields_by_name['approval_id'].has_options = True
_APIGETCRONJOBAPPROVALARGS.fields_by_name['approval_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001z\022xCron job approvals are uniquely identified by the user who requested them, the cron id in question, and the approval id.'))
_APIGETCRONJOBAPPROVALARGS.fields_by_name['username'].has_options = True
_APIGETCRONJOBAPPROVALARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022=Username of the user, whose cron approval is being requested.'))
_APIGRANTCRONJOBAPPROVALARGS.fields_by_name['cron_job_id'].has_options = True
_APIGRANTCRONJOBAPPROVALARGS.fields_by_name['cron_job_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\n\022\010Cron id.'))
_APIGRANTCRONJOBAPPROVALARGS.fields_by_name['approval_id'].has_options = True
_APIGRANTCRONJOBAPPROVALARGS.fields_by_name['approval_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001z\022xCron job approvals are uniquely identified by the user who requested them, the cron id in question, and the approval id.'))
_APIGRANTCRONJOBAPPROVALARGS.fields_by_name['username'].has_options = True
_APIGRANTCRONJOBAPPROVALARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001?\022=Username of the user, whose cron approval is being requested.'))
_APILISTCRONJOBAPPROVALSARGS.fields_by_name['offset'].has_options = True
_APILISTCRONJOBAPPROVALSARGS.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Approvals starting offset.'))
_APILISTCRONJOBAPPROVALSARGS.fields_by_name['count'].has_options = True
_APILISTCRONJOBAPPROVALSARGS.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Number of approvals to fetch.'))
_APICREATECLIENTAPPROVALARGS.fields_by_name['client_id'].has_options = True
_APICREATECLIENTAPPROVALARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APICREATECLIENTAPPROVALARGS.fields_by_name['keep_client_alive'].has_options = True
_APICREATECLIENTAPPROVALARGS.fields_by_name['keep_client_alive']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001^\022\\If true, the client will be kept alive for an hour right after the approval request is sent.'))
_APIGETCLIENTAPPROVALARGS.fields_by_name['client_id'].has_options = True
_APIGETCLIENTAPPROVALARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGETCLIENTAPPROVALARGS.fields_by_name['approval_id'].has_options = True
_APIGETCLIENTAPPROVALARGS.fields_by_name['approval_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001z\022xClient approvals are uniquely identified by the user who requested them, the client id in question, and the approval id.'))
_APIGETCLIENTAPPROVALARGS.fields_by_name['username'].has_options = True
_APIGETCLIENTAPPROVALARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001A\022?Username of the user, whose client approval is being requested.'))
_APIGRANTCLIENTAPPROVALARGS.fields_by_name['client_id'].has_options = True
_APIGRANTCLIENTAPPROVALARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APIGRANTCLIENTAPPROVALARGS.fields_by_name['approval_id'].has_options = True
_APIGRANTCLIENTAPPROVALARGS.fields_by_name['approval_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001z\022xClient approvals are uniquely identified by the user who requested them, the client id in question, and the approval id.'))
_APIGRANTCLIENTAPPROVALARGS.fields_by_name['username'].has_options = True
_APIGRANTCLIENTAPPROVALARGS.fields_by_name['username']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001A\022?Username of the user, whose client approval is being requested.'))
_APILISTCLIENTAPPROVALSARGS.fields_by_name['offset'].has_options = True
_APILISTCLIENTAPPROVALSARGS.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032Approvals starting offset.'))
_APILISTCLIENTAPPROVALSARGS.fields_by_name['count'].has_options = True
_APILISTCLIENTAPPROVALSARGS.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Number of approvals to fetch.'))
_APILISTCLIENTAPPROVALSARGS.fields_by_name['client_id'].has_options = True
_APILISTCLIENTAPPROVALSARGS.fields_by_name['client_id']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\031\n\013ApiClientId\022\nClient id.'))
_APILISTCLIENTAPPROVALSARGS.fields_by_name['state'].has_options = True
_APILISTCLIENTAPPROVALSARGS.fields_by_name['state']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\"\022 The state of approvals to fetch.'))
_APILISTPENDINGGLOBALNOTIFICATIONSRESULT.fields_by_name['items'].has_options = True
_APILISTPENDINGGLOBALNOTIFICATIONSRESULT.fields_by_name['items']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001+\022)The list of pending global notifications.'))
_APIDELETEPENDINGGLOBALNOTIFICATIONARGS.fields_by_name['type'].has_options = True
_APIDELETEPENDINGGLOBALNOTIFICATIONARGS.fields_by_name['type']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\0010\022.The type of the global notification to delete.'))
_APIGETPENDINGUSERNOTIFICATIONSCOUNTRESULT.fields_by_name['count'].has_options = True
_APIGETPENDINGUSERNOTIFICATIONSCOUNTRESULT.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\"\022 Number of pending notifications.'))
_APIDELETEPENDINGUSERNOTIFICATIONARGS.fields_by_name['timestamp'].has_options = True
_APIDELETEPENDINGUSERNOTIFICATIONARGS.fields_by_name['timestamp']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001;\n\013RDFDatetime\022,The timestamp of the notification to delete.'))
_APILISTANDRESETUSERNOTIFICATIONSARGS.fields_by_name['offset'].has_options = True
_APILISTANDRESETUSERNOTIFICATIONSARGS.fields_by_name['offset']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\022\022\020Starting offset.'))
_APILISTANDRESETUSERNOTIFICATIONSARGS.fields_by_name['count'].has_options = True
_APILISTANDRESETUSERNOTIFICATIONSARGS.fields_by_name['count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\037\022\035Max number of items to fetch.'))
_APILISTANDRESETUSERNOTIFICATIONSARGS.fields_by_name['filter'].has_options = True
_APILISTANDRESETUSERNOTIFICATIONSARGS.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.'))
_APILISTANDRESETUSERNOTIFICATIONSRESULT.fields_by_name['items'].has_options = True
_APILISTANDRESETUSERNOTIFICATIONSRESULT.fields_by_name['items']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032The list of notifications.'))
_APILISTANDRESETUSERNOTIFICATIONSRESULT.fields_by_name['total_count'].has_options = True
_APILISTANDRESETUSERNOTIFICATIONSRESULT.fields_by_name['total_count']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\027\022\025Total count of items.'))
_APILISTPENDINGUSERNOTIFICATIONSARGS.fields_by_name['timestamp'].has_options = True
_APILISTPENDINGUSERNOTIFICATIONSARGS.fields_by_name['timestamp']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001H\n\013RDFDatetime\0229Only notifications after this timestamp will be returned.'))
_APILISTPENDINGUSERNOTIFICATIONSRESULT.fields_by_name['items'].has_options = True
_APILISTPENDINGUSERNOTIFICATIONSRESULT.fields_by_name['items']._options = _descriptor._ParseOptions(descriptor_pb2.FieldOptions(), _b('\342\374\343\304\001\034\022\032The list of notifications.'))
# @@protoc_insertion_point(module_scope)
