From 904e790ac51d26cacdbc7ed9e5d2e4e1176bfb6b Mon Sep 17 00:00:00 2001 From: Miroslav Tsvetanov Date: Fri, 25 Sep 2026 17:47:31 +0300 Subject: [PATCH 1/4] extend v2 auditevent schema with AI context --- .../auditlog/auditevent/v2/auditevent_pb2.py | 1164 ++++++++---- .../auditlog/auditevent/v2/auditevent_pb2.pyi | 605 +++++- .../auditlog/auditevent/v2/auditevent.proto | 1638 +++++++++++------ 3 files changed, 2501 insertions(+), 906 deletions(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py index c507436c..b185970b 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py @@ -27,7 +27,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v2/auditevent.proto\x12\x1asap.auditlog.auditevent.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xbc\x03\n\x06\x43ommon\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1b\n\tsource_ip\x18\x02 \x03(\tR\x08sourceIp\x12\x30\n\x14user_impersonated_id\x18\x03 \x01(\tR\x12userImpersonatedId\x12*\n\x11user_initiator_id\x18\x04 \x01(\tR\x0fuserInitiatorId\x12\x15\n\x06\x61pp_id\x18\x05 \x01(\tR\x05\x61ppId\x12\x1b\n\ttenant_id\x18\x06 \x01(\tR\x08tenantId\x12\x35\n\x17user_session_context_id\x18\x07 \x01(\tR\x14userSessionContextId\x12S\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x32.sap.auditlog.auditevent.v2.Common.AppContextEntryR\nappContext\x1a=\n\x0f\x41ppContextEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"u\n\rAuditlogClear\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12(\n\x10number_of_events\x18\x02 \x01(\x05R\x0enumberOfEvents\"M\n\x0f\x41uditlogDisable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\"L\n\x0e\x41uditlogEnable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\"\xda\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\x05group\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05group\x12%\n\tprivilege\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xdd\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\x05group\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05group\x12%\n\tprivilege\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xd7\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12%\n\tprivilege\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1b\n\x04role\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xda\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12%\n\tprivilege\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1b\n\x04role\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\x9a\x02\n\x17\x41uthnPrivilegeToUserAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12%\n\tprivilege\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1b\n\x04user\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x9d\x02\n\x1a\x41uthnPrivilegeToUserDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12%\n\tprivilege\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1b\n\x04user\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x8d\x01\n\x13\x41uthnRoleToGroupAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\x05group\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05group\x12\x1b\n\x04role\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04role\"\x90\x01\n\x16\x41uthnRoleToGroupDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\x05group\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05group\x12\x1b\n\x04role\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04role\"\xcd\x01\n\x12\x41uthnRoleToUserAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1b\n\x04role\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04role\x12\x1b\n\x04user\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd0\x01\n\x15\x41uthnRoleToUserDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1b\n\x04role\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04role\x12\x1b\n\x04user\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd0\x01\n\x13\x41uthnUserToGroupAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\x05group\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05group\x12\x1b\n\x04user\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd3\x01\n\x16\x41uthnUserToGroupDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\x05group\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05group\x12\x1b\n\x04user\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xf1\x01\n\x10\x43onfigurationAdd\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12,\n\rproperty_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x18\x14R\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xb0\x02\n\x13\x43onfigurationChange\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\x12,\n\rproperty_name\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12(\n\x0bobject_type\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x18\x14R\nobjectType\x12\x1b\n\tobject_id\x18\x06 \x01(\tR\x08objectId\"\xf4\x01\n\x13\x43onfigurationDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12,\n\rproperty_name\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x18\x14R\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xd1\x01\n\x10\x43redentialCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12,\n\rcredential_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12S\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeR\x0e\x63redentialType\"\xd1\x01\n\x10\x43redentialDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12,\n\rcredential_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12S\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeR\x0e\x63redentialType\"\x9a\x02\n\x14\x43redentialExpiration\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12,\n\rcredential_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12S\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeR\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\x9a\x02\n\x14\x43redentialRevokation\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12,\n\rcredential_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12S\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeR\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\x89\x02\n\x0f\x44\x61taModelChange\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\"\n\x08model_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07modelId\x12\x33\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\x12,\n\rproperty_name\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"q\n\x0f\x44\x61taModelCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\"\n\x08model_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07modelId\"q\n\x0f\x44\x61taModelDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\"\n\x08model_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07modelId\"\x97\x03\n\nDataAccess\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12*\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12&\n\nchannel_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tchannelId\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x08 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\t \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xed\x01\n\nDataCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12(\n\x0bobject_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xed\x01\n\nDataDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12(\n\x0bobject_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xaf\x02\n\x10\x44\x61taModification\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12(\n\x0bobject_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xc8\x02\n\nDataExport\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12T\n\x0c\x63hannel_type\x18\x02 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v2.DataExportChannelTypeR\x0b\x63hannelType\x12&\n\nchannel_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tchannelId\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12\x30\n\x0f\x64\x65stination_uri\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0e\x64\x65stinationUri\"\x80\x04\n\rDppDataAccess\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12*\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12&\n\nchannel_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tchannelId\x12\x33\n\x11\x64\x61ta_subject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12/\n\x0f\x64\x61ta_subject_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12(\n\x0bobject_type\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x07 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x08 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\t \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\n \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x0b \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xd6\x02\n\rDppDataCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12/\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xd6\x02\n\rDppDataDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12/\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x98\x03\n\x13\x44ppDataModification\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12/\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12(\n\x0bobject_type\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\nobjectType\x12$\n\tobject_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08objectId\x12%\n\tattribute\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xff\x01\n\tJobChange\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1e\n\x06job_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05jobId\x12\x33\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\x12,\n\rproperty_name\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"g\n\tJobCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1e\n\x06job_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05jobId\"g\n\tJobDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1e\n\x06job_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05jobId\"\x85\x02\n\x0fJobStatusChange\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1e\n\x06job_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x05jobId\x12\x33\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\x12,\n\rproperty_name\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"\x96\x02\n\x18MaliciousRequestDetected\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12%\n\tparameter\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x03 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x04 \x01(\tR\rreceivedValue\x12I\n\x08\x62\x65havior\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.MaliciousBehaviorR\x08\x62\x65havior\"n\n\x0ePasswordChange\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\"r\n\x12PasswordExpiration\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\"m\n\rPasswordReset\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\"\x8e\x02\n\x12TenantModification\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\x12,\n\rproperty_name\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12$\n\ttenant_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08tenantId\"u\n\x11TenantOffboarding\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12$\n\ttenant_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08tenantId\"t\n\x10TenantOnboarding\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12$\n\ttenant_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x08tenantId\"T\n\x16UnauthenticatedRequest\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\"~\n\x13UnauthorizedRequest\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12+\n\x11unauthorized_type\x18\x02 \x01(\tR\x10unauthorizedType\"\xaf\x01\n\x0cUserActivate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xac\x01\n\tUserBlock\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xad\x01\n\nUserCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xcf\x02\n\x14UserDataModification\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\x12,\n\rproperty_name\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12 \n\x07user_id\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xad\x01\n\nUserDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x99\x03\n\x16UserImpersonationStart\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\x11user_initiator_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x39\n\x14user_impersonated_id\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\x9a\x03\n\x17UserImpersonationFinish\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x33\n\x11user_initiator_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x39\n\x14user_impersonated_id\x18\x04 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xab\x01\n\x08UserLock\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xad\x01\n\nUserUnlock\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xad\x01\n\nUserVerify\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12 \n\x07user_id\x18\x02 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd1\x03\n\x10UserLoginFailure\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12P\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\x0e\x32).sap.auditlog.auditevent.v2.FailureReasonR\rfailureReason\x12?\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodR\x06method\x12\x19\n\x08is_admin\x18\x04 \x01(\x08R\x07isAdmin\x12>\n\x08mfa_type\x18\x05 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeR\x07mfaType\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\x12P\n\x0elogin_protocol\x18\x07 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\xff\x02\n\x10UserLoginSuccess\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x19\n\x08is_admin\x18\x02 \x01(\x08R\x07isAdmin\x12?\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodR\x06method\x12>\n\x08mfa_type\x18\x04 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeR\x07mfaType\x12\x41\n\tuser_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\x12P\n\x0elogin_protocol\x18\x06 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\xe3\x01\n\nUserLogoff\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12G\n\x0blogoff_type\x18\x02 \x01(\x0e\x32&.sap.auditlog.auditevent.v2.LogoffTypeR\nlogoffType\x12P\n\x0elogin_protocol\x18\x03 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"|\n\x0eZzzCustomEvent\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12.\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueR\x06\x63ustom\"\x7f\n\rCMKOnboarding\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1b\n\tsystem_id\x18\x02 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x03 \x01(\tR\x05\x63mkId\"\x80\x01\n\x0e\x43MKOffboarding\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1b\n\tsystem_id\x18\x02 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x03 \x01(\tR\x05\x63mkId\"\xa0\x01\n\tCMKSwitch\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1b\n\tsystem_id\x18\x02 \x01(\tR\x08systemId\x12\x1c\n\ncmk_id_old\x18\x03 \x01(\tR\x08\x63mkIdOld\x12\x1c\n\ncmk_id_new\x18\x04 \x01(\tR\x08\x63mkIdNew\"\xcd\x01\n\x15\x43MKTenantModification\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1b\n\tsystem_id\x18\x02 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x03 \x01(\tR\x05\x63mkId\x12\x44\n\ncmk_action\x18\x04 \x01(\x0e\x32%.sap.auditlog.auditevent.v2.CMKActionR\tcmkAction\"\x82\x01\n\tCMKCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x82\x01\n\tCMKDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x83\x01\n\nCMKRestore\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x83\x01\n\nCMKDisable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x82\x01\n\tCMKEnable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"^\n\tCMKRotate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\"\xd2\x01\n\tKeyCreate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd2\x01\n\tKeyDelete\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd3\x01\n\nKeyRestore\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd1\x01\n\x08KeyPurge\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd2\x01\n\tKeyRotate\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd2\x01\n\tKeyEnable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd3\x01\n\nKeyDisable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xd3\x01\n\nKeySuspend\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\xdb\x01\n\x12KeyOnboardKeyChain\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12>\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeR\x07keyType\x12\x15\n\x06key_id\x18\x03 \x01(\tR\x05keyId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId\x12\x15\n\x06\x63mk_id\x18\x05 \x01(\tR\x05\x63mkId\"\x80\x01\n\x07\x43MKDrop\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x83\x01\n\nCMKSuspend\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\xd5\x01\n\x0cVirusFinding\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x1d\n\nvirus_name\x18\x02 \x01(\tR\tvirusName\x12\x1b\n\tfile_name\x18\x03 \x01(\tR\x08\x66ileName\x12M\n\rvirus_channel\x18\x04 \x01(\x0e\x32(.sap.auditlog.auditevent.v2.VirusChannelR\x0cvirusChannel\"\x87\x01\n\x0e\x43MKUnavailable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x85\x01\n\x0c\x43MKAvailable\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\"\x9f\x01\n\tCMKDetach\x12:\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonR\x06\x63ommon\x12\x15\n\x06\x63mk_id\x18\x02 \x01(\tR\x05\x63mkId\x12\"\n\rkms_system_id\x18\x03 \x01(\tR\x0bkmsSystemId\x12\x1b\n\tsystem_id\x18\x04 \x01(\tR\x08systemId*\x8c\x01\n\x0e\x43redentialType\x12\x1f\n\x1b\x43REDENTIAL_TYPE_UNSPECIFIED\x10\x00\x12$\n CREDENTIAL_TYPE_X509_CERTIFICATE\x10\x01\x12\x17\n\x13\x43REDENTIAL_TYPE_KEY\x10\x02\x12\x1a\n\x16\x43REDENTIAL_TYPE_SECRET\x10\x03*\x8f\x06\n\rFailureReason\x12\x1e\n\x1a\x46\x41ILURE_REASON_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46\x41ILURE_REASON_PASSWORD\x10\x01\x12\x1d\n\x19\x46\x41ILURE_REASON_MFA_FAILED\x10\x02\x12!\n\x1d\x46\x41ILURE_REASON_USER_NOT_FOUND\x10\x03\x12\x1e\n\x1a\x46\x41ILURE_REASON_USER_LOCKED\x10\x04\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_BLOCKED\x10\x05\x12\"\n\x1e\x46\x41ILURE_REASON_USER_UNVERIFIED\x10\x06\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_EXPIRED\x10\x07\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_INVALID\x10\x08\x12&\n\"FAILURE_REASON_INSECURE_CONNECTION\x10\t\x12(\n$FAILURE_REASON_LOGIN_METHOD_DISABLED\x10\n\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_EXPIRED\x10\x0b\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_REVOKED\x10\x0c\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_INVALID\x10\r\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_EXPIRED\x10\x0e\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_REVOKED\x10\x0f\x12&\n\"FAILURE_REASON_CERTIFICATE_EXPIRED\x10\x10\x12&\n\"FAILURE_REASON_CERTIFICATE_REVOKED\x10\x11\x12&\n\"FAILURE_REASON_CERTIFICATE_INVALID\x10\x12\x12\x1b\n\x17\x46\x41ILURE_REASON_GEOBLOCK\x10\x13\x12 \n\x1c\x46\x41ILURE_REASON_MFA_REQUESTED\x10\x14\x12!\n\x1d\x46\x41ILURE_REASON_CRED_REQUESTED\x10\x15*\xbf\x05\n\x0bLoginMethod\x12\x1c\n\x18LOGIN_METHOD_UNSPECIFIED\x10\x00\x12 \n\x1cLOGIN_METHOD_OPEN_ID_CONNECT\x10\x01\x12\x15\n\x11LOGIN_METHOD_SAML\x10\x02\x12\x16\n\x12LOGIN_METHOD_SAML2\x10\x03\x12\x19\n\x15LOGIN_METHOD_EXTERNAL\x10\x04\x12\x17\n\x13LOGIN_METHOD_SPNEGO\x10\x05\x12\x19\n\x15LOGIN_METHOD_PASSWORD\x10\x06\x12\x1b\n\x17LOGIN_METHOD_RFC_TICKET\x10\x07\x12\x14\n\x10LOGIN_METHOD_SNC\x10\x08\x12\x1d\n\x19LOGIN_METHOD_LOGON_TICKET\x10\t\x12\x1c\n\x18LOGIN_METHOD_USER_SWITCH\x10\n\x12!\n\x1dLOGIN_METHOD_X509_CERTIFICATE\x10\x0b\x12\x1c\n\x18LOGIN_METHOD_APC_SESSION\x10\x0c\x12\x19\n\x15LOGIN_METHOD_INTERNAL\x10\r\x12\x17\n\x13LOGIN_METHOD_OAUTH2\x10\x0e\x12\"\n\x1eLOGIN_METHOD_REENTRANCE_TICKET\x10\x0f\x12\x1d\n\x19LOGIN_METHOD_HTTP_SESSION\x10\x10\x12!\n\x1dLOGIN_METHOD_ASSERTION_TICKET\x10\x11\x12\x1a\n\x16LOGIN_METHOD_REMCOOKIE\x10\x12\x12\x1a\n\x16LOGIN_METHOD_BIOMETRIC\x10\x13\x12\x19\n\x15LOGIN_METHOD_PASSCODE\x10\x14\x12\x17\n\x13LOGIN_METHOD_MOBSSO\x10\x15\x12\x1c\n\x18LOGIN_METHOD_EMAIL_TOKEN\x10\x16\x12\x1d\n\x19LOGIN_METHOD_BEARER_TOKEN\x10\x17*Z\n\nLogoffType\x12\x1b\n\x17LOGOFF_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13LOGOFF_TYPE_REGULAR\x10\x01\x12\x16\n\x12LOGOFF_TYPE_FORCED\x10\x02*\xe8\x01\n\x11MaliciousBehavior\x12\"\n\x1eMALICIOUS_BEHAVIOR_UNSPECIFIED\x10\x00\x12%\n!MALICIOUS_BEHAVIOR_PARAMETER_SEEN\x10\x01\x12*\n&MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND\x10\x02\x12+\n\'MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN\x10\x03\x12/\n+MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED\x10\x04*\x99\x01\n\x07MfaType\x12\x18\n\x14MFA_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rMFA_TYPE_NONE\x10\x01\x12\x10\n\x0cMFA_TYPE_RSA\x10\x02\x12\x11\n\rMFA_TYPE_TOTP\x10\x03\x12\x16\n\x12MFA_TYPE_WEB_AUTHN\x10\x04\x12\x10\n\x0cMFA_TYPE_SMS\x10\x05\x12\x12\n\x0eMFA_TYPE_EMAIL\x10\x06*`\n\x08UserType\x12\x19\n\x15USER_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17USER_TYPE_BUSINESS_USER\x10\x01\x12\x1c\n\x18USER_TYPE_TECHNICAL_USER\x10\x02*\xb7\x01\n\x15\x44\x61taExportChannelType\x12(\n$DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED\x10\x00\x12%\n!DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD\x10\x01\x12\'\n#DATA_EXPORT_CHANNEL_TYPE_API_ACCESS\x10\x02\x12$\n DATA_EXPORT_CHANNEL_TYPE_PRINTER\x10\x03*\xb0\x01\n\x11\x45ventCategoryCode\x12\'\n#EVENT_CATEGORY_CODE_SEC_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_IAM\x10\x01\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_CFG\x10\x02\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_DPP\x10\x03\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_RAL\x10\x04*\xdc\x01\n\tCMKAction\x12\x1a\n\x16\x43MK_ACTION_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43MK_ACTION_ONBOARD\x10\x01\x12\x14\n\x10\x43MK_ACTION_BLOCK\x10\x02\x12\x17\n\x13\x43MK_ACTION_SHUTDOWN\x10\x03\x12\x1b\n\x17\x43MK_ACTION_CSEKFALLBACK\x10\x04\x12\x16\n\x12\x43MK_ACTION_RESTORE\x10\x05\x12\x1a\n\x16\x43MK_ACTION_KMS_ONBOARD\x10\x06\x12\x1b\n\x17\x43MK_ACTION_KMS_OFFBOARD\x10\x07*s\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fKEY_TYPE_SYSTEM\x10\x01\x12\x14\n\x10KEY_TYPE_SERVICE\x10\x02\x12\x11\n\rKEY_TYPE_DATA\x10\x03\x12\x10\n\x0cKEY_TYPE_KEK\x10\x04*_\n\x0cVirusChannel\x12\x1d\n\x19VIRUS_CHANNEL_UNSPECIFIED\x10\x00\x12\x18\n\x14VIRUS_CHANNEL_UPLOAD\x10\x01\x12\x16\n\x12VIRUS_CHANNEL_SCAN\x10\x02*{\n\rLoginProtocol\x12\x1e\n\x1aLOGIN_PROTOCOL_UNSPECIFIED\x10\x00\x12\x18\n\x14LOGIN_PROTOCOL_SAML2\x10\x01\x12\x17\n\x13LOGIN_PROTOCOL_OIDC\x10\x02\x12\x17\n\x13LOGIN_PROTOCOL_HTTP\x10\x03\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v2/auditevent.proto\x12\x1asap.auditlog.auditevent.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdf\x01\n\x0bUserContext\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x04type\x12W\n\nattributes\x18\x02 \x03(\x0b\x32\x37.sap.auditlog.auditevent.v2.UserContext.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x93\x01\n\x0cTraceContext\x12\x35\n\x08trace_id\x18\x01 \x01(\tB\x15\xbaH\x12r\x10\x32\x0e^[0-9a-f]{32}$H\x00R\x07traceId\x88\x01\x01\x12\x33\n\x07span_id\x18\x02 \x01(\tB\x15\xbaH\x12r\x10\x32\x0e^[0-9a-f]{16}$H\x01R\x06spanId\x88\x01\x01\x42\x0b\n\t_trace_idB\n\n\x08_span_id\"r\n\x07\x41iModel\x12\'\n\x0b\x61i_provider\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\naiProvider\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n\x03uid\x18\x03 \x01(\tR\x03uid\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\"\x82\x02\n\x07\x41iAgent\x12\x10\n\x03uid\x18\x01 \x01(\tR\x03uid\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12!\n\x0cinstance_uid\x18\x03 \x01(\tR\x0binstanceUid\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12@\n\x07type_id\x18\x05 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.AiAgentTypeR\x06typeId\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12>\n\x08\x61i_model\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\"\xb5\x02\n\x10\x41iMessageContext\x12\x10\n\x03uid\x18\x01 \x01(\tR\x03uid\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12@\n\nai_role_id\x18\x03 \x01(\x0e\x32\".sap.auditlog.auditevent.v2.AiRoleR\x08\x61iRoleId\x12\x1f\n\x0bprompt_text\x18\x04 \x01(\tR\npromptText\x12#\n\rresponse_text\x18\x05 \x01(\tR\x0cresponseText\x12#\n\rprompt_tokens\x18\x06 \x01(\x05R\x0cpromptTokens\x12+\n\x11\x63ompletion_tokens\x18\x07 \x01(\x05R\x10\x63ompletionTokens\x12!\n\x0ctotal_tokens\x18\x08 \x01(\x05R\x0btotalTokens\"\xd0\x01\n\x0c\x41iDelegation\x12!\n\x0c\x64\x65legator_id\x18\x01 \x01(\tR\x0b\x64\x65legatorId\x12\x1f\n\x0b\x64\x65legate_id\x18\x02 \x01(\tR\ndelegateId\x12\x16\n\x06scopes\x18\x03 \x03(\tR\x06scopes\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12)\n\x10\x64\x65legation_chain\x18\x05 \x03(\tR\x0f\x64\x65legationChain\"\xbc\x06\n\x06\x43ommon\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1b\n\tsource_ip\x18\x02 \x03(\tR\x08sourceIp\x12\x30\n\x14user_impersonated_id\x18\x03 \x01(\tR\x12userImpersonatedId\x12\x32\n\x11user_initiator_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12\x15\n\x06\x61pp_id\x18\x05 \x01(\tR\x05\x61ppId\x12\x1b\n\ttenant_id\x18\x06 \x01(\tR\x08tenantId\x12\x35\n\x17user_session_context_id\x18\x07 \x01(\tR\x14userSessionContextId\x12S\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x32.sap.auditlog.auditevent.v2.Common.AppContextEntryR\nappContext\x12$\n\x0euser_global_id\x18\t \x01(\tR\x0cuserGlobalId\x12=\n\x1buser_impersonated_global_id\x18\n \x01(\tR\x18userImpersonatedGlobalId\x12]\n\x16user_initiator_context\x18\x0b \x01(\x0b\x32\'.sap.auditlog.auditevent.v2.UserContextR\x14userInitiatorContext\x12\x63\n\x19user_impersonated_context\x18\x0c \x01(\x0b\x32\'.sap.auditlog.auditevent.v2.UserContextR\x17userImpersonatedContext\x12M\n\rtrace_context\x18\r \x01(\x0b\x32(.sap.auditlog.auditevent.v2.TraceContextR\x0ctraceContext\x1a=\n\x0f\x41ppContextEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"}\n\rAuditlogClear\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12(\n\x10number_of_events\x18\x02 \x01(\x05R\x0enumberOfEvents\"U\n\x0f\x41uditlogDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"T\n\x0e\x41uditlogEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"\xe0\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12$\n\tprivilege\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe3\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12$\n\tprivilege\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xdd\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe0\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xa0\x02\n\x17\x41uthnPrivilegeToUserAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xa3\x02\n\x1a\x41uthnPrivilegeToUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x93\x01\n\x13\x41uthnRoleToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\"\x96\x01\n\x16\x41uthnRoleToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\"\xd3\x01\n\x12\x41uthnRoleToUserAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1a\n\x04role\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd6\x01\n\x15\x41uthnRoleToUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1a\n\x04role\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd6\x01\n\x13\x41uthnUserToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd9\x01\n\x16\x41uthnUserToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xf7\x01\n\x10\x43onfigurationAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12+\n\rproperty_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xbe\x02\n\x13\x43onfigurationChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x05 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x06 \x01(\tR\x08objectId\"\xfa\x01\n\x13\x43onfigurationDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12+\n\rproperty_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe0\x01\n\x10\x43redentialCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\"\xe0\x01\n\x10\x43redentialDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\"\xa9\x02\n\x14\x43redentialExpiration\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\xa9\x02\n\x14\x43redentialRevokation\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\x9f\x02\n\x0f\x44\x61taModelChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"x\n\x0f\x44\x61taModelCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\"x\n\x0f\x44\x61taModelDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\"\x9a\x03\n\nDataAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12)\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x08 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\t \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xf2\x01\n\nDataCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xf2\x01\n\nDataDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xb4\x02\n\x10\x44\x61taModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12\x33\n\tnew_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xd4\x02\n\nDataExport\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\\\n\x0c\x63hannel_type\x18\x02 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v2.DataExportChannelTypeB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12/\n\x0f\x64\x65stination_uri\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0e\x64\x65stinationUri\"\x81\x04\n\rDppDataAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12)\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\x32\n\x11\x64\x61ta_subject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x07 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x08 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\t \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\n \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x0b \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xd9\x02\n\rDppDataCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xd9\x02\n\rDppDataDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x9b\x03\n\x13\x44ppDataModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12\x33\n\tnew_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\x95\x02\n\tJobChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"n\n\tJobCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"n\n\tJobDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"\x9b\x02\n\x0fJobStatusChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"\xa5\x02\n\x18MaliciousRequestDetected\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tparameter\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x03 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x04 \x01(\tR\rreceivedValue\x12Q\n\x08\x62\x65havior\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.MaliciousBehaviorB\x06\xbaH\x03\xc8\x01\x01R\x08\x62\x65havior\"u\n\x0ePasswordChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"y\n\x12PasswordExpiration\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"t\n\rPasswordReset\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"\xa4\x02\n\x12TenantModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12#\n\ttenant_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"|\n\x11TenantOffboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\ttenant_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"{\n\x10TenantOnboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\ttenant_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"\\\n\x16UnauthenticatedRequest\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"\x86\x01\n\x13UnauthorizedRequest\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\x11unauthorized_type\x18\x02 \x01(\tR\x10unauthorizedType\"\xb6\x01\n\x0cUserActivate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb3\x01\n\tUserBlock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xe5\x02\n\x14UserDataModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x07user_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x9f\x03\n\x16UserImpersonationStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xa0\x03\n\x17UserImpersonationFinish\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xb2\x01\n\x08UserLock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserUnlock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserVerify\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xe9\x03\n\x10UserLoginFailure\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12X\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\x0e\x32).sap.auditlog.auditevent.v2.FailureReasonB\x06\xbaH\x03\xc8\x01\x01R\rfailureReason\x12G\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodB\x06\xbaH\x03\xc8\x01\x01R\x06method\x12\x19\n\x08is_admin\x18\x04 \x01(\x08R\x07isAdmin\x12>\n\x08mfa_type\x18\x05 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeR\x07mfaType\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\x12P\n\x0elogin_protocol\x18\x07 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\x9f\x03\n\x10UserLoginSuccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x19\n\x08is_admin\x18\x02 \x01(\x08R\x07isAdmin\x12G\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodB\x06\xbaH\x03\xc8\x01\x01R\x06method\x12\x46\n\x08mfa_type\x18\x04 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeB\x06\xbaH\x03\xc8\x01\x01R\x07mfaType\x12I\n\tuser_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeB\x06\xbaH\x03\xc8\x01\x01R\x08userType\x12P\n\x0elogin_protocol\x18\x06 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\xf3\x01\n\nUserLogoff\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12O\n\x0blogoff_type\x18\x02 \x01(\x0e\x32&.sap.auditlog.auditevent.v2.LogoffTypeB\x06\xbaH\x03\xc8\x01\x01R\nlogoffType\x12P\n\x0elogin_protocol\x18\x03 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\x8c\x01\n\x0eZzzCustomEvent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x36\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ustom\"\x97\x01\n\rCMKOnboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x98\x01\n\x0e\x43MKOffboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xc0\x01\n\tCMKSwitch\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12$\n\ncmk_id_old\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x63mkIdOld\x12$\n\ncmk_id_new\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x63mkIdNew\"\xed\x01\n\x15\x43MKTenantModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12L\n\ncmk_action\x18\x04 \x01(\x0e\x32%.sap.auditlog.auditevent.v2.CMKActionB\x06\xbaH\x03\xc8\x01\x01R\tcmkAction\"\x9a\x01\n\tCMKCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9a\x01\n\tCMKDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKRestore\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9a\x01\n\tCMKEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"n\n\tCMKRotate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeyRestore\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xf9\x01\n\x08KeyPurge\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyRotate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeyDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeySuspend\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x83\x02\n\x12KeyOnboardKeyChain\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x98\x01\n\x07\x43MKDrop\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKSuspend\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\xf5\x01\n\x0cVirusFinding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nvirus_name\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tvirusName\x12#\n\tfile_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x66ileName\x12U\n\rvirus_channel\x18\x04 \x01(\x0e\x32(.sap.auditlog.auditevent.v2.VirusChannelB\x06\xbaH\x03\xc8\x01\x01R\x0cvirusChannel\"\x9f\x01\n\x0e\x43MKUnavailable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9d\x01\n\x0c\x43MKAvailable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\xbf\x01\n\tCMKDetach\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\"\xc5\x02\n\x0e\x41iSessionStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12>\n\x08\x61i_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12>\n\x08\x61i_model\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\x12H\n\ndelegation\x18\x05 \x01(\x0b\x32(.sap.auditlog.auditevent.v2.AiDelegationR\ndelegation\"\x8c\x02\n\x0c\x41iSessionEnd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12M\n\nend_reason\x18\x03 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiSessionEndReasonR\tendReason\x12!\n\x0ctotal_tokens\x18\x04 \x01(\x05R\x0btotalTokens\x12\x1f\n\x0b\x64uration_ms\x18\x05 \x01(\x03R\ndurationMs\"\x8c\x02\n\x10\x41iPromptReceived\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0fmessage_context\x18\x03 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xe4\x03\n\x14\x41iGuardrailTriggered\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12-\n\x0eguardrail_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rguardrailName\x12Z\n\x0eguardrail_type\x18\x04 \x01(\x0e\x32+.sap.auditlog.auditevent.v2.AiGuardrailTypeB\x06\xbaH\x03\xc8\x01\x01R\rguardrailType\x12X\n\x0c\x61\x63tion_taken\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.AiGuardrailActionB\x06\xbaH\x03\xc8\x01\x01R\x0b\x61\x63tionTaken\x12-\n\x12violation_category\x18\x06 \x01(\tR\x11violationCategory\x12U\n\x0fmessage_context\x18\x07 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xe1\x03\n\x11\x41iModelInvocation\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12\x46\n\x08\x61i_model\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelB\x06\xbaH\x03\xc8\x01\x01R\x07\x61iModel\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x05 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12\x1d\n\nlatency_ms\x18\x06 \x01(\x03R\tlatencyMs\x12\x46\n\x06status\x18\x07 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12#\n\rerror_message\x18\x08 \x01(\tR\x0c\x65rrorMessage\"\xda\x02\n\x0f\x41iSkillSelected\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12%\n\nskill_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tskillName\x12\x19\n\x08skill_id\x18\x04 \x01(\tR\x07skillId\x12)\n\x10\x63onfidence_score\x18\x05 \x01(\x02R\x0f\x63onfidenceScore\x12>\n\x08\x61i_agent\x18\x06 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x37\n\x17\x61lternatives_considered\x18\x07 \x03(\tR\x16\x61lternativesConsidered\"\x8a\x03\n\x10\x41iAgentDelegated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12N\n\x0csource_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0bsourceAgent\x12N\n\x0ctarget_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0btargetAgent\x12H\n\ndelegation\x18\x05 \x01(\x0b\x32(.sap.auditlog.auditevent.v2.AiDelegationR\ndelegation\x12)\n\x10task_description\x18\x06 \x01(\tR\x0ftaskDescription\"\x9c\x03\n\rAiMcpToolCall\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12#\n\ttool_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08toolName\x12\x37\n\x14target_mcp_server_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x11targetMcpServerId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12\x1d\n\nlatency_ms\x18\x07 \x01(\x03R\tlatencyMs\x12#\n\rerror_message\x18\x08 \x01(\tR\x0c\x65rrorMessage\"\x9c\x03\n\x11\x41iDirectApiAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12*\n\rtarget_api_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0btargetApiId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x1f\n\x0bhttp_method\x18\x05 \x01(\tR\nhttpMethod\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12\x30\n\x14response_status_code\x18\x07 \x01(\x05R\x12responseStatusCode\x12\x1d\n\nlatency_ms\x18\x08 \x01(\x03R\tlatencyMs\"\xa4\x03\n\x0f\x41iDataRetrieval\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12,\n\x0e\x64\x61ta_source_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x64\x61taSourceId\x12(\n\x10\x64\x61ta_source_type\x18\x04 \x01(\tR\x0e\x64\x61taSourceType\x12R\n\x0eretrieval_type\x18\x05 \x01(\x0e\x32+.sap.auditlog.auditevent.v2.AiRetrievalTypeR\rretrievalType\x12#\n\rresults_count\x18\x06 \x01(\x05R\x0cresultsCount\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x1d\n\nlatency_ms\x18\x08 \x01(\x03R\tlatencyMs\"\xee\x02\n\x13\x41iResponseGenerated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0fmessage_context\x18\x03 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12>\n\x08\x61i_model\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\x12\x1d\n\nlatency_ms\x18\x06 \x01(\x03R\tlatencyMs\"\xea\x02\n\x0e\x41iUserFeedback\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0f\x66\x65\x65\x64\x62\x61\x63k_rating\x18\x03 \x01(\x0e\x32,.sap.auditlog.auditevent.v2.AiFeedbackRatingR\x0e\x66\x65\x65\x64\x62\x61\x63kRating\x12%\n\x0e\x66\x65\x65\x64\x62\x61\x63k_score\x18\x04 \x01(\x05R\rfeedbackScore\x12+\n\x11\x66\x65\x65\x64\x62\x61\x63k_category\x18\x05 \x01(\tR\x10\x66\x65\x65\x64\x62\x61\x63kCategory\x12)\n\x10\x66\x65\x65\x64\x62\x61\x63k_comment\x18\x06 \x01(\tR\x0f\x66\x65\x65\x64\x62\x61\x63kComment\x12\x1f\n\x0bmessage_uid\x18\x07 \x01(\tR\nmessageUid\"\x88\x03\n\rAiMessageSent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12N\n\x0ctarget_agent\x18\x02 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0btargetAgent\x12\x46\n\x0csource_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x0bsourceAgent\x12\x1e\n\x0b\x61\x32\x61_task_id\x18\x04 \x01(\tR\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x05 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xb8\x02\n\rAiTaskCreated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x05 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\x8f\x03\n\rAiTaskUpdated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12U\n\x0bupdate_type\x18\x04 \x01(\x0e\x32,.sap.auditlog.auditevent.v2.AiTaskUpdateTypeB\x06\xbaH\x03\xc8\x01\x01R\nupdateType\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xe2\x01\n\x0e\x41iTaskAccessed\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xcf\x02\n\x16\x41iPushNotificationSent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12:\n\x15push_notification_url\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x13pushNotificationUrl\x12&\n\x0b\x61\x32\x61_task_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x04 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\'\n\x0fresponse_status\x18\x06 \x01(\x05R\x0eresponseStatus\"\xe3\x03\n\x1aUserImpersonationRequested\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xe2\x03\n\x19UserImpersonationDeclined\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xfc\x02\n\x14\x41iUserInputRequested\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\x16requested_from_user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x13requestedFromUserId\x12&\n\x0b\x61\x32\x61_task_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x04 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext*\xb3\x01\n\x06\x41iRole\x12\x17\n\x13\x41I_ROLE_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x41I_ROLE_USER\x10\x01\x12\x15\n\x11\x41I_ROLE_ASSISTANT\x10\x02\x12\x10\n\x0c\x41I_ROLE_TOOL\x10\x03\x12\x11\n\rAI_ROLE_AGENT\x10\x04\x12\x18\n\x14\x41I_ROLE_ORCHESTRATOR\x10\x05\x12\x15\n\x11\x41I_ROLE_RETRIEVER\x10\x06\x12\x11\n\rAI_ROLE_OTHER\x10\x63*\xc1\x01\n\x0b\x41iAgentType\x12\x1d\n\x19\x41I_AGENT_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_AGENT_TYPE_CONVERSATIONAL\x10\x01\x12\x1c\n\x18\x41I_AGENT_TYPE_AUTONOMOUS\x10\x02\x12\x1b\n\x17\x41I_AGENT_TYPE_RETRIEVAL\x10\x03\x12\x1d\n\x19\x41I_AGENT_TYPE_MULTI_AGENT\x10\x04\x12\x17\n\x13\x41I_AGENT_TYPE_OTHER\x10\x63*\x99\x02\n\x12\x41iSessionEndReason\x12%\n!AI_SESSION_END_REASON_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_SESSION_END_REASON_NORMAL\x10\x01\x12!\n\x1d\x41I_SESSION_END_REASON_TIMEOUT\x10\x02\x12)\n%AI_SESSION_END_REASON_USER_TERMINATED\x10\x03\x12\x1f\n\x1b\x41I_SESSION_END_REASON_ERROR\x10\x04\x12*\n&AI_SESSION_END_REASON_POLICY_VIOLATION\x10\x05\x12\x1f\n\x1b\x41I_SESSION_END_REASON_OTHER\x10\x63*\xc5\x02\n\x0f\x41iGuardrailType\x12!\n\x1d\x41I_GUARDRAIL_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x41I_GUARDRAIL_TYPE_INPUT\x10\x01\x12\x1c\n\x18\x41I_GUARDRAIL_TYPE_OUTPUT\x10\x02\x12$\n AI_GUARDRAIL_TYPE_CONTENT_POLICY\x10\x03\x12&\n\"AI_GUARDRAIL_TYPE_PROMPT_INJECTION\x10\x04\x12 \n\x1c\x41I_GUARDRAIL_TYPE_PII_FILTER\x10\x05\x12\"\n\x1e\x41I_GUARDRAIL_TYPE_DATA_LEAKAGE\x10\x06\x12#\n\x1f\x41I_GUARDRAIL_TYPE_HALLUCINATION\x10\x07\x12\x1b\n\x17\x41I_GUARDRAIL_TYPE_OTHER\x10\x63*\xf5\x01\n\x11\x41iGuardrailAction\x12#\n\x1f\x41I_GUARDRAIL_ACTION_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_ALLOW\x10\x01\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_BLOCK\x10\x02\x12\x1e\n\x1a\x41I_GUARDRAIL_ACTION_MODIFY\x10\x03\x12\x1c\n\x18\x41I_GUARDRAIL_ACTION_WARN\x10\x04\x12 \n\x1c\x41I_GUARDRAIL_ACTION_LOG_ONLY\x10\x05\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_OTHER\x10\x63*\xac\x02\n\x12\x41iInvocationStatus\x12$\n AI_INVOCATION_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_INVOCATION_STATUS_SUCCESS\x10\x01\x12\x1f\n\x1b\x41I_INVOCATION_STATUS_FAILED\x10\x02\x12 \n\x1c\x41I_INVOCATION_STATUS_TIMEOUT\x10\x03\x12%\n!AI_INVOCATION_STATUS_RATE_LIMITED\x10\x04\x12\"\n\x1e\x41I_INVOCATION_STATUS_CANCELLED\x10\x05\x12 \n\x1c\x41I_INVOCATION_STATUS_PENDING\x10\x06\x12\x1e\n\x1a\x41I_INVOCATION_STATUS_OTHER\x10\x63*\xae\x02\n\x0f\x41iRetrievalType\x12!\n\x1d\x41I_RETRIEVAL_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1f\x41I_RETRIEVAL_TYPE_VECTOR_SEARCH\x10\x01\x12$\n AI_RETRIEVAL_TYPE_KEYWORD_SEARCH\x10\x02\x12#\n\x1f\x41I_RETRIEVAL_TYPE_HYBRID_SEARCH\x10\x03\x12%\n!AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH\x10\x04\x12$\n AI_RETRIEVAL_TYPE_MEMORY_CONTEXT\x10\x05\x12\x1e\n\x1a\x41I_RETRIEVAL_TYPE_DOCUMENT\x10\x06\x12\x1b\n\x17\x41I_RETRIEVAL_TYPE_OTHER\x10\x63*\xd9\x01\n\x10\x41iFeedbackRating\x12\"\n\x1e\x41I_FEEDBACK_RATING_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41I_FEEDBACK_RATING_POSITIVE\x10\x01\x12\x1f\n\x1b\x41I_FEEDBACK_RATING_NEGATIVE\x10\x02\x12\x1e\n\x1a\x41I_FEEDBACK_RATING_NEUTRAL\x10\x03\x12!\n\x1d\x41I_FEEDBACK_RATING_CORRECTION\x10\x04\x12\x1c\n\x18\x41I_FEEDBACK_RATING_OTHER\x10\x63*\x86\x02\n\x15\x41iToolCallDisposition\x12(\n$AI_TOOL_CALL_DISPOSITION_UNSPECIFIED\x10\x00\x12$\n AI_TOOL_CALL_DISPOSITION_ALLOWED\x10\x01\x12#\n\x1f\x41I_TOOL_CALL_DISPOSITION_DENIED\x10\x02\x12%\n!AI_TOOL_CALL_DISPOSITION_MODIFIED\x10\x03\x12-\n)AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL\x10\x04\x12\"\n\x1e\x41I_TOOL_CALL_DISPOSITION_OTHER\x10\x63*\x8c\x01\n\x0e\x43redentialType\x12\x1f\n\x1b\x43REDENTIAL_TYPE_UNSPECIFIED\x10\x00\x12$\n CREDENTIAL_TYPE_X509_CERTIFICATE\x10\x01\x12\x17\n\x13\x43REDENTIAL_TYPE_KEY\x10\x02\x12\x1a\n\x16\x43REDENTIAL_TYPE_SECRET\x10\x03*\x8f\x06\n\rFailureReason\x12\x1e\n\x1a\x46\x41ILURE_REASON_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46\x41ILURE_REASON_PASSWORD\x10\x01\x12\x1d\n\x19\x46\x41ILURE_REASON_MFA_FAILED\x10\x02\x12!\n\x1d\x46\x41ILURE_REASON_USER_NOT_FOUND\x10\x03\x12\x1e\n\x1a\x46\x41ILURE_REASON_USER_LOCKED\x10\x04\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_BLOCKED\x10\x05\x12\"\n\x1e\x46\x41ILURE_REASON_USER_UNVERIFIED\x10\x06\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_EXPIRED\x10\x07\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_INVALID\x10\x08\x12&\n\"FAILURE_REASON_INSECURE_CONNECTION\x10\t\x12(\n$FAILURE_REASON_LOGIN_METHOD_DISABLED\x10\n\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_EXPIRED\x10\x0b\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_REVOKED\x10\x0c\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_INVALID\x10\r\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_EXPIRED\x10\x0e\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_REVOKED\x10\x0f\x12&\n\"FAILURE_REASON_CERTIFICATE_EXPIRED\x10\x10\x12&\n\"FAILURE_REASON_CERTIFICATE_REVOKED\x10\x11\x12&\n\"FAILURE_REASON_CERTIFICATE_INVALID\x10\x12\x12\x1b\n\x17\x46\x41ILURE_REASON_GEOBLOCK\x10\x13\x12 \n\x1c\x46\x41ILURE_REASON_MFA_REQUESTED\x10\x14\x12!\n\x1d\x46\x41ILURE_REASON_CRED_REQUESTED\x10\x15*\xbf\x05\n\x0bLoginMethod\x12\x1c\n\x18LOGIN_METHOD_UNSPECIFIED\x10\x00\x12 \n\x1cLOGIN_METHOD_OPEN_ID_CONNECT\x10\x01\x12\x15\n\x11LOGIN_METHOD_SAML\x10\x02\x12\x16\n\x12LOGIN_METHOD_SAML2\x10\x03\x12\x19\n\x15LOGIN_METHOD_EXTERNAL\x10\x04\x12\x17\n\x13LOGIN_METHOD_SPNEGO\x10\x05\x12\x19\n\x15LOGIN_METHOD_PASSWORD\x10\x06\x12\x1b\n\x17LOGIN_METHOD_RFC_TICKET\x10\x07\x12\x14\n\x10LOGIN_METHOD_SNC\x10\x08\x12\x1d\n\x19LOGIN_METHOD_LOGON_TICKET\x10\t\x12\x1c\n\x18LOGIN_METHOD_USER_SWITCH\x10\n\x12!\n\x1dLOGIN_METHOD_X509_CERTIFICATE\x10\x0b\x12\x1c\n\x18LOGIN_METHOD_APC_SESSION\x10\x0c\x12\x19\n\x15LOGIN_METHOD_INTERNAL\x10\r\x12\x17\n\x13LOGIN_METHOD_OAUTH2\x10\x0e\x12\"\n\x1eLOGIN_METHOD_REENTRANCE_TICKET\x10\x0f\x12\x1d\n\x19LOGIN_METHOD_HTTP_SESSION\x10\x10\x12!\n\x1dLOGIN_METHOD_ASSERTION_TICKET\x10\x11\x12\x1a\n\x16LOGIN_METHOD_REMCOOKIE\x10\x12\x12\x1a\n\x16LOGIN_METHOD_BIOMETRIC\x10\x13\x12\x19\n\x15LOGIN_METHOD_PASSCODE\x10\x14\x12\x17\n\x13LOGIN_METHOD_MOBSSO\x10\x15\x12\x1c\n\x18LOGIN_METHOD_EMAIL_TOKEN\x10\x16\x12\x1d\n\x19LOGIN_METHOD_BEARER_TOKEN\x10\x17*Z\n\nLogoffType\x12\x1b\n\x17LOGOFF_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13LOGOFF_TYPE_REGULAR\x10\x01\x12\x16\n\x12LOGOFF_TYPE_FORCED\x10\x02*\xe8\x01\n\x11MaliciousBehavior\x12\"\n\x1eMALICIOUS_BEHAVIOR_UNSPECIFIED\x10\x00\x12%\n!MALICIOUS_BEHAVIOR_PARAMETER_SEEN\x10\x01\x12*\n&MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND\x10\x02\x12+\n\'MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN\x10\x03\x12/\n+MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED\x10\x04*\x99\x01\n\x07MfaType\x12\x18\n\x14MFA_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rMFA_TYPE_NONE\x10\x01\x12\x10\n\x0cMFA_TYPE_RSA\x10\x02\x12\x11\n\rMFA_TYPE_TOTP\x10\x03\x12\x16\n\x12MFA_TYPE_WEB_AUTHN\x10\x04\x12\x10\n\x0cMFA_TYPE_SMS\x10\x05\x12\x12\n\x0eMFA_TYPE_EMAIL\x10\x06*\x98\x01\n\x08UserType\x12\x19\n\x15USER_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17USER_TYPE_BUSINESS_USER\x10\x01\x12\x1c\n\x18USER_TYPE_TECHNICAL_USER\x10\x02\x12\x1e\n\x1aUSER_TYPE_SAP_SUPPORT_USER\x10\x03\x12\x16\n\x12USER_TYPE_AI_AGENT\x10\x04*\xb7\x01\n\x15\x44\x61taExportChannelType\x12(\n$DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED\x10\x00\x12%\n!DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD\x10\x01\x12\'\n#DATA_EXPORT_CHANNEL_TYPE_API_ACCESS\x10\x02\x12$\n DATA_EXPORT_CHANNEL_TYPE_PRINTER\x10\x03*\xb0\x01\n\x11\x45ventCategoryCode\x12\'\n#EVENT_CATEGORY_CODE_SEC_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_IAM\x10\x01\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_CFG\x10\x02\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_DPP\x10\x03\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_RAL\x10\x04*\xdc\x01\n\tCMKAction\x12\x1a\n\x16\x43MK_ACTION_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43MK_ACTION_ONBOARD\x10\x01\x12\x14\n\x10\x43MK_ACTION_BLOCK\x10\x02\x12\x17\n\x13\x43MK_ACTION_SHUTDOWN\x10\x03\x12\x1b\n\x17\x43MK_ACTION_CSEKFALLBACK\x10\x04\x12\x16\n\x12\x43MK_ACTION_RESTORE\x10\x05\x12\x1a\n\x16\x43MK_ACTION_KMS_ONBOARD\x10\x06\x12\x1b\n\x17\x43MK_ACTION_KMS_OFFBOARD\x10\x07*s\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fKEY_TYPE_SYSTEM\x10\x01\x12\x14\n\x10KEY_TYPE_SERVICE\x10\x02\x12\x11\n\rKEY_TYPE_DATA\x10\x03\x12\x10\n\x0cKEY_TYPE_KEK\x10\x04*_\n\x0cVirusChannel\x12\x1d\n\x19VIRUS_CHANNEL_UNSPECIFIED\x10\x00\x12\x18\n\x14VIRUS_CHANNEL_UPLOAD\x10\x01\x12\x16\n\x12VIRUS_CHANNEL_SCAN\x10\x02*\xa1\x01\n\x10\x41iTaskUpdateType\x12#\n\x1f\x41I_TASK_UPDATE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41I_TASK_UPDATE_TYPE_STATUS\x10\x01\x12 \n\x1c\x41I_TASK_UPDATE_TYPE_ARTIFACT\x10\x02\x12&\n\"AI_TASK_UPDATE_TYPE_INPUT_REQUIRED\x10\x03*{\n\rLoginProtocol\x12\x1e\n\x1aLOGIN_PROTOCOL_UNSPECIFIED\x10\x00\x12\x18\n\x14LOGIN_PROTOCOL_SAML2\x10\x01\x12\x17\n\x13LOGIN_PROTOCOL_OIDC\x10\x02\x12\x17\n\x13LOGIN_PROTOCOL_HTTP\x10\x03\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -35,430 +35,972 @@ if not _descriptor._USE_C_DESCRIPTORS: _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' + _globals['_USERCONTEXT_ATTRIBUTESENTRY']._loaded_options = None + _globals['_USERCONTEXT_ATTRIBUTESENTRY']._serialized_options = b'8\001' + _globals['_TRACECONTEXT'].fields_by_name['trace_id']._loaded_options = None + _globals['_TRACECONTEXT'].fields_by_name['trace_id']._serialized_options = b'\272H\022r\0202\016^[0-9a-f]{32}$' + _globals['_TRACECONTEXT'].fields_by_name['span_id']._loaded_options = None + _globals['_TRACECONTEXT'].fields_by_name['span_id']._serialized_options = b'\272H\022r\0202\016^[0-9a-f]{16}$' + _globals['_AIMODEL'].fields_by_name['ai_provider']._loaded_options = None + _globals['_AIMODEL'].fields_by_name['ai_provider']._serialized_options = b'\272H\003\310\001\001' _globals['_COMMON_APPCONTEXTENTRY']._loaded_options = None _globals['_COMMON_APPCONTEXTENTRY']._serialized_options = b'8\001' + _globals['_COMMON'].fields_by_name['user_initiator_id']._loaded_options = None + _globals['_COMMON'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUDITLOGCLEAR'].fields_by_name['common']._loaded_options = None + _globals['_AUDITLOGCLEAR'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUDITLOGDISABLE'].fields_by_name['common']._loaded_options = None + _globals['_AUDITLOGDISABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUDITLOGENABLE'].fields_by_name['common']._loaded_options = None + _globals['_AUDITLOGENABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\272H\003\310\001\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['common']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\272H\003\310\001\001' _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONADD'].fields_by_name['common']._loaded_options = None + _globals['_CONFIGURATIONADD'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONADD'].fields_by_name['value']._loaded_options = None + _globals['_CONFIGURATIONADD'].fields_by_name['value']._serialized_options = b'\272H\003\310\001\001' _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._loaded_options = None - _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' - _globals['_CONFIGURATIONADD'].fields_by_name['object_type']._loaded_options = None - _globals['_CONFIGURATIONADD'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\030\024' + _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['common']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._serialized_options = b'\272H\003\310\001\001' _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' - _globals['_CONFIGURATIONCHANGE'].fields_by_name['object_type']._loaded_options = None - _globals['_CONFIGURATIONCHANGE'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\030\024' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONDELETE'].fields_by_name['common']._loaded_options = None + _globals['_CONFIGURATIONDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CONFIGURATIONDELETE'].fields_by_name['value']._loaded_options = None + _globals['_CONFIGURATIONDELETE'].fields_by_name['value']._serialized_options = b'\272H\003\310\001\001' _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._loaded_options = None - _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' - _globals['_CONFIGURATIONDELETE'].fields_by_name['object_type']._loaded_options = None - _globals['_CONFIGURATIONDELETE'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\030\024' + _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALCREATE'].fields_by_name['common']._loaded_options = None + _globals['_CREDENTIALCREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_CREDENTIALCREATE'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALCREATE'].fields_by_name['credential_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_CREDENTIALCREATE'].fields_by_name['credential_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALDELETE'].fields_by_name['common']._loaded_options = None + _globals['_CREDENTIALDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['common']._loaded_options = None + _globals['_CREDENTIALEXPIRATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['common']._loaded_options = None + _globals['_CREDENTIALREVOKATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAMODELCHANGE'].fields_by_name['common']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAMODELCREATE'].fields_by_name['common']._loaded_options = None + _globals['_DATAMODELCREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODELCREATE'].fields_by_name['model_id']._loaded_options = None - _globals['_DATAMODELCREATE'].fields_by_name['model_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODELCREATE'].fields_by_name['model_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAMODELDELETE'].fields_by_name['common']._loaded_options = None + _globals['_DATAMODELDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODELDELETE'].fields_by_name['model_id']._loaded_options = None - _globals['_DATAMODELDELETE'].fields_by_name['model_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODELDELETE'].fields_by_name['model_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAACCESS'].fields_by_name['common']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAACCESS'].fields_by_name['channel_type']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAACCESS'].fields_by_name['channel_id']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAACCESS'].fields_by_name['object_type']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAACCESS'].fields_by_name['object_id']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAACCESS'].fields_by_name['attribute']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAACCESS'].fields_by_name['attachment_type']._loaded_options = None _globals['_DATAACCESS'].fields_by_name['attachment_type']._serialized_options = b'\030\001' _globals['_DATAACCESS'].fields_by_name['attachment_id']._loaded_options = None _globals['_DATAACCESS'].fields_by_name['attachment_id']._serialized_options = b'\030\001' + _globals['_DATACREATE'].fields_by_name['common']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATACREATE'].fields_by_name['object_type']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATACREATE'].fields_by_name['object_id']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATACREATE'].fields_by_name['attribute']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATADELETE'].fields_by_name['common']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATADELETE'].fields_by_name['object_type']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATADELETE'].fields_by_name['object_id']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATADELETE'].fields_by_name['attribute']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAMODIFICATION'].fields_by_name['common']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAEXPORT'].fields_by_name['common']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_DATAEXPORT'].fields_by_name['channel_type']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['channel_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAEXPORT'].fields_by_name['channel_id']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['channel_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAEXPORT'].fields_by_name['object_type']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAEXPORT'].fields_by_name['object_id']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DATAEXPORT'].fields_by_name['destination_uri']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['destination_uri']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['destination_uri']._serialized_options = b'\272H\003\310\001\001' + _globals['_DPPDATAACCESS'].fields_by_name['common']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAACCESS'].fields_by_name['attachment_type']._loaded_options = None _globals['_DPPDATAACCESS'].fields_by_name['attachment_type']._serialized_options = b'\030\001' _globals['_DPPDATAACCESS'].fields_by_name['attachment_id']._loaded_options = None _globals['_DPPDATAACCESS'].fields_by_name['attachment_id']._serialized_options = b'\030\001' + _globals['_DPPDATACREATE'].fields_by_name['common']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATACREATE'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['data_subject_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['data_subject_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATACREATE'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATACREATE'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATACREATE'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' + _globals['_DPPDATADELETE'].fields_by_name['common']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATADELETE'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATADELETE'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATADELETE'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['common']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\003\310\001\001' _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBCHANGE'].fields_by_name['common']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_JOBCHANGE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['job_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['job_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['new_value']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['old_value']._serialized_options = b'\272H\003\310\001\001' _globals['_JOBCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBCREATE'].fields_by_name['common']._loaded_options = None + _globals['_JOBCREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_JOBCREATE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBCREATE'].fields_by_name['job_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_JOBCREATE'].fields_by_name['job_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBDELETE'].fields_by_name['common']._loaded_options = None + _globals['_JOBDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_JOBDELETE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBDELETE'].fields_by_name['job_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_JOBDELETE'].fields_by_name['job_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['common']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._serialized_options = b'\272H\003\310\001\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._serialized_options = b'\272H\003\310\001\001' _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['common']._loaded_options = None + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._loaded_options = None - _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._serialized_options = b'\272H\004r\002\020\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._serialized_options = b'\272H\003\310\001\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._loaded_options = None + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._serialized_options = b'\272H\003\310\001\001' + _globals['_PASSWORDCHANGE'].fields_by_name['common']._loaded_options = None + _globals['_PASSWORDCHANGE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._loaded_options = None - _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_PASSWORDEXPIRATION'].fields_by_name['common']._loaded_options = None + _globals['_PASSWORDEXPIRATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._loaded_options = None - _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_PASSWORDRESET'].fields_by_name['common']._loaded_options = None + _globals['_PASSWORDRESET'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_PASSWORDRESET'].fields_by_name['user_id']._loaded_options = None - _globals['_PASSWORDRESET'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_PASSWORDRESET'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_TENANTMODIFICATION'].fields_by_name['common']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\272H\003\310\001\001' + _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\272H\003\310\001\001' _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_TENANTOFFBOARDING'].fields_by_name['common']._loaded_options = None + _globals['_TENANTOFFBOARDING'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._loaded_options = None - _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_TENANTONBOARDING'].fields_by_name['common']._loaded_options = None + _globals['_TENANTONBOARDING'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._loaded_options = None - _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_UNAUTHENTICATEDREQUEST'].fields_by_name['common']._loaded_options = None + _globals['_UNAUTHENTICATEDREQUEST'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_UNAUTHORIZEDREQUEST'].fields_by_name['common']._loaded_options = None + _globals['_UNAUTHORIZEDREQUEST'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERACTIVATE'].fields_by_name['common']._loaded_options = None + _globals['_USERACTIVATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERACTIVATE'].fields_by_name['user_id']._loaded_options = None - _globals['_USERACTIVATE'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERACTIVATE'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERBLOCK'].fields_by_name['common']._loaded_options = None + _globals['_USERBLOCK'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERBLOCK'].fields_by_name['user_id']._loaded_options = None - _globals['_USERBLOCK'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERBLOCK'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERCREATE'].fields_by_name['common']._loaded_options = None + _globals['_USERCREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERCREATE'].fields_by_name['user_id']._loaded_options = None - _globals['_USERCREATE'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERCREATE'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['common']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\272H\003\310\001\001' _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\272H\003\310\001\001' _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERDELETE'].fields_by_name['common']._loaded_options = None + _globals['_USERDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERDELETE'].fields_by_name['user_id']._loaded_options = None - _globals['_USERDELETE'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERDELETE'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['common']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._loaded_options = None - _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._loaded_options = None - _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONSTART'].fields_by_name['context']._loaded_options = None _globals['_USERIMPERSONATIONSTART'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['common']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_initiator_id']._loaded_options = None - _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._loaded_options = None - _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONFINISH'].fields_by_name['context']._loaded_options = None _globals['_USERIMPERSONATIONFINISH'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERLOCK'].fields_by_name['common']._loaded_options = None + _globals['_USERLOCK'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERLOCK'].fields_by_name['user_id']._loaded_options = None - _globals['_USERLOCK'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERLOCK'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERUNLOCK'].fields_by_name['common']._loaded_options = None + _globals['_USERUNLOCK'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERUNLOCK'].fields_by_name['user_id']._loaded_options = None - _globals['_USERUNLOCK'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERUNLOCK'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERVERIFY'].fields_by_name['common']._loaded_options = None + _globals['_USERVERIFY'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERVERIFY'].fields_by_name['user_id']._loaded_options = None - _globals['_USERVERIFY'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\001' - _globals['_CREDENTIALTYPE']._serialized_start=18835 - _globals['_CREDENTIALTYPE']._serialized_end=18975 - _globals['_FAILUREREASON']._serialized_start=18978 - _globals['_FAILUREREASON']._serialized_end=19761 - _globals['_LOGINMETHOD']._serialized_start=19764 - _globals['_LOGINMETHOD']._serialized_end=20467 - _globals['_LOGOFFTYPE']._serialized_start=20469 - _globals['_LOGOFFTYPE']._serialized_end=20559 - _globals['_MALICIOUSBEHAVIOR']._serialized_start=20562 - _globals['_MALICIOUSBEHAVIOR']._serialized_end=20794 - _globals['_MFATYPE']._serialized_start=20797 - _globals['_MFATYPE']._serialized_end=20950 - _globals['_USERTYPE']._serialized_start=20952 - _globals['_USERTYPE']._serialized_end=21048 - _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=21051 - _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=21234 - _globals['_EVENTCATEGORYCODE']._serialized_start=21237 - _globals['_EVENTCATEGORYCODE']._serialized_end=21413 - _globals['_CMKACTION']._serialized_start=21416 - _globals['_CMKACTION']._serialized_end=21636 - _globals['_KEYTYPE']._serialized_start=21638 - _globals['_KEYTYPE']._serialized_end=21753 - _globals['_VIRUSCHANNEL']._serialized_start=21755 - _globals['_VIRUSCHANNEL']._serialized_end=21850 - _globals['_LOGINPROTOCOL']._serialized_start=21852 - _globals['_LOGINPROTOCOL']._serialized_end=21975 - _globals['_COMMON']._serialized_start=168 - _globals['_COMMON']._serialized_end=612 - _globals['_COMMON_APPCONTEXTENTRY']._serialized_start=551 - _globals['_COMMON_APPCONTEXTENTRY']._serialized_end=612 - _globals['_AUDITLOGCLEAR']._serialized_start=614 - _globals['_AUDITLOGCLEAR']._serialized_end=731 - _globals['_AUDITLOGDISABLE']._serialized_start=733 - _globals['_AUDITLOGDISABLE']._serialized_end=810 - _globals['_AUDITLOGENABLE']._serialized_start=812 - _globals['_AUDITLOGENABLE']._serialized_end=888 - _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=891 - _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=1109 - _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=1112 - _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=1333 - _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=1336 - _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=1551 - _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=1554 - _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=1772 - _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=1775 - _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=2057 - _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=2060 - _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=2345 - _globals['_AUTHNROLETOGROUPADD']._serialized_start=2348 - _globals['_AUTHNROLETOGROUPADD']._serialized_end=2489 - _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=2492 - _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=2636 - _globals['_AUTHNROLETOUSERADD']._serialized_start=2639 - _globals['_AUTHNROLETOUSERADD']._serialized_end=2844 - _globals['_AUTHNROLETOUSERDELETE']._serialized_start=2847 - _globals['_AUTHNROLETOUSERDELETE']._serialized_end=3055 - _globals['_AUTHNUSERTOGROUPADD']._serialized_start=3058 - _globals['_AUTHNUSERTOGROUPADD']._serialized_end=3266 - _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=3269 - _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=3480 - _globals['_CONFIGURATIONADD']._serialized_start=3483 - _globals['_CONFIGURATIONADD']._serialized_end=3724 - _globals['_CONFIGURATIONCHANGE']._serialized_start=3727 - _globals['_CONFIGURATIONCHANGE']._serialized_end=4031 - _globals['_CONFIGURATIONDELETE']._serialized_start=4034 - _globals['_CONFIGURATIONDELETE']._serialized_end=4278 - _globals['_CREDENTIALCREATE']._serialized_start=4281 - _globals['_CREDENTIALCREATE']._serialized_end=4490 - _globals['_CREDENTIALDELETE']._serialized_start=4493 - _globals['_CREDENTIALDELETE']._serialized_end=4702 - _globals['_CREDENTIALEXPIRATION']._serialized_start=4705 - _globals['_CREDENTIALEXPIRATION']._serialized_end=4987 - _globals['_CREDENTIALREVOKATION']._serialized_start=4990 - _globals['_CREDENTIALREVOKATION']._serialized_end=5272 - _globals['_DATAMODELCHANGE']._serialized_start=5275 - _globals['_DATAMODELCHANGE']._serialized_end=5540 - _globals['_DATAMODELCREATE']._serialized_start=5542 - _globals['_DATAMODELCREATE']._serialized_end=5655 - _globals['_DATAMODELDELETE']._serialized_start=5657 - _globals['_DATAMODELDELETE']._serialized_end=5770 - _globals['_DATAACCESS']._serialized_start=5773 - _globals['_DATAACCESS']._serialized_end=6180 - _globals['_DATACREATE']._serialized_start=6183 - _globals['_DATACREATE']._serialized_end=6420 - _globals['_DATADELETE']._serialized_start=6423 - _globals['_DATADELETE']._serialized_end=6660 - _globals['_DATAMODIFICATION']._serialized_start=6663 - _globals['_DATAMODIFICATION']._serialized_end=6966 - _globals['_DATAEXPORT']._serialized_start=6969 - _globals['_DATAEXPORT']._serialized_end=7297 - _globals['_DPPDATAACCESS']._serialized_start=7300 - _globals['_DPPDATAACCESS']._serialized_end=7812 - _globals['_DPPDATACREATE']._serialized_start=7815 - _globals['_DPPDATACREATE']._serialized_end=8157 - _globals['_DPPDATADELETE']._serialized_start=8160 - _globals['_DPPDATADELETE']._serialized_end=8502 - _globals['_DPPDATAMODIFICATION']._serialized_start=8505 - _globals['_DPPDATAMODIFICATION']._serialized_end=8913 - _globals['_JOBCHANGE']._serialized_start=8916 - _globals['_JOBCHANGE']._serialized_end=9171 - _globals['_JOBCREATE']._serialized_start=9173 - _globals['_JOBCREATE']._serialized_end=9276 - _globals['_JOBDELETE']._serialized_start=9278 - _globals['_JOBDELETE']._serialized_end=9381 - _globals['_JOBSTATUSCHANGE']._serialized_start=9384 - _globals['_JOBSTATUSCHANGE']._serialized_end=9645 - _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=9648 - _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=9926 - _globals['_PASSWORDCHANGE']._serialized_start=9928 - _globals['_PASSWORDCHANGE']._serialized_end=10038 - _globals['_PASSWORDEXPIRATION']._serialized_start=10040 - _globals['_PASSWORDEXPIRATION']._serialized_end=10154 - _globals['_PASSWORDRESET']._serialized_start=10156 - _globals['_PASSWORDRESET']._serialized_end=10265 - _globals['_TENANTMODIFICATION']._serialized_start=10268 - _globals['_TENANTMODIFICATION']._serialized_end=10538 - _globals['_TENANTOFFBOARDING']._serialized_start=10540 - _globals['_TENANTOFFBOARDING']._serialized_end=10657 - _globals['_TENANTONBOARDING']._serialized_start=10659 - _globals['_TENANTONBOARDING']._serialized_end=10775 - _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=10777 - _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=10861 - _globals['_UNAUTHORIZEDREQUEST']._serialized_start=10863 - _globals['_UNAUTHORIZEDREQUEST']._serialized_end=10989 - _globals['_USERACTIVATE']._serialized_start=10992 - _globals['_USERACTIVATE']._serialized_end=11167 - _globals['_USERBLOCK']._serialized_start=11170 - _globals['_USERBLOCK']._serialized_end=11342 - _globals['_USERCREATE']._serialized_start=11345 - _globals['_USERCREATE']._serialized_end=11518 - _globals['_USERDATAMODIFICATION']._serialized_start=11521 - _globals['_USERDATAMODIFICATION']._serialized_end=11856 - _globals['_USERDELETE']._serialized_start=11859 - _globals['_USERDELETE']._serialized_end=12032 - _globals['_USERIMPERSONATIONSTART']._serialized_start=12035 - _globals['_USERIMPERSONATIONSTART']._serialized_end=12444 - _globals['_USERIMPERSONATIONFINISH']._serialized_start=12447 - _globals['_USERIMPERSONATIONFINISH']._serialized_end=12857 - _globals['_USERLOCK']._serialized_start=12860 - _globals['_USERLOCK']._serialized_end=13031 - _globals['_USERUNLOCK']._serialized_start=13034 - _globals['_USERUNLOCK']._serialized_end=13207 - _globals['_USERVERIFY']._serialized_start=13210 - _globals['_USERVERIFY']._serialized_end=13383 - _globals['_USERLOGINFAILURE']._serialized_start=13386 - _globals['_USERLOGINFAILURE']._serialized_end=13851 - _globals['_USERLOGINSUCCESS']._serialized_start=13854 - _globals['_USERLOGINSUCCESS']._serialized_end=14237 - _globals['_USERLOGOFF']._serialized_start=14240 - _globals['_USERLOGOFF']._serialized_end=14467 - _globals['_ZZZCUSTOMEVENT']._serialized_start=14469 - _globals['_ZZZCUSTOMEVENT']._serialized_end=14593 - _globals['_CMKONBOARDING']._serialized_start=14595 - _globals['_CMKONBOARDING']._serialized_end=14722 - _globals['_CMKOFFBOARDING']._serialized_start=14725 - _globals['_CMKOFFBOARDING']._serialized_end=14853 - _globals['_CMKSWITCH']._serialized_start=14856 - _globals['_CMKSWITCH']._serialized_end=15016 - _globals['_CMKTENANTMODIFICATION']._serialized_start=15019 - _globals['_CMKTENANTMODIFICATION']._serialized_end=15224 - _globals['_CMKCREATE']._serialized_start=15227 - _globals['_CMKCREATE']._serialized_end=15357 - _globals['_CMKDELETE']._serialized_start=15360 - _globals['_CMKDELETE']._serialized_end=15490 - _globals['_CMKRESTORE']._serialized_start=15493 - _globals['_CMKRESTORE']._serialized_end=15624 - _globals['_CMKDISABLE']._serialized_start=15627 - _globals['_CMKDISABLE']._serialized_end=15758 - _globals['_CMKENABLE']._serialized_start=15761 - _globals['_CMKENABLE']._serialized_end=15891 - _globals['_CMKROTATE']._serialized_start=15893 - _globals['_CMKROTATE']._serialized_end=15987 - _globals['_KEYCREATE']._serialized_start=15990 - _globals['_KEYCREATE']._serialized_end=16200 - _globals['_KEYDELETE']._serialized_start=16203 - _globals['_KEYDELETE']._serialized_end=16413 - _globals['_KEYRESTORE']._serialized_start=16416 - _globals['_KEYRESTORE']._serialized_end=16627 - _globals['_KEYPURGE']._serialized_start=16630 - _globals['_KEYPURGE']._serialized_end=16839 - _globals['_KEYROTATE']._serialized_start=16842 - _globals['_KEYROTATE']._serialized_end=17052 - _globals['_KEYENABLE']._serialized_start=17055 - _globals['_KEYENABLE']._serialized_end=17265 - _globals['_KEYDISABLE']._serialized_start=17268 - _globals['_KEYDISABLE']._serialized_end=17479 - _globals['_KEYSUSPEND']._serialized_start=17482 - _globals['_KEYSUSPEND']._serialized_end=17693 - _globals['_KEYONBOARDKEYCHAIN']._serialized_start=17696 - _globals['_KEYONBOARDKEYCHAIN']._serialized_end=17915 - _globals['_CMKDROP']._serialized_start=17918 - _globals['_CMKDROP']._serialized_end=18046 - _globals['_CMKSUSPEND']._serialized_start=18049 - _globals['_CMKSUSPEND']._serialized_end=18180 - _globals['_VIRUSFINDING']._serialized_start=18183 - _globals['_VIRUSFINDING']._serialized_end=18396 - _globals['_CMKUNAVAILABLE']._serialized_start=18399 - _globals['_CMKUNAVAILABLE']._serialized_end=18534 - _globals['_CMKAVAILABLE']._serialized_start=18537 - _globals['_CMKAVAILABLE']._serialized_end=18670 - _globals['_CMKDETACH']._serialized_start=18673 - _globals['_CMKDETACH']._serialized_end=18832 + _globals['_USERVERIFY'].fields_by_name['user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINFAILURE'].fields_by_name['common']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINFAILURE'].fields_by_name['method']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['method']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['common']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['method']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['method']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGOFF'].fields_by_name['common']._loaded_options = None + _globals['_USERLOGOFF'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERLOGOFF'].fields_by_name['logoff_type']._loaded_options = None + _globals['_USERLOGOFF'].fields_by_name['logoff_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_ZZZCUSTOMEVENT'].fields_by_name['common']._loaded_options = None + _globals['_ZZZCUSTOMEVENT'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._loaded_options = None + _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKONBOARDING'].fields_by_name['common']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKONBOARDING'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKOFFBOARDING'].fields_by_name['common']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSWITCH'].fields_by_name['common']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSWITCH'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['common']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKCREATE'].fields_by_name['common']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKCREATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKCREATE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDELETE'].fields_by_name['common']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDELETE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDELETE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKRESTORE'].fields_by_name['common']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKRESTORE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDISABLE'].fields_by_name['common']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDISABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKENABLE'].fields_by_name['common']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKENABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKENABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKROTATE'].fields_by_name['common']._loaded_options = None + _globals['_CMKROTATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKROTATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKROTATE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYCREATE'].fields_by_name['common']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYCREATE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYCREATE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYCREATE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYCREATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDELETE'].fields_by_name['common']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDELETE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDELETE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDELETE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDELETE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYRESTORE'].fields_by_name['common']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYRESTORE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYRESTORE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYRESTORE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYRESTORE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYPURGE'].fields_by_name['common']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYPURGE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYPURGE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYPURGE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYPURGE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYROTATE'].fields_by_name['common']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYROTATE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYROTATE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYROTATE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYROTATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYENABLE'].fields_by_name['common']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYENABLE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYENABLE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYENABLE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYENABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDISABLE'].fields_by_name['common']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDISABLE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDISABLE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDISABLE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYDISABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYSUSPEND'].fields_by_name['common']._loaded_options = None + _globals['_KEYSUSPEND'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYSUSPEND'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYSUSPEND'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYSUSPEND'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYSUSPEND'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYSUSPEND'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYSUSPEND'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYSUSPEND'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYSUSPEND'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['common']._loaded_options = None + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['key_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['key_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYONBOARDKEYCHAIN'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDROP'].fields_by_name['common']._loaded_options = None + _globals['_CMKDROP'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDROP'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDROP'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDROP'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDROP'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSUSPEND'].fields_by_name['common']._loaded_options = None + _globals['_CMKSUSPEND'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSUSPEND'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKSUSPEND'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKSUSPEND'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKSUSPEND'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_VIRUSFINDING'].fields_by_name['common']._loaded_options = None + _globals['_VIRUSFINDING'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_VIRUSFINDING'].fields_by_name['virus_name']._loaded_options = None + _globals['_VIRUSFINDING'].fields_by_name['virus_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_VIRUSFINDING'].fields_by_name['file_name']._loaded_options = None + _globals['_VIRUSFINDING'].fields_by_name['file_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_VIRUSFINDING'].fields_by_name['virus_channel']._loaded_options = None + _globals['_VIRUSFINDING'].fields_by_name['virus_channel']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['common']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKAVAILABLE'].fields_by_name['common']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDETACH'].fields_by_name['common']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDETACH'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['cmk_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDETACH'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_CMKDETACH'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISESSIONSTART'].fields_by_name['common']._loaded_options = None + _globals['_AISESSIONSTART'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISESSIONSTART'].fields_by_name['session_id']._loaded_options = None + _globals['_AISESSIONSTART'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISESSIONEND'].fields_by_name['common']._loaded_options = None + _globals['_AISESSIONEND'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISESSIONEND'].fields_by_name['session_id']._loaded_options = None + _globals['_AISESSIONEND'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIPROMPTRECEIVED'].fields_by_name['common']._loaded_options = None + _globals['_AIPROMPTRECEIVED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['common']._loaded_options = None + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['guardrail_name']._loaded_options = None + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['guardrail_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['guardrail_type']._loaded_options = None + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['guardrail_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['action_taken']._loaded_options = None + _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['action_taken']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMODELINVOCATION'].fields_by_name['common']._loaded_options = None + _globals['_AIMODELINVOCATION'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMODELINVOCATION'].fields_by_name['ai_model']._loaded_options = None + _globals['_AIMODELINVOCATION'].fields_by_name['ai_model']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISKILLSELECTED'].fields_by_name['common']._loaded_options = None + _globals['_AISKILLSELECTED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISKILLSELECTED'].fields_by_name['skill_name']._loaded_options = None + _globals['_AISKILLSELECTED'].fields_by_name['skill_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIAGENTDELEGATED'].fields_by_name['common']._loaded_options = None + _globals['_AIAGENTDELEGATED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIAGENTDELEGATED'].fields_by_name['source_agent']._loaded_options = None + _globals['_AIAGENTDELEGATED'].fields_by_name['source_agent']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIAGENTDELEGATED'].fields_by_name['target_agent']._loaded_options = None + _globals['_AIAGENTDELEGATED'].fields_by_name['target_agent']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMCPTOOLCALL'].fields_by_name['common']._loaded_options = None + _globals['_AIMCPTOOLCALL'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMCPTOOLCALL'].fields_by_name['tool_name']._loaded_options = None + _globals['_AIMCPTOOLCALL'].fields_by_name['tool_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMCPTOOLCALL'].fields_by_name['target_mcp_server_id']._loaded_options = None + _globals['_AIMCPTOOLCALL'].fields_by_name['target_mcp_server_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIDIRECTAPIACCESS'].fields_by_name['common']._loaded_options = None + _globals['_AIDIRECTAPIACCESS'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIDIRECTAPIACCESS'].fields_by_name['target_api_id']._loaded_options = None + _globals['_AIDIRECTAPIACCESS'].fields_by_name['target_api_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIDATARETRIEVAL'].fields_by_name['common']._loaded_options = None + _globals['_AIDATARETRIEVAL'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIDATARETRIEVAL'].fields_by_name['data_source_id']._loaded_options = None + _globals['_AIDATARETRIEVAL'].fields_by_name['data_source_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIRESPONSEGENERATED'].fields_by_name['common']._loaded_options = None + _globals['_AIRESPONSEGENERATED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIUSERFEEDBACK'].fields_by_name['common']._loaded_options = None + _globals['_AIUSERFEEDBACK'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMESSAGESENT'].fields_by_name['common']._loaded_options = None + _globals['_AIMESSAGESENT'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMESSAGESENT'].fields_by_name['target_agent']._loaded_options = None + _globals['_AIMESSAGESENT'].fields_by_name['target_agent']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKCREATED'].fields_by_name['common']._loaded_options = None + _globals['_AITASKCREATED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKCREATED'].fields_by_name['a2a_task_id']._loaded_options = None + _globals['_AITASKCREATED'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKUPDATED'].fields_by_name['common']._loaded_options = None + _globals['_AITASKUPDATED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKUPDATED'].fields_by_name['a2a_task_id']._loaded_options = None + _globals['_AITASKUPDATED'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKUPDATED'].fields_by_name['update_type']._loaded_options = None + _globals['_AITASKUPDATED'].fields_by_name['update_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKACCESSED'].fields_by_name['common']._loaded_options = None + _globals['_AITASKACCESSED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITASKACCESSED'].fields_by_name['a2a_task_id']._loaded_options = None + _globals['_AITASKACCESSED'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['common']._loaded_options = None + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['push_notification_url']._loaded_options = None + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['push_notification_url']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['a2a_task_id']._loaded_options = None + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['common']._loaded_options = None + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['user_initiator_id']._loaded_options = None + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['user_impersonated_id']._loaded_options = None + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['user_impersonated_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['context']._loaded_options = None + _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['common']._loaded_options = None + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['user_initiator_id']._loaded_options = None + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['user_initiator_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['user_impersonated_id']._loaded_options = None + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['user_impersonated_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['context']._loaded_options = None + _globals['_USERIMPERSONATIONDECLINED'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\001' + _globals['_AIUSERINPUTREQUESTED'].fields_by_name['common']._loaded_options = None + _globals['_AIUSERINPUTREQUESTED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIUSERINPUTREQUESTED'].fields_by_name['requested_from_user_id']._loaded_options = None + _globals['_AIUSERINPUTREQUESTED'].fields_by_name['requested_from_user_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIUSERINPUTREQUESTED'].fields_by_name['a2a_task_id']._loaded_options = None + _globals['_AIUSERINPUTREQUESTED'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIROLE']._serialized_start=29448 + _globals['_AIROLE']._serialized_end=29627 + _globals['_AIAGENTTYPE']._serialized_start=29630 + _globals['_AIAGENTTYPE']._serialized_end=29823 + _globals['_AISESSIONENDREASON']._serialized_start=29826 + _globals['_AISESSIONENDREASON']._serialized_end=30107 + _globals['_AIGUARDRAILTYPE']._serialized_start=30110 + _globals['_AIGUARDRAILTYPE']._serialized_end=30435 + _globals['_AIGUARDRAILACTION']._serialized_start=30438 + _globals['_AIGUARDRAILACTION']._serialized_end=30683 + _globals['_AIINVOCATIONSTATUS']._serialized_start=30686 + _globals['_AIINVOCATIONSTATUS']._serialized_end=30986 + _globals['_AIRETRIEVALTYPE']._serialized_start=30989 + _globals['_AIRETRIEVALTYPE']._serialized_end=31291 + _globals['_AIFEEDBACKRATING']._serialized_start=31294 + _globals['_AIFEEDBACKRATING']._serialized_end=31511 + _globals['_AITOOLCALLDISPOSITION']._serialized_start=31514 + _globals['_AITOOLCALLDISPOSITION']._serialized_end=31776 + _globals['_CREDENTIALTYPE']._serialized_start=31779 + _globals['_CREDENTIALTYPE']._serialized_end=31919 + _globals['_FAILUREREASON']._serialized_start=31922 + _globals['_FAILUREREASON']._serialized_end=32705 + _globals['_LOGINMETHOD']._serialized_start=32708 + _globals['_LOGINMETHOD']._serialized_end=33411 + _globals['_LOGOFFTYPE']._serialized_start=33413 + _globals['_LOGOFFTYPE']._serialized_end=33503 + _globals['_MALICIOUSBEHAVIOR']._serialized_start=33506 + _globals['_MALICIOUSBEHAVIOR']._serialized_end=33738 + _globals['_MFATYPE']._serialized_start=33741 + _globals['_MFATYPE']._serialized_end=33894 + _globals['_USERTYPE']._serialized_start=33897 + _globals['_USERTYPE']._serialized_end=34049 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=34052 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=34235 + _globals['_EVENTCATEGORYCODE']._serialized_start=34238 + _globals['_EVENTCATEGORYCODE']._serialized_end=34414 + _globals['_CMKACTION']._serialized_start=34417 + _globals['_CMKACTION']._serialized_end=34637 + _globals['_KEYTYPE']._serialized_start=34639 + _globals['_KEYTYPE']._serialized_end=34754 + _globals['_VIRUSCHANNEL']._serialized_start=34756 + _globals['_VIRUSCHANNEL']._serialized_end=34851 + _globals['_AITASKUPDATETYPE']._serialized_start=34854 + _globals['_AITASKUPDATETYPE']._serialized_end=35015 + _globals['_LOGINPROTOCOL']._serialized_start=35017 + _globals['_LOGINPROTOCOL']._serialized_end=35140 + _globals['_USERCONTEXT']._serialized_start=168 + _globals['_USERCONTEXT']._serialized_end=391 + _globals['_USERCONTEXT_ATTRIBUTESENTRY']._serialized_start=330 + _globals['_USERCONTEXT_ATTRIBUTESENTRY']._serialized_end=391 + _globals['_TRACECONTEXT']._serialized_start=394 + _globals['_TRACECONTEXT']._serialized_end=541 + _globals['_AIMODEL']._serialized_start=543 + _globals['_AIMODEL']._serialized_end=657 + _globals['_AIAGENT']._serialized_start=660 + _globals['_AIAGENT']._serialized_end=918 + _globals['_AIMESSAGECONTEXT']._serialized_start=921 + _globals['_AIMESSAGECONTEXT']._serialized_end=1230 + _globals['_AIDELEGATION']._serialized_start=1233 + _globals['_AIDELEGATION']._serialized_end=1441 + _globals['_COMMON']._serialized_start=1444 + _globals['_COMMON']._serialized_end=2272 + _globals['_COMMON_APPCONTEXTENTRY']._serialized_start=2211 + _globals['_COMMON_APPCONTEXTENTRY']._serialized_end=2272 + _globals['_AUDITLOGCLEAR']._serialized_start=2274 + _globals['_AUDITLOGCLEAR']._serialized_end=2399 + _globals['_AUDITLOGDISABLE']._serialized_start=2401 + _globals['_AUDITLOGDISABLE']._serialized_end=2486 + _globals['_AUDITLOGENABLE']._serialized_start=2488 + _globals['_AUDITLOGENABLE']._serialized_end=2572 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=2575 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=2799 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=2802 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=3029 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=3032 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=3253 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=3256 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=3480 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=3483 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=3771 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=3774 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=4065 + _globals['_AUTHNROLETOGROUPADD']._serialized_start=4068 + _globals['_AUTHNROLETOGROUPADD']._serialized_end=4215 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=4218 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=4368 + _globals['_AUTHNROLETOUSERADD']._serialized_start=4371 + _globals['_AUTHNROLETOUSERADD']._serialized_end=4582 + _globals['_AUTHNROLETOUSERDELETE']._serialized_start=4585 + _globals['_AUTHNROLETOUSERDELETE']._serialized_end=4799 + _globals['_AUTHNUSERTOGROUPADD']._serialized_start=4802 + _globals['_AUTHNUSERTOGROUPADD']._serialized_end=5016 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=5019 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=5236 + _globals['_CONFIGURATIONADD']._serialized_start=5239 + _globals['_CONFIGURATIONADD']._serialized_end=5486 + _globals['_CONFIGURATIONCHANGE']._serialized_start=5489 + _globals['_CONFIGURATIONCHANGE']._serialized_end=5807 + _globals['_CONFIGURATIONDELETE']._serialized_start=5810 + _globals['_CONFIGURATIONDELETE']._serialized_end=6060 + _globals['_CREDENTIALCREATE']._serialized_start=6063 + _globals['_CREDENTIALCREATE']._serialized_end=6287 + _globals['_CREDENTIALDELETE']._serialized_start=6290 + _globals['_CREDENTIALDELETE']._serialized_end=6514 + _globals['_CREDENTIALEXPIRATION']._serialized_start=6517 + _globals['_CREDENTIALEXPIRATION']._serialized_end=6814 + _globals['_CREDENTIALREVOKATION']._serialized_start=6817 + _globals['_CREDENTIALREVOKATION']._serialized_end=7114 + _globals['_DATAMODELCHANGE']._serialized_start=7117 + _globals['_DATAMODELCHANGE']._serialized_end=7404 + _globals['_DATAMODELCREATE']._serialized_start=7406 + _globals['_DATAMODELCREATE']._serialized_end=7526 + _globals['_DATAMODELDELETE']._serialized_start=7528 + _globals['_DATAMODELDELETE']._serialized_end=7648 + _globals['_DATAACCESS']._serialized_start=7651 + _globals['_DATAACCESS']._serialized_end=8061 + _globals['_DATACREATE']._serialized_start=8064 + _globals['_DATACREATE']._serialized_end=8306 + _globals['_DATADELETE']._serialized_start=8309 + _globals['_DATADELETE']._serialized_end=8551 + _globals['_DATAMODIFICATION']._serialized_start=8554 + _globals['_DATAMODIFICATION']._serialized_end=8862 + _globals['_DATAEXPORT']._serialized_start=8865 + _globals['_DATAEXPORT']._serialized_end=9205 + _globals['_DPPDATAACCESS']._serialized_start=9208 + _globals['_DPPDATAACCESS']._serialized_end=9721 + _globals['_DPPDATACREATE']._serialized_start=9724 + _globals['_DPPDATACREATE']._serialized_end=10069 + _globals['_DPPDATADELETE']._serialized_start=10072 + _globals['_DPPDATADELETE']._serialized_end=10417 + _globals['_DPPDATAMODIFICATION']._serialized_start=10420 + _globals['_DPPDATAMODIFICATION']._serialized_end=10831 + _globals['_JOBCHANGE']._serialized_start=10834 + _globals['_JOBCHANGE']._serialized_end=11111 + _globals['_JOBCREATE']._serialized_start=11113 + _globals['_JOBCREATE']._serialized_end=11223 + _globals['_JOBDELETE']._serialized_start=11225 + _globals['_JOBDELETE']._serialized_end=11335 + _globals['_JOBSTATUSCHANGE']._serialized_start=11338 + _globals['_JOBSTATUSCHANGE']._serialized_end=11621 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=11624 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=11917 + _globals['_PASSWORDCHANGE']._serialized_start=11919 + _globals['_PASSWORDCHANGE']._serialized_end=12036 + _globals['_PASSWORDEXPIRATION']._serialized_start=12038 + _globals['_PASSWORDEXPIRATION']._serialized_end=12159 + _globals['_PASSWORDRESET']._serialized_start=12161 + _globals['_PASSWORDRESET']._serialized_end=12277 + _globals['_TENANTMODIFICATION']._serialized_start=12280 + _globals['_TENANTMODIFICATION']._serialized_end=12572 + _globals['_TENANTOFFBOARDING']._serialized_start=12574 + _globals['_TENANTOFFBOARDING']._serialized_end=12698 + _globals['_TENANTONBOARDING']._serialized_start=12700 + _globals['_TENANTONBOARDING']._serialized_end=12823 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=12825 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=12917 + _globals['_UNAUTHORIZEDREQUEST']._serialized_start=12920 + _globals['_UNAUTHORIZEDREQUEST']._serialized_end=13054 + _globals['_USERACTIVATE']._serialized_start=13057 + _globals['_USERACTIVATE']._serialized_end=13239 + _globals['_USERBLOCK']._serialized_start=13242 + _globals['_USERBLOCK']._serialized_end=13421 + _globals['_USERCREATE']._serialized_start=13424 + _globals['_USERCREATE']._serialized_end=13604 + _globals['_USERDATAMODIFICATION']._serialized_start=13607 + _globals['_USERDATAMODIFICATION']._serialized_end=13964 + _globals['_USERDELETE']._serialized_start=13967 + _globals['_USERDELETE']._serialized_end=14147 + _globals['_USERIMPERSONATIONSTART']._serialized_start=14150 + _globals['_USERIMPERSONATIONSTART']._serialized_end=14565 + _globals['_USERIMPERSONATIONFINISH']._serialized_start=14568 + _globals['_USERIMPERSONATIONFINISH']._serialized_end=14984 + _globals['_USERLOCK']._serialized_start=14987 + _globals['_USERLOCK']._serialized_end=15165 + _globals['_USERUNLOCK']._serialized_start=15168 + _globals['_USERUNLOCK']._serialized_end=15348 + _globals['_USERVERIFY']._serialized_start=15351 + _globals['_USERVERIFY']._serialized_end=15531 + _globals['_USERLOGINFAILURE']._serialized_start=15534 + _globals['_USERLOGINFAILURE']._serialized_end=16023 + _globals['_USERLOGINSUCCESS']._serialized_start=16026 + _globals['_USERLOGINSUCCESS']._serialized_end=16441 + _globals['_USERLOGOFF']._serialized_start=16444 + _globals['_USERLOGOFF']._serialized_end=16687 + _globals['_ZZZCUSTOMEVENT']._serialized_start=16690 + _globals['_ZZZCUSTOMEVENT']._serialized_end=16830 + _globals['_CMKONBOARDING']._serialized_start=16833 + _globals['_CMKONBOARDING']._serialized_end=16984 + _globals['_CMKOFFBOARDING']._serialized_start=16987 + _globals['_CMKOFFBOARDING']._serialized_end=17139 + _globals['_CMKSWITCH']._serialized_start=17142 + _globals['_CMKSWITCH']._serialized_end=17334 + _globals['_CMKTENANTMODIFICATION']._serialized_start=17337 + _globals['_CMKTENANTMODIFICATION']._serialized_end=17574 + _globals['_CMKCREATE']._serialized_start=17577 + _globals['_CMKCREATE']._serialized_end=17731 + _globals['_CMKDELETE']._serialized_start=17734 + _globals['_CMKDELETE']._serialized_end=17888 + _globals['_CMKRESTORE']._serialized_start=17891 + _globals['_CMKRESTORE']._serialized_end=18046 + _globals['_CMKDISABLE']._serialized_start=18049 + _globals['_CMKDISABLE']._serialized_end=18204 + _globals['_CMKENABLE']._serialized_start=18207 + _globals['_CMKENABLE']._serialized_end=18361 + _globals['_CMKROTATE']._serialized_start=18363 + _globals['_CMKROTATE']._serialized_end=18473 + _globals['_KEYCREATE']._serialized_start=18476 + _globals['_KEYCREATE']._serialized_end=18726 + _globals['_KEYDELETE']._serialized_start=18729 + _globals['_KEYDELETE']._serialized_end=18979 + _globals['_KEYRESTORE']._serialized_start=18982 + _globals['_KEYRESTORE']._serialized_end=19233 + _globals['_KEYPURGE']._serialized_start=19236 + _globals['_KEYPURGE']._serialized_end=19485 + _globals['_KEYROTATE']._serialized_start=19488 + _globals['_KEYROTATE']._serialized_end=19738 + _globals['_KEYENABLE']._serialized_start=19741 + _globals['_KEYENABLE']._serialized_end=19991 + _globals['_KEYDISABLE']._serialized_start=19994 + _globals['_KEYDISABLE']._serialized_end=20245 + _globals['_KEYSUSPEND']._serialized_start=20248 + _globals['_KEYSUSPEND']._serialized_end=20499 + _globals['_KEYONBOARDKEYCHAIN']._serialized_start=20502 + _globals['_KEYONBOARDKEYCHAIN']._serialized_end=20761 + _globals['_CMKDROP']._serialized_start=20764 + _globals['_CMKDROP']._serialized_end=20916 + _globals['_CMKSUSPEND']._serialized_start=20919 + _globals['_CMKSUSPEND']._serialized_end=21074 + _globals['_VIRUSFINDING']._serialized_start=21077 + _globals['_VIRUSFINDING']._serialized_end=21322 + _globals['_CMKUNAVAILABLE']._serialized_start=21325 + _globals['_CMKUNAVAILABLE']._serialized_end=21484 + _globals['_CMKAVAILABLE']._serialized_start=21487 + _globals['_CMKAVAILABLE']._serialized_end=21644 + _globals['_CMKDETACH']._serialized_start=21647 + _globals['_CMKDETACH']._serialized_end=21838 + _globals['_AISESSIONSTART']._serialized_start=21841 + _globals['_AISESSIONSTART']._serialized_end=22166 + _globals['_AISESSIONEND']._serialized_start=22169 + _globals['_AISESSIONEND']._serialized_end=22437 + _globals['_AIPROMPTRECEIVED']._serialized_start=22440 + _globals['_AIPROMPTRECEIVED']._serialized_end=22708 + _globals['_AIGUARDRAILTRIGGERED']._serialized_start=22711 + _globals['_AIGUARDRAILTRIGGERED']._serialized_end=23195 + _globals['_AIMODELINVOCATION']._serialized_start=23198 + _globals['_AIMODELINVOCATION']._serialized_end=23679 + _globals['_AISKILLSELECTED']._serialized_start=23682 + _globals['_AISKILLSELECTED']._serialized_end=24028 + _globals['_AIAGENTDELEGATED']._serialized_start=24031 + _globals['_AIAGENTDELEGATED']._serialized_end=24425 + _globals['_AIMCPTOOLCALL']._serialized_start=24428 + _globals['_AIMCPTOOLCALL']._serialized_end=24840 + _globals['_AIDIRECTAPIACCESS']._serialized_start=24843 + _globals['_AIDIRECTAPIACCESS']._serialized_end=25255 + _globals['_AIDATARETRIEVAL']._serialized_start=25258 + _globals['_AIDATARETRIEVAL']._serialized_end=25678 + _globals['_AIRESPONSEGENERATED']._serialized_start=25681 + _globals['_AIRESPONSEGENERATED']._serialized_end=26047 + _globals['_AIUSERFEEDBACK']._serialized_start=26050 + _globals['_AIUSERFEEDBACK']._serialized_end=26412 + _globals['_AIMESSAGESENT']._serialized_start=26415 + _globals['_AIMESSAGESENT']._serialized_end=26807 + _globals['_AITASKCREATED']._serialized_start=26810 + _globals['_AITASKCREATED']._serialized_end=27122 + _globals['_AITASKUPDATED']._serialized_start=27125 + _globals['_AITASKUPDATED']._serialized_end=27524 + _globals['_AITASKACCESSED']._serialized_start=27527 + _globals['_AITASKACCESSED']._serialized_end=27753 + _globals['_AIPUSHNOTIFICATIONSENT']._serialized_start=27756 + _globals['_AIPUSHNOTIFICATIONSENT']._serialized_end=28091 + _globals['_USERIMPERSONATIONREQUESTED']._serialized_start=28094 + _globals['_USERIMPERSONATIONREQUESTED']._serialized_end=28577 + _globals['_USERIMPERSONATIONDECLINED']._serialized_start=28580 + _globals['_USERIMPERSONATIONDECLINED']._serialized_end=29062 + _globals['_AIUSERINPUTREQUESTED']._serialized_start=29065 + _globals['_AIUSERINPUTREQUESTED']._serialized_end=29445 # @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi index 1e2322a0..89203980 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi @@ -12,6 +12,98 @@ from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union DESCRIPTOR: _descriptor.FileDescriptor +class AiRole(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_ROLE_UNSPECIFIED: _ClassVar[AiRole] + AI_ROLE_USER: _ClassVar[AiRole] + AI_ROLE_ASSISTANT: _ClassVar[AiRole] + AI_ROLE_TOOL: _ClassVar[AiRole] + AI_ROLE_AGENT: _ClassVar[AiRole] + AI_ROLE_ORCHESTRATOR: _ClassVar[AiRole] + AI_ROLE_RETRIEVER: _ClassVar[AiRole] + AI_ROLE_OTHER: _ClassVar[AiRole] + +class AiAgentType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_AGENT_TYPE_UNSPECIFIED: _ClassVar[AiAgentType] + AI_AGENT_TYPE_CONVERSATIONAL: _ClassVar[AiAgentType] + AI_AGENT_TYPE_AUTONOMOUS: _ClassVar[AiAgentType] + AI_AGENT_TYPE_RETRIEVAL: _ClassVar[AiAgentType] + AI_AGENT_TYPE_MULTI_AGENT: _ClassVar[AiAgentType] + AI_AGENT_TYPE_OTHER: _ClassVar[AiAgentType] + +class AiSessionEndReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_SESSION_END_REASON_UNSPECIFIED: _ClassVar[AiSessionEndReason] + AI_SESSION_END_REASON_NORMAL: _ClassVar[AiSessionEndReason] + AI_SESSION_END_REASON_TIMEOUT: _ClassVar[AiSessionEndReason] + AI_SESSION_END_REASON_USER_TERMINATED: _ClassVar[AiSessionEndReason] + AI_SESSION_END_REASON_ERROR: _ClassVar[AiSessionEndReason] + AI_SESSION_END_REASON_POLICY_VIOLATION: _ClassVar[AiSessionEndReason] + AI_SESSION_END_REASON_OTHER: _ClassVar[AiSessionEndReason] + +class AiGuardrailType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_GUARDRAIL_TYPE_UNSPECIFIED: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_INPUT: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_OUTPUT: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_CONTENT_POLICY: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_PROMPT_INJECTION: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_PII_FILTER: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_DATA_LEAKAGE: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_HALLUCINATION: _ClassVar[AiGuardrailType] + AI_GUARDRAIL_TYPE_OTHER: _ClassVar[AiGuardrailType] + +class AiGuardrailAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_GUARDRAIL_ACTION_UNSPECIFIED: _ClassVar[AiGuardrailAction] + AI_GUARDRAIL_ACTION_ALLOW: _ClassVar[AiGuardrailAction] + AI_GUARDRAIL_ACTION_BLOCK: _ClassVar[AiGuardrailAction] + AI_GUARDRAIL_ACTION_MODIFY: _ClassVar[AiGuardrailAction] + AI_GUARDRAIL_ACTION_WARN: _ClassVar[AiGuardrailAction] + AI_GUARDRAIL_ACTION_LOG_ONLY: _ClassVar[AiGuardrailAction] + AI_GUARDRAIL_ACTION_OTHER: _ClassVar[AiGuardrailAction] + +class AiInvocationStatus(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_INVOCATION_STATUS_UNSPECIFIED: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_SUCCESS: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_FAILED: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_TIMEOUT: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_RATE_LIMITED: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_CANCELLED: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_PENDING: _ClassVar[AiInvocationStatus] + AI_INVOCATION_STATUS_OTHER: _ClassVar[AiInvocationStatus] + +class AiRetrievalType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_RETRIEVAL_TYPE_UNSPECIFIED: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_VECTOR_SEARCH: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_KEYWORD_SEARCH: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_HYBRID_SEARCH: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_MEMORY_CONTEXT: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_DOCUMENT: _ClassVar[AiRetrievalType] + AI_RETRIEVAL_TYPE_OTHER: _ClassVar[AiRetrievalType] + +class AiFeedbackRating(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_FEEDBACK_RATING_UNSPECIFIED: _ClassVar[AiFeedbackRating] + AI_FEEDBACK_RATING_POSITIVE: _ClassVar[AiFeedbackRating] + AI_FEEDBACK_RATING_NEGATIVE: _ClassVar[AiFeedbackRating] + AI_FEEDBACK_RATING_NEUTRAL: _ClassVar[AiFeedbackRating] + AI_FEEDBACK_RATING_CORRECTION: _ClassVar[AiFeedbackRating] + AI_FEEDBACK_RATING_OTHER: _ClassVar[AiFeedbackRating] + +class AiToolCallDisposition(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_TOOL_CALL_DISPOSITION_UNSPECIFIED: _ClassVar[AiToolCallDisposition] + AI_TOOL_CALL_DISPOSITION_ALLOWED: _ClassVar[AiToolCallDisposition] + AI_TOOL_CALL_DISPOSITION_DENIED: _ClassVar[AiToolCallDisposition] + AI_TOOL_CALL_DISPOSITION_MODIFIED: _ClassVar[AiToolCallDisposition] + AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL: _ClassVar[AiToolCallDisposition] + AI_TOOL_CALL_DISPOSITION_OTHER: _ClassVar[AiToolCallDisposition] + class CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] @@ -100,6 +192,8 @@ class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): USER_TYPE_UNSPECIFIED: _ClassVar[UserType] USER_TYPE_BUSINESS_USER: _ClassVar[UserType] USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] + USER_TYPE_SAP_SUPPORT_USER: _ClassVar[UserType] + USER_TYPE_AI_AGENT: _ClassVar[UserType] class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () @@ -141,12 +235,84 @@ class VirusChannel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): VIRUS_CHANNEL_UPLOAD: _ClassVar[VirusChannel] VIRUS_CHANNEL_SCAN: _ClassVar[VirusChannel] +class AiTaskUpdateType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_TASK_UPDATE_TYPE_UNSPECIFIED: _ClassVar[AiTaskUpdateType] + AI_TASK_UPDATE_TYPE_STATUS: _ClassVar[AiTaskUpdateType] + AI_TASK_UPDATE_TYPE_ARTIFACT: _ClassVar[AiTaskUpdateType] + AI_TASK_UPDATE_TYPE_INPUT_REQUIRED: _ClassVar[AiTaskUpdateType] + class LoginProtocol(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () LOGIN_PROTOCOL_UNSPECIFIED: _ClassVar[LoginProtocol] LOGIN_PROTOCOL_SAML2: _ClassVar[LoginProtocol] LOGIN_PROTOCOL_OIDC: _ClassVar[LoginProtocol] LOGIN_PROTOCOL_HTTP: _ClassVar[LoginProtocol] +AI_ROLE_UNSPECIFIED: AiRole +AI_ROLE_USER: AiRole +AI_ROLE_ASSISTANT: AiRole +AI_ROLE_TOOL: AiRole +AI_ROLE_AGENT: AiRole +AI_ROLE_ORCHESTRATOR: AiRole +AI_ROLE_RETRIEVER: AiRole +AI_ROLE_OTHER: AiRole +AI_AGENT_TYPE_UNSPECIFIED: AiAgentType +AI_AGENT_TYPE_CONVERSATIONAL: AiAgentType +AI_AGENT_TYPE_AUTONOMOUS: AiAgentType +AI_AGENT_TYPE_RETRIEVAL: AiAgentType +AI_AGENT_TYPE_MULTI_AGENT: AiAgentType +AI_AGENT_TYPE_OTHER: AiAgentType +AI_SESSION_END_REASON_UNSPECIFIED: AiSessionEndReason +AI_SESSION_END_REASON_NORMAL: AiSessionEndReason +AI_SESSION_END_REASON_TIMEOUT: AiSessionEndReason +AI_SESSION_END_REASON_USER_TERMINATED: AiSessionEndReason +AI_SESSION_END_REASON_ERROR: AiSessionEndReason +AI_SESSION_END_REASON_POLICY_VIOLATION: AiSessionEndReason +AI_SESSION_END_REASON_OTHER: AiSessionEndReason +AI_GUARDRAIL_TYPE_UNSPECIFIED: AiGuardrailType +AI_GUARDRAIL_TYPE_INPUT: AiGuardrailType +AI_GUARDRAIL_TYPE_OUTPUT: AiGuardrailType +AI_GUARDRAIL_TYPE_CONTENT_POLICY: AiGuardrailType +AI_GUARDRAIL_TYPE_PROMPT_INJECTION: AiGuardrailType +AI_GUARDRAIL_TYPE_PII_FILTER: AiGuardrailType +AI_GUARDRAIL_TYPE_DATA_LEAKAGE: AiGuardrailType +AI_GUARDRAIL_TYPE_HALLUCINATION: AiGuardrailType +AI_GUARDRAIL_TYPE_OTHER: AiGuardrailType +AI_GUARDRAIL_ACTION_UNSPECIFIED: AiGuardrailAction +AI_GUARDRAIL_ACTION_ALLOW: AiGuardrailAction +AI_GUARDRAIL_ACTION_BLOCK: AiGuardrailAction +AI_GUARDRAIL_ACTION_MODIFY: AiGuardrailAction +AI_GUARDRAIL_ACTION_WARN: AiGuardrailAction +AI_GUARDRAIL_ACTION_LOG_ONLY: AiGuardrailAction +AI_GUARDRAIL_ACTION_OTHER: AiGuardrailAction +AI_INVOCATION_STATUS_UNSPECIFIED: AiInvocationStatus +AI_INVOCATION_STATUS_SUCCESS: AiInvocationStatus +AI_INVOCATION_STATUS_FAILED: AiInvocationStatus +AI_INVOCATION_STATUS_TIMEOUT: AiInvocationStatus +AI_INVOCATION_STATUS_RATE_LIMITED: AiInvocationStatus +AI_INVOCATION_STATUS_CANCELLED: AiInvocationStatus +AI_INVOCATION_STATUS_PENDING: AiInvocationStatus +AI_INVOCATION_STATUS_OTHER: AiInvocationStatus +AI_RETRIEVAL_TYPE_UNSPECIFIED: AiRetrievalType +AI_RETRIEVAL_TYPE_VECTOR_SEARCH: AiRetrievalType +AI_RETRIEVAL_TYPE_KEYWORD_SEARCH: AiRetrievalType +AI_RETRIEVAL_TYPE_HYBRID_SEARCH: AiRetrievalType +AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH: AiRetrievalType +AI_RETRIEVAL_TYPE_MEMORY_CONTEXT: AiRetrievalType +AI_RETRIEVAL_TYPE_DOCUMENT: AiRetrievalType +AI_RETRIEVAL_TYPE_OTHER: AiRetrievalType +AI_FEEDBACK_RATING_UNSPECIFIED: AiFeedbackRating +AI_FEEDBACK_RATING_POSITIVE: AiFeedbackRating +AI_FEEDBACK_RATING_NEGATIVE: AiFeedbackRating +AI_FEEDBACK_RATING_NEUTRAL: AiFeedbackRating +AI_FEEDBACK_RATING_CORRECTION: AiFeedbackRating +AI_FEEDBACK_RATING_OTHER: AiFeedbackRating +AI_TOOL_CALL_DISPOSITION_UNSPECIFIED: AiToolCallDisposition +AI_TOOL_CALL_DISPOSITION_ALLOWED: AiToolCallDisposition +AI_TOOL_CALL_DISPOSITION_DENIED: AiToolCallDisposition +AI_TOOL_CALL_DISPOSITION_MODIFIED: AiToolCallDisposition +AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL: AiToolCallDisposition +AI_TOOL_CALL_DISPOSITION_OTHER: AiToolCallDisposition CREDENTIAL_TYPE_UNSPECIFIED: CredentialType CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType CREDENTIAL_TYPE_KEY: CredentialType @@ -215,6 +381,8 @@ MFA_TYPE_EMAIL: MfaType USER_TYPE_UNSPECIFIED: UserType USER_TYPE_BUSINESS_USER: UserType USER_TYPE_TECHNICAL_USER: UserType +USER_TYPE_SAP_SUPPORT_USER: UserType +USER_TYPE_AI_AGENT: UserType DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType @@ -240,13 +408,104 @@ KEY_TYPE_KEK: KeyType VIRUS_CHANNEL_UNSPECIFIED: VirusChannel VIRUS_CHANNEL_UPLOAD: VirusChannel VIRUS_CHANNEL_SCAN: VirusChannel +AI_TASK_UPDATE_TYPE_UNSPECIFIED: AiTaskUpdateType +AI_TASK_UPDATE_TYPE_STATUS: AiTaskUpdateType +AI_TASK_UPDATE_TYPE_ARTIFACT: AiTaskUpdateType +AI_TASK_UPDATE_TYPE_INPUT_REQUIRED: AiTaskUpdateType LOGIN_PROTOCOL_UNSPECIFIED: LoginProtocol LOGIN_PROTOCOL_SAML2: LoginProtocol LOGIN_PROTOCOL_OIDC: LoginProtocol LOGIN_PROTOCOL_HTTP: LoginProtocol +class UserContext(_message.Message): + __slots__ = ("type", "attributes") + class AttributesEntry(_message.Message): + __slots__ = ("key", "value") + KEY_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + key: str + value: str + def __init__(self, key: _Optional[str] = ..., value: _Optional[str] = ...) -> None: ... + TYPE_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTES_FIELD_NUMBER: _ClassVar[int] + type: UserType + attributes: _containers.ScalarMap[str, str] + def __init__(self, type: _Optional[_Union[UserType, str]] = ..., attributes: _Optional[_Mapping[str, str]] = ...) -> None: ... + +class TraceContext(_message.Message): + __slots__ = ("trace_id", "span_id") + TRACE_ID_FIELD_NUMBER: _ClassVar[int] + SPAN_ID_FIELD_NUMBER: _ClassVar[int] + trace_id: str + span_id: str + def __init__(self, trace_id: _Optional[str] = ..., span_id: _Optional[str] = ...) -> None: ... + +class AiModel(_message.Message): + __slots__ = ("ai_provider", "name", "uid", "version") + AI_PROVIDER_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + UID_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + ai_provider: str + name: str + uid: str + version: str + def __init__(self, ai_provider: _Optional[str] = ..., name: _Optional[str] = ..., uid: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + +class AiAgent(_message.Message): + __slots__ = ("uid", "name", "instance_uid", "type", "type_id", "version", "ai_model") + UID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + INSTANCE_UID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_ID_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + AI_MODEL_FIELD_NUMBER: _ClassVar[int] + uid: str + name: str + instance_uid: str + type: str + type_id: AiAgentType + version: str + ai_model: AiModel + def __init__(self, uid: _Optional[str] = ..., name: _Optional[str] = ..., instance_uid: _Optional[str] = ..., type: _Optional[str] = ..., type_id: _Optional[_Union[AiAgentType, str]] = ..., version: _Optional[str] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ...) -> None: ... + +class AiMessageContext(_message.Message): + __slots__ = ("uid", "name", "ai_role_id", "prompt_text", "response_text", "prompt_tokens", "completion_tokens", "total_tokens") + UID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + AI_ROLE_ID_FIELD_NUMBER: _ClassVar[int] + PROMPT_TEXT_FIELD_NUMBER: _ClassVar[int] + RESPONSE_TEXT_FIELD_NUMBER: _ClassVar[int] + PROMPT_TOKENS_FIELD_NUMBER: _ClassVar[int] + COMPLETION_TOKENS_FIELD_NUMBER: _ClassVar[int] + TOTAL_TOKENS_FIELD_NUMBER: _ClassVar[int] + uid: str + name: str + ai_role_id: AiRole + prompt_text: str + response_text: str + prompt_tokens: int + completion_tokens: int + total_tokens: int + def __init__(self, uid: _Optional[str] = ..., name: _Optional[str] = ..., ai_role_id: _Optional[_Union[AiRole, str]] = ..., prompt_text: _Optional[str] = ..., response_text: _Optional[str] = ..., prompt_tokens: _Optional[int] = ..., completion_tokens: _Optional[int] = ..., total_tokens: _Optional[int] = ...) -> None: ... + +class AiDelegation(_message.Message): + __slots__ = ("delegator_id", "delegate_id", "scopes", "expires_at", "delegation_chain") + DELEGATOR_ID_FIELD_NUMBER: _ClassVar[int] + DELEGATE_ID_FIELD_NUMBER: _ClassVar[int] + SCOPES_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + DELEGATION_CHAIN_FIELD_NUMBER: _ClassVar[int] + delegator_id: str + delegate_id: str + scopes: _containers.RepeatedScalarFieldContainer[str] + expires_at: _timestamp_pb2.Timestamp + delegation_chain: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, delegator_id: _Optional[str] = ..., delegate_id: _Optional[str] = ..., scopes: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., delegation_chain: _Optional[_Iterable[str]] = ...) -> None: ... + class Common(_message.Message): - __slots__ = ("timestamp", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context") + __slots__ = ("timestamp", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context", "user_global_id", "user_impersonated_global_id", "user_initiator_context", "user_impersonated_context", "trace_context") class AppContextEntry(_message.Message): __slots__ = ("key", "value") KEY_FIELD_NUMBER: _ClassVar[int] @@ -262,6 +521,11 @@ class Common(_message.Message): TENANT_ID_FIELD_NUMBER: _ClassVar[int] USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] + USER_GLOBAL_ID_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_GLOBAL_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_CONTEXT_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_CONTEXT_FIELD_NUMBER: _ClassVar[int] + TRACE_CONTEXT_FIELD_NUMBER: _ClassVar[int] timestamp: _timestamp_pb2.Timestamp source_ip: _containers.RepeatedScalarFieldContainer[str] user_impersonated_id: str @@ -270,7 +534,12 @@ class Common(_message.Message): tenant_id: str user_session_context_id: str app_context: _containers.ScalarMap[str, str] - def __init__(self, timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., source_ip: _Optional[_Iterable[str]] = ..., user_impersonated_id: _Optional[str] = ..., user_initiator_id: _Optional[str] = ..., app_id: _Optional[str] = ..., tenant_id: _Optional[str] = ..., user_session_context_id: _Optional[str] = ..., app_context: _Optional[_Mapping[str, str]] = ...) -> None: ... + user_global_id: str + user_impersonated_global_id: str + user_initiator_context: UserContext + user_impersonated_context: UserContext + trace_context: TraceContext + def __init__(self, timestamp: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., source_ip: _Optional[_Iterable[str]] = ..., user_impersonated_id: _Optional[str] = ..., user_initiator_id: _Optional[str] = ..., app_id: _Optional[str] = ..., tenant_id: _Optional[str] = ..., user_session_context_id: _Optional[str] = ..., app_context: _Optional[_Mapping[str, str]] = ..., user_global_id: _Optional[str] = ..., user_impersonated_global_id: _Optional[str] = ..., user_initiator_context: _Optional[_Union[UserContext, _Mapping]] = ..., user_impersonated_context: _Optional[_Union[UserContext, _Mapping]] = ..., trace_context: _Optional[_Union[TraceContext, _Mapping]] = ...) -> None: ... class AuditlogClear(_message.Message): __slots__ = ("common", "number_of_events") @@ -1317,3 +1586,335 @@ class CMKDetach(_message.Message): kms_system_id: str system_id: str def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ..., system_id: _Optional[str] = ...) -> None: ... + +class AiSessionStart(_message.Message): + __slots__ = ("common", "session_id", "ai_agent", "ai_model", "delegation") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + AI_MODEL_FIELD_NUMBER: _ClassVar[int] + DELEGATION_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + ai_agent: AiAgent + ai_model: AiModel + delegation: AiDelegation + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., delegation: _Optional[_Union[AiDelegation, _Mapping]] = ...) -> None: ... + +class AiSessionEnd(_message.Message): + __slots__ = ("common", "session_id", "end_reason", "total_tokens", "duration_ms") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + END_REASON_FIELD_NUMBER: _ClassVar[int] + TOTAL_TOKENS_FIELD_NUMBER: _ClassVar[int] + DURATION_MS_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + end_reason: AiSessionEndReason + total_tokens: int + duration_ms: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., end_reason: _Optional[_Union[AiSessionEndReason, str]] = ..., total_tokens: _Optional[int] = ..., duration_ms: _Optional[int] = ...) -> None: ... + +class AiPromptReceived(_message.Message): + __slots__ = ("common", "session_id", "message_context", "ai_agent") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + message_context: AiMessageContext + ai_agent: AiAgent + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ...) -> None: ... + +class AiGuardrailTriggered(_message.Message): + __slots__ = ("common", "session_id", "guardrail_name", "guardrail_type", "action_taken", "violation_category", "message_context") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + GUARDRAIL_NAME_FIELD_NUMBER: _ClassVar[int] + GUARDRAIL_TYPE_FIELD_NUMBER: _ClassVar[int] + ACTION_TAKEN_FIELD_NUMBER: _ClassVar[int] + VIOLATION_CATEGORY_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + guardrail_name: str + guardrail_type: AiGuardrailType + action_taken: AiGuardrailAction + violation_category: str + message_context: AiMessageContext + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., guardrail_name: _Optional[str] = ..., guardrail_type: _Optional[_Union[AiGuardrailType, str]] = ..., action_taken: _Optional[_Union[AiGuardrailAction, str]] = ..., violation_category: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... + +class AiModelInvocation(_message.Message): + __slots__ = ("common", "session_id", "ai_model", "ai_agent", "message_context", "latency_ms", "status", "error_message") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + AI_MODEL_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + ai_model: AiModel + ai_agent: AiAgent + message_context: AiMessageContext + latency_ms: int + status: AiInvocationStatus + error_message: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., latency_ms: _Optional[int] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., error_message: _Optional[str] = ...) -> None: ... + +class AiSkillSelected(_message.Message): + __slots__ = ("common", "session_id", "skill_name", "skill_id", "confidence_score", "ai_agent", "alternatives_considered") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + SKILL_NAME_FIELD_NUMBER: _ClassVar[int] + SKILL_ID_FIELD_NUMBER: _ClassVar[int] + CONFIDENCE_SCORE_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + ALTERNATIVES_CONSIDERED_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + skill_name: str + skill_id: str + confidence_score: float + ai_agent: AiAgent + alternatives_considered: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., skill_name: _Optional[str] = ..., skill_id: _Optional[str] = ..., confidence_score: _Optional[float] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., alternatives_considered: _Optional[_Iterable[str]] = ...) -> None: ... + +class AiAgentDelegated(_message.Message): + __slots__ = ("common", "session_id", "source_agent", "target_agent", "delegation", "task_description") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + SOURCE_AGENT_FIELD_NUMBER: _ClassVar[int] + TARGET_AGENT_FIELD_NUMBER: _ClassVar[int] + DELEGATION_FIELD_NUMBER: _ClassVar[int] + TASK_DESCRIPTION_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + source_agent: AiAgent + target_agent: AiAgent + delegation: AiDelegation + task_description: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., source_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., target_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., delegation: _Optional[_Union[AiDelegation, _Mapping]] = ..., task_description: _Optional[str] = ...) -> None: ... + +class AiMcpToolCall(_message.Message): + __slots__ = ("common", "session_id", "tool_name", "target_mcp_server_id", "ai_agent", "status", "latency_ms", "error_message") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + TOOL_NAME_FIELD_NUMBER: _ClassVar[int] + TARGET_MCP_SERVER_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + tool_name: str + target_mcp_server_id: str + ai_agent: AiAgent + status: AiInvocationStatus + latency_ms: int + error_message: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., tool_name: _Optional[str] = ..., target_mcp_server_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., latency_ms: _Optional[int] = ..., error_message: _Optional[str] = ...) -> None: ... + +class AiDirectApiAccess(_message.Message): + __slots__ = ("common", "session_id", "target_api_id", "ai_agent", "http_method", "status", "response_status_code", "latency_ms") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + TARGET_API_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + HTTP_METHOD_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + RESPONSE_STATUS_CODE_FIELD_NUMBER: _ClassVar[int] + LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + target_api_id: str + ai_agent: AiAgent + http_method: str + status: AiInvocationStatus + response_status_code: int + latency_ms: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., target_api_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., http_method: _Optional[str] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., response_status_code: _Optional[int] = ..., latency_ms: _Optional[int] = ...) -> None: ... + +class AiDataRetrieval(_message.Message): + __slots__ = ("common", "session_id", "data_source_id", "data_source_type", "retrieval_type", "results_count", "ai_agent", "latency_ms") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + DATA_SOURCE_ID_FIELD_NUMBER: _ClassVar[int] + DATA_SOURCE_TYPE_FIELD_NUMBER: _ClassVar[int] + RETRIEVAL_TYPE_FIELD_NUMBER: _ClassVar[int] + RESULTS_COUNT_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + data_source_id: str + data_source_type: str + retrieval_type: AiRetrievalType + results_count: int + ai_agent: AiAgent + latency_ms: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., data_source_id: _Optional[str] = ..., data_source_type: _Optional[str] = ..., retrieval_type: _Optional[_Union[AiRetrievalType, str]] = ..., results_count: _Optional[int] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., latency_ms: _Optional[int] = ...) -> None: ... + +class AiResponseGenerated(_message.Message): + __slots__ = ("common", "session_id", "message_context", "ai_agent", "ai_model", "latency_ms") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + AI_MODEL_FIELD_NUMBER: _ClassVar[int] + LATENCY_MS_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + message_context: AiMessageContext + ai_agent: AiAgent + ai_model: AiModel + latency_ms: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., latency_ms: _Optional[int] = ...) -> None: ... + +class AiUserFeedback(_message.Message): + __slots__ = ("common", "session_id", "feedback_rating", "feedback_score", "feedback_category", "feedback_comment", "message_uid") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + FEEDBACK_RATING_FIELD_NUMBER: _ClassVar[int] + FEEDBACK_SCORE_FIELD_NUMBER: _ClassVar[int] + FEEDBACK_CATEGORY_FIELD_NUMBER: _ClassVar[int] + FEEDBACK_COMMENT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_UID_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + feedback_rating: AiFeedbackRating + feedback_score: int + feedback_category: str + feedback_comment: str + message_uid: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., feedback_rating: _Optional[_Union[AiFeedbackRating, str]] = ..., feedback_score: _Optional[int] = ..., feedback_category: _Optional[str] = ..., feedback_comment: _Optional[str] = ..., message_uid: _Optional[str] = ...) -> None: ... + +class AiMessageSent(_message.Message): + __slots__ = ("common", "target_agent", "source_agent", "a2a_task_id", "a2a_context_id", "message_context") + COMMON_FIELD_NUMBER: _ClassVar[int] + TARGET_AGENT_FIELD_NUMBER: _ClassVar[int] + SOURCE_AGENT_FIELD_NUMBER: _ClassVar[int] + A2A_TASK_ID_FIELD_NUMBER: _ClassVar[int] + A2A_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + common: Common + target_agent: AiAgent + source_agent: AiAgent + a2a_task_id: str + a2a_context_id: str + message_context: AiMessageContext + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., target_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., source_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... + +class AiTaskCreated(_message.Message): + __slots__ = ("common", "a2a_task_id", "a2a_context_id", "ai_agent", "message_context") + COMMON_FIELD_NUMBER: _ClassVar[int] + A2A_TASK_ID_FIELD_NUMBER: _ClassVar[int] + A2A_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + common: Common + a2a_task_id: str + a2a_context_id: str + ai_agent: AiAgent + message_context: AiMessageContext + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... + +class AiTaskUpdated(_message.Message): + __slots__ = ("common", "a2a_task_id", "a2a_context_id", "update_type", "ai_agent", "message_context") + COMMON_FIELD_NUMBER: _ClassVar[int] + A2A_TASK_ID_FIELD_NUMBER: _ClassVar[int] + A2A_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + UPDATE_TYPE_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + common: Common + a2a_task_id: str + a2a_context_id: str + update_type: AiTaskUpdateType + ai_agent: AiAgent + message_context: AiMessageContext + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., update_type: _Optional[_Union[AiTaskUpdateType, str]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... + +class AiTaskAccessed(_message.Message): + __slots__ = ("common", "a2a_task_id", "a2a_context_id", "ai_agent") + COMMON_FIELD_NUMBER: _ClassVar[int] + A2A_TASK_ID_FIELD_NUMBER: _ClassVar[int] + A2A_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + common: Common + a2a_task_id: str + a2a_context_id: str + ai_agent: AiAgent + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ...) -> None: ... + +class AiPushNotificationSent(_message.Message): + __slots__ = ("common", "push_notification_url", "a2a_task_id", "a2a_context_id", "ai_agent", "response_status") + COMMON_FIELD_NUMBER: _ClassVar[int] + PUSH_NOTIFICATION_URL_FIELD_NUMBER: _ClassVar[int] + A2A_TASK_ID_FIELD_NUMBER: _ClassVar[int] + A2A_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + RESPONSE_STATUS_FIELD_NUMBER: _ClassVar[int] + common: Common + push_notification_url: str + a2a_task_id: str + a2a_context_id: str + ai_agent: AiAgent + response_status: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., push_notification_url: _Optional[str] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., response_status: _Optional[int] = ...) -> None: ... + +class UserImpersonationRequested(_message.Message): + __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context", "ai_agent") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_TYPE_FIELD_NUMBER: _ClassVar[int] + CONTEXT_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + common: Common + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + ai_agent: AiAgent + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_initiator_id: _Optional[str] = ..., user_initiator_type: _Optional[_Union[UserType, str]] = ..., user_impersonated_id: _Optional[str] = ..., user_impersonated_type: _Optional[_Union[UserType, str]] = ..., context: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ...) -> None: ... + +class UserImpersonationDeclined(_message.Message): + __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context", "ai_agent") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_TYPE_FIELD_NUMBER: _ClassVar[int] + CONTEXT_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + common: Common + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + ai_agent: AiAgent + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_initiator_id: _Optional[str] = ..., user_initiator_type: _Optional[_Union[UserType, str]] = ..., user_impersonated_id: _Optional[str] = ..., user_impersonated_type: _Optional[_Union[UserType, str]] = ..., context: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ...) -> None: ... + +class AiUserInputRequested(_message.Message): + __slots__ = ("common", "requested_from_user_id", "a2a_task_id", "a2a_context_id", "ai_agent", "message_context") + COMMON_FIELD_NUMBER: _ClassVar[int] + REQUESTED_FROM_USER_ID_FIELD_NUMBER: _ClassVar[int] + A2A_TASK_ID_FIELD_NUMBER: _ClassVar[int] + A2A_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + common: Common + requested_from_user_id: str + a2a_task_id: str + a2a_context_id: str + ai_agent: AiAgent + message_context: AiMessageContext + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., requested_from_user_id: _Optional[str] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto index fc6e45b2..7305ce7c 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto +++ b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto @@ -7,22 +7,297 @@ import "google/protobuf/timestamp.proto"; option go_package = "sap.com/auditlog/auditevent"; +// User context with extended identity information +message UserContext { + //UserType + UserType type = 1; + // Additional custom attributes + map attributes = 2; +} + +// OpenTelemetry trace context for correlation with distributed traces +// Follows W3C Trace Context specification (https://www.w3.org/TR/trace-context/) +message TraceContext { + // The trace-id (32 lowercase hex characters, e.g., "4bf92f3577b34da6a3ce929d0e0e4736") + optional string trace_id = 1 [(buf.validate.field).string.pattern = "^[0-9a-f]{32}$"]; + // The span-id (16 lowercase hex characters, e.g., "00f067aa0ba902b7") + optional string span_id = 2 [(buf.validate.field).string.pattern = "^[0-9a-f]{16}$"]; +} + +// ============================================================================ +// OCSF-Aligned AI Structures +// Based on OCSF 1.10.0-dev AI Operation Profile +// https://schema.ocsf.io/1.10.0-dev/profiles/ai_operation +// ============================================================================ + +// AI Role in a conversation or operation +// Aligned with OCSF ai_role_id enumeration +enum AiRole { + //@ShortText: "Unspecified" + AI_ROLE_UNSPECIFIED = 0; + //@ShortText: "User" + AI_ROLE_USER = 1; + //@ShortText: "Assistant" + AI_ROLE_ASSISTANT = 2; + //@ShortText: "Tool" + AI_ROLE_TOOL = 3; + //@ShortText: "Agent" + AI_ROLE_AGENT = 4; + //@ShortText: "Orchestrator" + AI_ROLE_ORCHESTRATOR = 5; + //@ShortText: "Retriever" + AI_ROLE_RETRIEVER = 6; + //@ShortText: "Other" + AI_ROLE_OTHER = 99; +} + +// AI Agent Type - normalized framework identifier +// Aligned with OCSF ai_agent.type_id +enum AiAgentType { + //@ShortText: "Unspecified" + AI_AGENT_TYPE_UNSPECIFIED = 0; + //@ShortText: "Conversational" + AI_AGENT_TYPE_CONVERSATIONAL = 1; + //@ShortText: "Autonomous" + AI_AGENT_TYPE_AUTONOMOUS = 2; + //@ShortText: "Retrieval" + AI_AGENT_TYPE_RETRIEVAL = 3; + //@ShortText: "Multi-Agent" + AI_AGENT_TYPE_MULTI_AGENT = 4; + //@ShortText: "Other" + AI_AGENT_TYPE_OTHER = 99; +} + +// AI Session End Reason +enum AiSessionEndReason { + //@ShortText: "Unspecified" + AI_SESSION_END_REASON_UNSPECIFIED = 0; + //@ShortText: "Normal" + AI_SESSION_END_REASON_NORMAL = 1; + //@ShortText: "Timeout" + AI_SESSION_END_REASON_TIMEOUT = 2; + //@ShortText: "User Terminated" + AI_SESSION_END_REASON_USER_TERMINATED = 3; + //@ShortText: "Error" + AI_SESSION_END_REASON_ERROR = 4; + //@ShortText: "Policy Violation" + AI_SESSION_END_REASON_POLICY_VIOLATION = 5; + //@ShortText: "Other" + AI_SESSION_END_REASON_OTHER = 99; +} + +// AI Guardrail Type +enum AiGuardrailType { + //@ShortText: "Unspecified" + AI_GUARDRAIL_TYPE_UNSPECIFIED = 0; + //@ShortText: "Input" + AI_GUARDRAIL_TYPE_INPUT = 1; + //@ShortText: "Output" + AI_GUARDRAIL_TYPE_OUTPUT = 2; + //@ShortText: "Content Policy" + AI_GUARDRAIL_TYPE_CONTENT_POLICY = 3; + //@ShortText: "Prompt Injection" + AI_GUARDRAIL_TYPE_PROMPT_INJECTION = 4; + //@ShortText: "PII Filter" + AI_GUARDRAIL_TYPE_PII_FILTER = 5; + //@ShortText: "Data Leakage" + AI_GUARDRAIL_TYPE_DATA_LEAKAGE = 6; + //@ShortText: "Hallucination Detection" + AI_GUARDRAIL_TYPE_HALLUCINATION = 7; + //@ShortText: "Other" + AI_GUARDRAIL_TYPE_OTHER = 99; +} + +// AI Guardrail Action +enum AiGuardrailAction { + //@ShortText: "Unspecified" + AI_GUARDRAIL_ACTION_UNSPECIFIED = 0; + //@ShortText: "Allow" + AI_GUARDRAIL_ACTION_ALLOW = 1; + //@ShortText: "Block" + AI_GUARDRAIL_ACTION_BLOCK = 2; + //@ShortText: "Modify" + AI_GUARDRAIL_ACTION_MODIFY = 3; + //@ShortText: "Warn" + AI_GUARDRAIL_ACTION_WARN = 4; + //@ShortText: "Log Only" + AI_GUARDRAIL_ACTION_LOG_ONLY = 5; + //@ShortText: "Other" + AI_GUARDRAIL_ACTION_OTHER = 99; +} + +// AI Invocation Status +enum AiInvocationStatus { + //@ShortText: "Unspecified" + AI_INVOCATION_STATUS_UNSPECIFIED = 0; + //@ShortText: "Success" + AI_INVOCATION_STATUS_SUCCESS = 1; + //@ShortText: "Failed" + AI_INVOCATION_STATUS_FAILED = 2; + //@ShortText: "Timeout" + AI_INVOCATION_STATUS_TIMEOUT = 3; + //@ShortText: "Rate Limited" + AI_INVOCATION_STATUS_RATE_LIMITED = 4; + //@ShortText: "Cancelled" + AI_INVOCATION_STATUS_CANCELLED = 5; + //@ShortText: "Pending" + AI_INVOCATION_STATUS_PENDING = 6; + //@ShortText: "Other" + AI_INVOCATION_STATUS_OTHER = 99; +} + +// AI Retrieval Type (for RAG and knowledge retrieval) +enum AiRetrievalType { + //@ShortText: "Unspecified" + AI_RETRIEVAL_TYPE_UNSPECIFIED = 0; + //@ShortText: "Vector Search" + AI_RETRIEVAL_TYPE_VECTOR_SEARCH = 1; + //@ShortText: "Keyword Search" + AI_RETRIEVAL_TYPE_KEYWORD_SEARCH = 2; + //@ShortText: "Hybrid Search" + AI_RETRIEVAL_TYPE_HYBRID_SEARCH = 3; + //@ShortText: "Knowledge Graph" + AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH = 4; + //@ShortText: "Memory Context" + AI_RETRIEVAL_TYPE_MEMORY_CONTEXT = 5; + //@ShortText: "Document Retrieval" + AI_RETRIEVAL_TYPE_DOCUMENT = 6; + //@ShortText: "Other" + AI_RETRIEVAL_TYPE_OTHER = 99; +} + +// AI Feedback Rating +enum AiFeedbackRating { + //@ShortText: "Unspecified" + AI_FEEDBACK_RATING_UNSPECIFIED = 0; + //@ShortText: "Positive" + AI_FEEDBACK_RATING_POSITIVE = 1; + //@ShortText: "Negative" + AI_FEEDBACK_RATING_NEGATIVE = 2; + //@ShortText: "Neutral" + AI_FEEDBACK_RATING_NEUTRAL = 3; + //@ShortText: "Correction" + AI_FEEDBACK_RATING_CORRECTION = 4; + //@ShortText: "Other" + AI_FEEDBACK_RATING_OTHER = 99; +} + +// AI Tool Call Disposition (for authorization decisions) +enum AiToolCallDisposition { + //@ShortText: "Unspecified" + AI_TOOL_CALL_DISPOSITION_UNSPECIFIED = 0; + //@ShortText: "Allowed" + AI_TOOL_CALL_DISPOSITION_ALLOWED = 1; + //@ShortText: "Denied" + AI_TOOL_CALL_DISPOSITION_DENIED = 2; + //@ShortText: "Modified" + AI_TOOL_CALL_DISPOSITION_MODIFIED = 3; + //@ShortText: "Pending Approval" + AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL = 4; + //@ShortText: "Other" + AI_TOOL_CALL_DISPOSITION_OTHER = 99; +} + +// AI Model identification +// Aligned with OCSF ai_model object +// https://schema.ocsf.io/1.10.0-dev/objects/ai_model +message AiModel { + // AI service provider or organization name (e.g., "SAP", "OpenAI", "Anthropic", "Google") + string ai_provider = 1 [(buf.validate.field).required = true]; + // Human-readable model name (e.g., "joule-v1", "gpt-4o", "claude-3-sonnet") + string name = 2; + // Model's unique identifier + string uid = 3; + // Model version identifier (e.g., "2024-05-13", "v2.1.0") + string version = 4; +} + +// AI Agent identification +// Aligned with OCSF ai_agent object +// https://schema.ocsf.io/1.10.0-dev/objects/ai_agent +message AiAgent { + // Stable logical identifier for the agent (e.g., ORD ID) + string uid = 1; + // Human-readable agent designation + string name = 2; + // Identifier for a specific running instance or session + string instance_uid = 3; + // Agent framework type (string representation) + string type = 4; + // Normalized framework identifier + AiAgentType type_id = 5; + // Agent's code or configuration revision number + string version = 6; + // The AI model backing this agent + AiModel ai_model = 7; +} + +// Message/Conversation context for AI interactions +// Aligned with OCSF message_context object +// https://schema.ocsf.io/1.10.0-dev/objects/message_context +message AiMessageContext { + // Unique identifier for message correlation (conversation ID) + string uid = 1; + // Conversation name, session name, or thread identifier + string name = 2; + // The AI's functional role in this interaction + AiRole ai_role_id = 3; + // Verbatim input instruction to the model (may contain sensitive data) + string prompt_text = 4; + // Model-generated response content (may contain sensitive data) + string response_text = 5; + // Input token count + int32 prompt_tokens = 6; + // Response/completion token count + int32 completion_tokens = 7; + // Combined token usage (prompt + completion) + int32 total_tokens = 8; +} + +// AI Delegation context for authorization tracking +// Aligned with OCSF delegation object +// Links events to authorization contexts under delegated authority +message AiDelegation { + // The delegating entity (user or agent that granted authority) + string delegator_id = 1; + // The entity receiving delegated authority + string delegate_id = 2; + // Scope or permissions of the delegation + repeated string scopes = 3; + // Expiration time of the delegation + google.protobuf.Timestamp expires_at = 4; + // Delegation chain (for multi-hop delegations) + repeated string delegation_chain = 5; +} + // Common Fields // contains information that are attached to all events. message Common { //timestamp of the event google.protobuf.Timestamp timestamp = 1; // Required format: 2023-10-23T10:00:00.000Z - //IP Adress of the source in IPv4 or IPv6 + //IP Address of the source in IPv4 or IPv6 repeated string source_ip = 2; // IPv4 or IPv6 //contains the local user ID, which is used in case of impersonation string user_impersonated_id = 3; //contains the local user ID, who caused the audit log event - string user_initiator_id = 4; + string user_initiator_id = 4 [(buf.validate.field).required = true]; + //Identifier of the app e.g. App-GUID, FIORI-ID etc. string app_id = 5; //tenant ID of the source string tenant_id = 6; + //contains the identifier of the respective user session like SAP-Passport string user_session_context_id = 7; map app_context = 8; + //contains the global user ID, who caused the audit log event + string user_global_id = 9; + //contains the global user ID of the impersonated user + string user_impersonated_global_id = 10; + //Extended user context for User Initiator + UserContext user_initiator_context = 11; + //Extended user context for Impersonated User + UserContext user_impersonated_context = 12; + //OpenTelemetry trace context for correlation with distributed traces + TraceContext trace_context = 13; } /* AuditlogClear @@ -33,7 +308,7 @@ message Common { * @EventDocumentation: "The Audit log has been deleted and is no longer available. The number of events has been deleted." */ message AuditlogClear { - Common common = 1; + Common common = 1 [(buf.validate.field).required = true]; int32 number_of_events = 2; } @@ -45,7 +320,7 @@ message AuditlogClear { * @EventDocumentation: "The Audit log has been disabled" */ message AuditlogDisable { - Common common = 1; + Common common = 1 [(buf.validate.field).required = true]; } /* AuditlogEnable @@ -56,7 +331,7 @@ message AuditlogDisable { * @EventDocumentation: "The Audit log has been enabled" */ message AuditlogEnable { - Common common = 1; + Common common = 1 [(buf.validate.field).required = true]; } /* AuthnPrivilegeToGroupAdd @@ -67,70 +342,54 @@ message AuditlogEnable { * @EventDocumentation: "A new privilege has been added to a user group. This privilege grants members of that group access to objects and the ability to perform operations that they are otherwise not permitted to do." */ message AuthnPrivilegeToGroupAdd { - Common common = 1; - string group = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string privilege = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string group = 2 [(buf.validate.field).required = true]; + string privilege = 3 [(buf.validate.field).required = true]; string object_type = 4; string object_id = 5; } /* AuthnPrivilegeToGroupDelete - * @EventShortText: "An privilege has been deleted from a group" + * @EventShortText: "A privilege has been deleted from a group" * @EventCode: "AE-0005" * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been deleted from group ${group}" * @EventDocumentation: "A new privilege has been deleted from the specified user group. Deleting privileges from a group disallows its members from accessing objects and performing actions they were previously permitted to do." */ message AuthnPrivilegeToGroupDelete { - Common common = 1; - string group = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string privilege = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string group = 2 [(buf.validate.field).required = true]; + string privilege = 3 [(buf.validate.field).required = true]; string object_type = 4; string object_id = 5; } /* AuthnPrivilegeToRoleAdd - * @EventShortText: "An privilege has been added to a role" + * @EventShortText: "A privilege has been added to a role" * @EventCode: "AE-0006" * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been added to role ${role}" * @EventDocumentation: "A new privilege has been added to the role. This privilege grants users assigned to that role access objects and the ability to perform operations." */ message AuthnPrivilegeToRoleAdd { - Common common = 1; - string privilege = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string role = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string privilege = 2 [(buf.validate.field).required = true]; + string role = 3 [(buf.validate.field).required = true]; string object_type = 4; string object_id = 5; } /* AuthnPrivilegeToRoleDelete - * @EventShortText: "An privilege has been deleted from a role" + * @EventShortText: "A privilege has been deleted from a role" * @EventCode: "AE-0007" * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been deleted from role ${role}" * @EventDocumentation: "A privilege has been deleted from the role. As a result, users assigned to that role no longer have access to the privileges and cannot perform the associated operations." */ message AuthnPrivilegeToRoleDelete { - Common common = 1 ; - string privilege = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string role = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string privilege = 2 [(buf.validate.field).required = true]; + string role = 3 [(buf.validate.field).required = true]; string object_type = 4; string object_id = 5; } @@ -143,33 +402,25 @@ message AuthnPrivilegeToRoleDelete { * @EventDocumentation: "A user has been added access to specific objects and operations by a privilege." */ message AuthnPrivilegeToUserAdd { - Common common = 1 ; - string privilege = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string user = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string privilege = 2 [(buf.validate.field).required = true]; + string user = 3 [(buf.validate.field).required = true]; string object_type = 4; string object_id = 5; UserType user_type = 6; } /* AuthnPrivilegeToUserDelete - * @EventShortText: "An privilege has been removed from a user" + * @EventShortText: "A privilege has been removed from a user" * @EventCode: "AE-0009" * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been deleted from user ${user} (User Type: ${user_type})" * @EventDocumentation: "A user’s privileges have been deleted, preventing them from accessing the assigned objects and performing the corresponding operations." */ message AuthnPrivilegeToUserDelete { - Common common = 1 ; - string privilege = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string user = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string privilege = 2 [(buf.validate.field).required = true]; + string user = 3 [(buf.validate.field).required = true]; string object_type = 4; string object_id = 5; UserType user_type = 6; @@ -183,13 +434,9 @@ message AuthnPrivilegeToUserDelete { * @EventDocumentation: "A new role has been added to a user group. Now, members of the group can access the assigned objects and perform the corresponding operations." */ message AuthnRoleToGroupAdd { - Common common = 1; - string group = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string role = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string group = 2 [(buf.validate.field).required = true]; + string role = 3 [(buf.validate.field).required = true]; } /* AuthnRoleToGroupDelete @@ -200,13 +447,9 @@ message AuthnRoleToGroupAdd { * @EventDocumentation: "A user group has been stripped of a new role, resulting in members losing access to the assigned objects and the ability to perform the associated operations." */ message AuthnRoleToGroupDelete { - Common common = 1; - string group = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string role = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string group = 2 [(buf.validate.field).required = true]; + string role = 3 [(buf.validate.field).required = true]; } /* AuthnRoleToUserAdd @@ -217,13 +460,9 @@ message AuthnRoleToGroupDelete { * @EventDocumentation: "A new role has been added to a user. Now, the user can access the assigned objects and perform the corresponding operations." */ message AuthnRoleToUserAdd { - Common common = 1; - string role = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string user = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string role = 2 [(buf.validate.field).required = true]; + string user = 3 [(buf.validate.field).required = true]; UserType user_type = 4; } @@ -235,13 +474,9 @@ message AuthnRoleToUserAdd { * @EventDocumentation: "A user has been stripped of a role, resulting in user losing access to the assigned objects and the ability to perform the associated operations." */ message AuthnRoleToUserDelete { - Common common = 1; - string role = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string user = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string role = 2 [(buf.validate.field).required = true]; + string user = 3 [(buf.validate.field).required = true]; UserType user_type = 4; } @@ -253,13 +488,9 @@ message AuthnRoleToUserDelete { * @EventDocumentation: "A user has been assigned to a user group." */ message AuthnUserToGroupAdd { - Common common = 1 ; - string group = 2 [ - (buf.validate.field).string.min_len = 1 - ]; - string user = 3 [ - (buf.validate.field).string.min_len = 1 - ]; + Common common = 1 [(buf.validate.field).required = true]; + string group = 2 [(buf.validate.field).required = true]; + string user = 3 [(buf.validate.field).required = true]; UserType user_type = 4; } @@ -271,15 +502,9 @@ message AuthnUserToGroupAdd { * @EventDocumentation: "A user has been deleted from mentioned user group." */ message AuthnUserToGroupDelete { - Common common = 1 ; - string group = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string user = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string group = 2 [(buf.validate.field).required = true]; + string user = 3 [(buf.validate.field).required = true]; UserType user_type = 4; } @@ -291,13 +516,10 @@ message AuthnUserToGroupDelete { * @EventDocumentation: "A new configuration has been created for a named property that belongs to an object type with an identifier. This event type of log is being used to record any configuration changes that may be relevant for security or compliance reasons." */ message ConfigurationAdd { - Common common = 1 ; - google.protobuf.Value value = 2 ; - string property_name = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [(buf.validate.field).string.max_len = 20]; + Common common = 1 [(buf.validate.field).required = true]; + google.protobuf.Value value = 2 [(buf.validate.field).required = true]; + string property_name = 3 [(buf.validate.field).required = true]; + string object_type = 4; string object_id = 5; } @@ -309,14 +531,11 @@ message ConfigurationAdd { * @EventDocumentation: "An existing configuration has been changed for a named property that belongs to an object type with an identifier. This event type of log is being used to record any configuration changes that may be relevant for security or compliance reasons." */ message ConfigurationChange { - Common common = 1 ; - google.protobuf.Value new_value = 2 ; - google.protobuf.Value old_value = 3 ; - string property_name = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 5 [(buf.validate.field).string.max_len = 20]; + Common common = 1 [(buf.validate.field).required = true]; + google.protobuf.Value new_value = 2 [(buf.validate.field).required = true]; + google.protobuf.Value old_value = 3 [(buf.validate.field).required = true]; + string property_name = 4 [(buf.validate.field).required = true]; + string object_type = 5; string object_id = 6; } @@ -328,13 +547,10 @@ message ConfigurationChange { * @EventDocumentation: "A configuration has been deleted for a named property that belongs to an object type with an identifier. This event type of log is being used to record any configuration changes that may be relevant for security or compliance reasons." */ message ConfigurationDelete { - Common common = 1 ; - google.protobuf.Value value = 2 ; - string property_name = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [(buf.validate.field).string.max_len = 20]; + Common common = 1 [(buf.validate.field).required = true]; + google.protobuf.Value value = 2 [(buf.validate.field).required = true]; + string property_name = 3 [(buf.validate.field).required = true]; + string object_type = 4; string object_id = 5; } @@ -346,12 +562,9 @@ message ConfigurationDelete { * @EventDocumentation: "A credential of a specific type has been successfully created." */ message CredentialCreate { - Common common = 1 ; - string credential_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - CredentialType credential_type = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string credential_id = 2 [(buf.validate.field).required = true]; + CredentialType credential_type = 3 [(buf.validate.field).required = true]; } /* CredentialDelete @@ -362,12 +575,9 @@ message CredentialCreate { * @EventDocumentation: "A credential of a specific type has been deleted." */ message CredentialDelete { - Common common = 1 ; - string credential_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - CredentialType credential_type = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string credential_id = 2 [(buf.validate.field).required = true]; + CredentialType credential_type = 3 [(buf.validate.field).required = true]; } /* CredentialExpiration @@ -378,12 +588,9 @@ message CredentialDelete { * @EventDocumentation: "A credential of a specific type has been expired at a specific time." */ message CredentialExpiration { - Common common = 1 ; - string credential_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - CredentialType credential_type = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string credential_id = 2 [(buf.validate.field).required = true]; + CredentialType credential_type = 3 [(buf.validate.field).required = true]; google.protobuf.Timestamp expiration_date = 4; } @@ -391,16 +598,13 @@ message CredentialExpiration { * @EventShortText: "A credential has been revoked" * @EventCode: "AE-0022" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" - * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been revoked (Revokation date: ${revokation_date})" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been revoked (Revocation date: ${revokation_date})" * @EventDocumentation: "A credential of a specific type has been invalidated at a specific time." */ message CredentialRevokation { - Common common = 1 ; - string credential_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - CredentialType credential_type = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string credential_id = 2 [(buf.validate.field).required = true]; + CredentialType credential_type = 3 [(buf.validate.field).required = true]; google.protobuf.Timestamp revokation_date = 4; } @@ -412,17 +616,11 @@ message CredentialRevokation { * @EventDocumentation: "A security-relevant DataModel has been modified. A DataModel is a representation of a real-world scenario about which data is to be collected and stored in a database. It depicts the data flow and logical relationships between various data elements." */ message DataModelChange { - Common common = 1 ; - string model_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - google.protobuf.Value new_value = 3 ; - google.protobuf.Value old_value = 4 ; - string property_name = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string model_id = 2 [(buf.validate.field).required = true]; + google.protobuf.Value new_value = 3 [(buf.validate.field).required = true]; + google.protobuf.Value old_value = 4 [(buf.validate.field).required = true]; + string property_name = 5 [(buf.validate.field).required = true]; } /* DataModelCreate @@ -433,11 +631,8 @@ message DataModelChange { * @EventDocumentation: "A security-relevant DataModel has been created. A DataModel is a representation of a real-world scenario about which data is to be collected and stored in a database. It depicts the data flow and logical relationships between various data elements." */ message DataModelCreate { - Common common = 1 ; - string model_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string model_id = 2 [(buf.validate.field).required = true]; } /* DataModelDelete @@ -448,11 +643,8 @@ message DataModelCreate { * @EventDocumentation: "A security-relevant DataModel has been deleted. A DataModel is a representation of a real-world scenario about which data is to be collected and stored in a database. It depicts the data flow and logical relationships between various data elements." */ message DataModelDelete { - Common common = 1 ; - string model_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string model_id = 2 [(buf.validate.field).required = true]; } /* DataAccess @@ -463,27 +655,12 @@ message DataModelDelete { * @EventDocumentation: "A security-relevant property has been read through the designated channel." */ message DataAccess { - Common common = 1 ; - string channel_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string channel_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 6 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string channel_type = 2 [(buf.validate.field).required = true]; + string channel_id = 3 [(buf.validate.field).required = true]; + string object_type = 4 [(buf.validate.field).required = true]; + string object_id = 5 [(buf.validate.field).required = true]; + string attribute = 6 [(buf.validate.field).required = true]; google.protobuf.Value value = 7; string attachment_type = 8 [deprecated = true]; string attachment_id = 9 [deprecated = true]; @@ -497,19 +674,10 @@ message DataAccess { * @EventDocumentation: "A security-relevant property has been created." */ message DataCreate { - Common common = 1 ; - string object_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string object_type = 2 [(buf.validate.field).required = true]; + string object_id = 3 [(buf.validate.field).required = true]; + string attribute = 4 [(buf.validate.field).required = true]; google.protobuf.Value value = 5; } @@ -521,19 +689,10 @@ message DataCreate { * @EventDocumentation: "A security-relevant property has been deleted." */ message DataDelete { - Common common = 1 ; - string object_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string object_type = 2 [(buf.validate.field).required = true]; + string object_id = 3 [(buf.validate.field).required = true]; + string attribute = 4 [(buf.validate.field).required = true]; google.protobuf.Value value = 5; } @@ -545,19 +704,10 @@ message DataDelete { * @EventDocumentation: "A security-relevant property has been changed." */ message DataModification { - Common common = 1 ; - string object_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string object_type = 2 [(buf.validate.field).required = true]; + string object_id = 3 [(buf.validate.field).required = true]; + string attribute = 4 [(buf.validate.field).required = true]; google.protobuf.Value new_value = 5; google.protobuf.Value old_value = 6; } @@ -570,24 +720,12 @@ message DataModification { * @EventDocumentation: "A security-relevant data has been exported to a designated URI" */ message DataExport { - Common common = 1 ; - DataExportChannelType channel_type = 2 ; - string channel_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; - string destination_uri = 6 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + DataExportChannelType channel_type = 2 [(buf.validate.field).required = true]; + string channel_id = 3 [(buf.validate.field).required = true]; + string object_type = 4 [(buf.validate.field).required = true]; + string object_id = 5 [(buf.validate.field).required = true]; + string destination_uri = 6 [(buf.validate.field).required = true]; } /* DppDataAccess @@ -598,35 +736,14 @@ message DataExport { * @EventDocumentation: "Data relevant to the Data Protection and Privacy guidelines or similar purposes has been accessed. Data protection is closely linked to numerous legal requirements and privacy concerns." */ message DppDataAccess { - Common common = 1 ; - string channel_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string channel_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string data_subject_type = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string data_subject_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 6 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 7 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 8 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string channel_type = 2 [(buf.validate.field).required = true]; + string channel_id = 3 [(buf.validate.field).required = true]; + string data_subject_type = 4 [(buf.validate.field).required = true]; + string data_subject_id = 5 [(buf.validate.field).required = true]; + string object_type = 6 [(buf.validate.field).required = true]; + string object_id = 7 [(buf.validate.field).required = true]; + string attribute = 8 [(buf.validate.field).required = true]; google.protobuf.Value value = 9; string attachment_type = 10 [deprecated = true]; string attachment_id = 11 [deprecated = true]; @@ -640,27 +757,12 @@ message DppDataAccess { * @EventDocumentation: "Data relevant to the Data Protection and Privacy guidelines or similar purposes has been created. Data protection is closely linked to numerous legal requirements and privacy concerns." */ message DppDataCreate { - Common common = 1 ; - string data_subject_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string data_subject_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 6 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string data_subject_type = 2 [(buf.validate.field).required = true]; + string data_subject_id = 3 [(buf.validate.field).required = true]; + string object_type = 4 [(buf.validate.field).required = true]; + string object_id = 5 [(buf.validate.field).required = true]; + string attribute = 6 [(buf.validate.field).required = true]; google.protobuf.Value value = 7; } @@ -672,27 +774,12 @@ message DppDataCreate { * @EventDocumentation: "Data relevant to the Data Protection and Privacy guidelines or similar purposes has been deleted. Data protection is closely linked to numerous legal requirements and privacy concerns." */ message DppDataDelete { - Common common = 1 ; - string data_subject_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string data_subject_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 6 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string data_subject_type = 2 [(buf.validate.field).required = true]; + string data_subject_id = 3 [(buf.validate.field).required = true]; + string object_type = 4 [(buf.validate.field).required = true]; + string object_id = 5 [(buf.validate.field).required = true]; + string attribute = 6 [(buf.validate.field).required = true]; google.protobuf.Value value = 7; } @@ -704,27 +791,12 @@ message DppDataDelete { * @EventDocumentation: "Data relevant to the Data Protection and Privacy guidelines or similar purposes has been modified. Data protection is closely linked to numerous legal requirements and privacy concerns." */ message DppDataModification { - Common common = 1 ; - string data_subject_type = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - string data_subject_id = 3 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_type = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string object_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; - string attribute = 6 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string data_subject_type = 2 [(buf.validate.field).required = true]; + string data_subject_id = 3 [(buf.validate.field).required = true]; + string object_type = 4 [(buf.validate.field).required = true]; + string object_id = 5 [(buf.validate.field).required = true]; + string attribute = 6 [(buf.validate.field).required = true]; google.protobuf.Value new_value = 7; google.protobuf.Value old_value = 8; } @@ -737,17 +809,11 @@ message DppDataModification { * @EventDocumentation: "A named property of a job definition has been updated. Background jobs are automated tasks that run in the background without any user interaction. They are scheduled to run at specific times and are useful for executing time-consuming and repetitive tasks such as data archiving, batch processing, and report generation." */ message JobChange { - Common common = 1 ; - string job_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - google.protobuf.Value new_value = 3 ; - google.protobuf.Value old_value = 4 ; - string property_name = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string job_id = 2 [(buf.validate.field).required = true]; + google.protobuf.Value new_value = 3 [(buf.validate.field).required = true]; + google.protobuf.Value old_value = 4 [(buf.validate.field).required = true]; + string property_name = 5 [(buf.validate.field).required = true]; } /* JobCreate @@ -758,11 +824,8 @@ message JobChange { * @EventDocumentation: "A job with the specified ID has been created. Background jobs are automated tasks that run in the background without any user interaction. They are scheduled to run at specific times and are useful for executing time-consuming and repetitive tasks such as data archiving, batch processing, and report generation." */ message JobCreate { - Common common = 1 ; - string job_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string job_id = 2 [(buf.validate.field).required = true]; } /* JobDelete @@ -773,11 +836,8 @@ message JobCreate { * @EventDocumentation: "A job with the specified ID has been deleted. Background jobs are automated tasks that run in the background without any user interaction. They are scheduled to run at specific times and are useful for executing time-consuming and repetitive tasks such as data archiving, batch processing, and report generation." */ message JobDelete { - Common common = 1 ; - string job_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string job_id = 2 [(buf.validate.field).required = true]; } /* JobStatusChange @@ -788,17 +848,11 @@ message JobDelete { * @EventDocumentation: "A job status has changed by changing a named property. Background jobs are automated tasks that run in the background without any user interaction. They are scheduled to run at specific times and are useful for executing time-consuming and repetitive tasks such as data archiving, batch processing, and report generation." */ message JobStatusChange { - Common common = 1 ; - string job_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; - google.protobuf.Value new_value = 3 ; - google.protobuf.Value old_value = 4 ; - string property_name = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string job_id = 2 [(buf.validate.field).required = true]; + google.protobuf.Value new_value = 3 [(buf.validate.field).required = true]; + google.protobuf.Value old_value = 4 [(buf.validate.field).required = true]; + string property_name = 5 [(buf.validate.field).required = true]; } /* MaliciousRequestDetected @@ -809,14 +863,11 @@ message JobStatusChange { * @EventDocumentation: "A Malicious Request is a well-crafted and harmful request sent by a hacker to an authenticated user. This request contains the necessary parameters to execute valid actions on a web application without the user’s knowledge." */ message MaliciousRequestDetected { - Common common = 1 ; - string parameter = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string parameter = 2 [(buf.validate.field).required = true]; string expected_value = 3; string received_value = 4; - MaliciousBehavior behavior = 5 ; + MaliciousBehavior behavior = 5 [(buf.validate.field).required = true]; } /* PasswordChange @@ -827,11 +878,8 @@ message MaliciousRequestDetected { * @EventDocumentation: "Password of the mentioned user has been changed." */ message PasswordChange { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; } /* PasswordExpiration @@ -842,11 +890,8 @@ message PasswordChange { * @EventDocumentation: "Password of the mentioned user has expired." */ message PasswordExpiration { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; } /* PasswordReset @@ -857,11 +902,8 @@ message PasswordExpiration { * @EventDocumentation: "Password of the mentioned user has been reset." */ message PasswordReset { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; } /* TenantModification @@ -872,17 +914,11 @@ message PasswordReset { * @EventDocumentation: "A property of a tenant was changed." */ message TenantModification { - Common common = 1 ; - google.protobuf.Value new_value = 2 ; - google.protobuf.Value old_value = 3 ; - string property_name = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string tenant_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + google.protobuf.Value new_value = 2 [(buf.validate.field).required = true]; + google.protobuf.Value old_value = 3 [(buf.validate.field).required = true]; + string property_name = 4 [(buf.validate.field).required = true]; + string tenant_id = 5 [(buf.validate.field).required = true]; } /* TenantOffboarding @@ -893,11 +929,8 @@ message TenantModification { * @EventDocumentation: "The tenant has been terminated from the service." */ message TenantOffboarding { - Common common = 1 ; - string tenant_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string tenant_id = 2 [(buf.validate.field).required = true]; } /* TenantOnboarding @@ -908,11 +941,8 @@ message TenantOffboarding { * @EventDocumentation: "The tenant has been created" */ message TenantOnboarding { - Common common = 1 ; - string tenant_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string tenant_id = 2 [(buf.validate.field).required = true]; } /* UnauthenticatedRequest @@ -923,18 +953,18 @@ message TenantOnboarding { * @EventDocumentation: "An unauthenticated request (in the sense of an HTTP status code 401) has been performed" */ message UnauthenticatedRequest { - Common common = 1 ; + Common common = 1 [(buf.validate.field).required = true]; } /* UnauthorizedRequest - * @EventShortText: "Unauthenticated request has been performed" + * @EventShortText: "Unauthorized request has been performed" * @EventCode: "AE-0047" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "An unauthorized request of type ${unauthorized_type} has been performed" - * @EventDocumentation: "An unauthenticated request (in the sense of an HTTP status code 401) has been performed" + * @EventDocumentation: "An unauthorized request (in the sense of an HTTP status code 403) has been performed" */ message UnauthorizedRequest { - Common common = 1 ; + Common common = 1 [(buf.validate.field).required = true]; string unauthorized_type = 2; } @@ -946,11 +976,8 @@ message UnauthorizedRequest { * @EventDocumentation: "A specific user has been activated" */ message UserActivate { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -962,11 +989,8 @@ message UserActivate { * @EventDocumentation: "A specific user has been blocked" */ message UserBlock { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -978,11 +1002,8 @@ message UserBlock { * @EventDocumentation: "A specific user has been created" */ message UserCreate { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -994,17 +1015,11 @@ message UserCreate { * @EventDocumentation: "User's master data has been modified. A specific property of user has been changed" */ message UserDataModification { - Common common = 1 ; - google.protobuf.Value new_value = 2 ; - google.protobuf.Value old_value = 3 ; - string property_name = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; - string user_id = 5 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + google.protobuf.Value new_value = 2 [(buf.validate.field).required = true]; + google.protobuf.Value old_value = 3 [(buf.validate.field).required = true]; + string property_name = 4 [(buf.validate.field).required = true]; + string user_id = 5 [(buf.validate.field).required = true]; UserType user_type = 6; } @@ -1016,11 +1031,8 @@ message UserDataModification { * @EventDocumentation: "A specific user has been deleted" */ message UserDelete { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -1032,16 +1044,10 @@ message UserDelete { * @EventDocumentation: "Impersonation session has been started. User impersonation enables initiating user to access and operate as if they were logged in as that impersonated user. User A receives the authorizations of user B, user A is the Initiator and user B the Impersonated" */ message UserImpersonationStart { - Common common = 1 ; - string user_initiator_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_initiator_id = 2 [(buf.validate.field).required = true]; UserType user_initiator_type = 3; - string user_impersonated_id = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; + string user_impersonated_id = 4 [(buf.validate.field).required = true]; UserType user_impersonated_type = 5; string context = 6 [(buf.validate.field).string.min_len = 1]; } @@ -1054,16 +1060,10 @@ message UserImpersonationStart { * @EventDocumentation: "Impersonation session has been finished. User impersonation enables initiating user to access and operate as if they were logged in as that impersonated user. User A receives the authorizations of user B, user A is the Initiator and user B the Impersonated." */ message UserImpersonationFinish { - Common common = 1 ; - string user_initiator_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_initiator_id = 2 [(buf.validate.field).required = true]; UserType user_initiator_type = 3; - string user_impersonated_id = 4 [ - (buf.validate.field).string.min_len = 1 - - ]; + string user_impersonated_id = 4 [(buf.validate.field).required = true]; UserType user_impersonated_type = 5; string context = 6 [(buf.validate.field).string.min_len = 1]; } @@ -1076,11 +1076,8 @@ message UserImpersonationFinish { * @EventDocumentation: "A specific user has been locked" */ message UserLock { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -1092,11 +1089,8 @@ message UserLock { * @EventDocumentation: "A specific user has been unlocked" */ message UserUnlock { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -1108,11 +1102,8 @@ message UserUnlock { * @EventDocumentation: "A specific user has been verified." */ message UserVerify { - Common common = 1 ; - string user_id = 2 [ - (buf.validate.field).string.min_len = 1 - - ]; + Common common = 1 [(buf.validate.field).required = true]; + string user_id = 2 [(buf.validate.field).required = true]; UserType user_type = 3; } @@ -1124,9 +1115,9 @@ message UserVerify { * @EventDocumentation: "The user could not be logged on to the system" */ message UserLoginFailure { - Common common = 1 ; - FailureReason failure_reason = 2 ; - LoginMethod method = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + FailureReason failure_reason = 2 [(buf.validate.field).required = true]; + LoginMethod method = 3 [(buf.validate.field).required = true]; bool is_admin = 4; MfaType mfa_type = 5; UserType user_type = 6; @@ -1141,11 +1132,11 @@ message UserLoginFailure { * @EventDocumentation: "The user has logged onto the system successfully." */ message UserLoginSuccess { - Common common = 1 ; + Common common = 1 [(buf.validate.field).required = true]; bool is_admin = 2; - LoginMethod method = 3 ; - MfaType mfa_type = 4 ; - UserType user_type = 5 ; + LoginMethod method = 3 [(buf.validate.field).required = true]; + MfaType mfa_type = 4 [(buf.validate.field).required = true]; + UserType user_type = 5 [(buf.validate.field).required = true]; LoginProtocol login_protocol = 6; } @@ -1154,11 +1145,11 @@ message UserLoginSuccess { * @EventCode: "AE-0060" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "User logged off (Type: ${logoff_type}, Protocol: ${login_protocol})" - * @EventDocumentation: "The logged off." + * @EventDocumentation: "The user logged off." */ message UserLogoff { - Common common = 1 ; - LogoffType logoff_type = 2 ; + Common common = 1 [(buf.validate.field).required = true]; + LogoffType logoff_type = 2 [(buf.validate.field).required = true]; LoginProtocol login_protocol = 3; } @@ -1170,8 +1161,8 @@ message UserLogoff { * @EventDocumentation: "Custom event-type used for security related events that are not part of the Audit Log Event Catalog." */ message ZzzCustomEvent { - Common common = 1 ; - google.protobuf.Value custom = 2 ; + Common common = 1 [(buf.validate.field).required = true]; + google.protobuf.Value custom = 2 [(buf.validate.field).required = true]; } /* CMKOnboarding @@ -1182,9 +1173,9 @@ message ZzzCustomEvent { * @EventDocumentation: "A System has been onboarded to a Customer Managed Key within an SAP Key Management Service Tenant." */ message CMKOnboarding { - Common common = 1 ; - string system_id = 2 ; - string cmk_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string system_id = 2 [(buf.validate.field).required = true]; + string cmk_id = 3 [(buf.validate.field).required = true]; } /* CMKOffboarding @@ -1192,26 +1183,27 @@ message CMKOnboarding { * @EventCode: "AE-0063" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "System ${system_id} has been offboarded from Customer Managed Key ${cmk_id} in KMS Tenant ${tenant_id}" - * @EventDocumentation: "A System has been offboarded from a Customer Managed Key within as SAP Key Management Service Tenant." + * @EventDocumentation: "A System has been offboarded from a Customer Managed Key within a SAP Key Management Service Tenant." */ message CMKOffboarding { - Common common = 1 ; - string system_id = 2 ; - string cmk_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string system_id = 2 [(buf.validate.field).required = true]; + string cmk_id = 3 [(buf.validate.field).required = true]; } /* CMKSwitch - * @EventShortText: "System has switched CMKs within SAP KMS" - * @EventCode: "AE-0064" - * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" - * @EventMessageText: "System ${system_id} has been switched from Customer Managed Key ${cmk_id_old} to Customer Managed Key ${cmk_id_new} in KMS Tenant ${tenant_id}" - * @EventDocumentation: "A System has been switched from a Customer Managed Key within as SAP Key Management Service Tenant." - */ + * @EventShortText: "System has switched CMKs within SAP KMS" + * @EventCode: "AE-0064" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "System ${system_id} has been switched from Customer Managed Key ${cmk_id_old} to Customer Managed Key ${cmk_id_new} in KMS Tenant ${tenant_id}" + * @EventDocumentation: "A System has been switched from one Customer Managed Key to another within a SAP Key Management Service Tenant." + +*/ message CMKSwitch { - Common common = 1 ; - string system_id = 2 ; - string cmk_id_old = 3 ; - string cmk_id_new = 4 ; + Common common = 1 [(buf.validate.field).required = true]; + string system_id = 2 [(buf.validate.field).required = true]; + string cmk_id_old = 3 [(buf.validate.field).required = true]; + string cmk_id_new = 4 [(buf.validate.field).required = true]; } /* CMKTenantModification @@ -1222,10 +1214,10 @@ message CMKSwitch { * @EventDocumentation: "A Tenant has been modified as a result of a customer action within the SAP Key Management Service (e.g. System Onboarding, System Offboarding or Key Revocation)" */ message CMKTenantModification { - Common common = 1 ; - string system_id = 2 ; - string cmk_id = 3 ; - CMKAction cmk_action = 4 ; + Common common = 1 [(buf.validate.field).required = true]; + string system_id = 2 [(buf.validate.field).required = true]; + string cmk_id = 3 [(buf.validate.field).required = true]; + CMKAction cmk_action = 4 [(buf.validate.field).required = true]; } /* CMKCreate @@ -1236,9 +1228,9 @@ message CMKTenantModification { * @EventDocumentation: "Customer Managed Key has been created in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKCreate { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKDelete @@ -1249,9 +1241,9 @@ message CMKCreate { * @EventDocumentation: "Customer Managed Key has been deleted in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKDelete { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKRestore @@ -1262,9 +1254,9 @@ message CMKDelete { * @EventDocumentation: "Customer Managed Key has been restored in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKRestore { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKDisable @@ -1275,9 +1267,9 @@ message CMKRestore { * @EventDocumentation: "Customer Managed Key has been disabled in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKDisable { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKEnable @@ -1288,9 +1280,9 @@ message CMKDisable { * @EventDocumentation: "Customer Managed Key has been enabled in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKEnable { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKRotate @@ -1298,11 +1290,11 @@ message CMKEnable { * @EventCode: "AE-0071" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "Customer Managed Key ${cmk_id} has been rotated" - * @EventDocumentation: "Customer Managed Key has rotated in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." + * @EventDocumentation: "Customer Managed Key has been rotated in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKRotate { - Common common = 1 ; - string cmk_id = 2 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; } /* KeyCreate @@ -1313,11 +1305,11 @@ message CMKRotate { * @EventDocumentation: "A key identified by its Key ID has been created. The key was assigned to a system referenced by a Customer Managed Key." */ message KeyCreate { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyDelete @@ -1328,11 +1320,11 @@ message KeyCreate { * @EventDocumentation: "A key identified by its Key ID has been deleted. The key was assigned to a system referenced by a Customer Managed Key. Reasons for deleting a key are: consumer-controlled key termination" */ message KeyDelete { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyRestore @@ -1343,11 +1335,11 @@ message KeyDelete { * @EventDocumentation: "A key identified by its Key ID has been restored. The key was assigned to a system referenced by a Customer Managed Key. Reasons for restoring are e.g. restore from backup" */ message KeyRestore { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyPurge @@ -1358,11 +1350,11 @@ message KeyRestore { * @EventDocumentation: "A key identified by its Key ID has been purged. The key was assigned to a system referenced by a Customer Managed Key. Reasons for purging a key from memory are: mainly Customer Managed Key revocation" */ message KeyPurge { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyRotate @@ -1373,11 +1365,11 @@ message KeyPurge { * @EventDocumentation: "A key identified by its Key ID has been rotated. The key was assigned to a system referenced by a Customer Managed Key. Reasons for rotating a key are: scheduled internal key rotation, Customer Managed Key rotation" */ message KeyRotate { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyEnable @@ -1388,11 +1380,11 @@ message KeyRotate { * @EventDocumentation: "A key identified by its Key ID has been enabled. The key was assigned to a system referenced by a Customer Managed Key. Reasons for enabling a key are: Customer Managed Key restore, consumer-side key management" */ message KeyEnable { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyDisable @@ -1403,11 +1395,11 @@ message KeyEnable { * @EventDocumentation: "A key identified by its Key ID has been disabled. The key was assigned to a system referenced by a Customer Managed Key. Reasons for disabling a key are: Customer Managed Key restore, consumer-side key management" */ message KeyDisable { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeySuspend @@ -1418,11 +1410,11 @@ message KeyDisable { * @EventDocumentation: "A key identified by its Key ID has been suspended. The key was assigned to a system referenced by a Customer Managed Key. Reasons for suspending of a key are: Customer Managed Key restore, consumer-side key management" */ message KeySuspend { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* KeyOnboardKeyChain @@ -1433,11 +1425,11 @@ message KeySuspend { * @EventDocumentation: "A key identified by its Key ID has been onboarded to keychain. The key was assigned to a system referenced by a Customer Managed Key. Reasons for onboarding a key are: Customer Managed Key restore, consumer-side key management" */ message KeyOnboardKeyChain { - Common common = 1 ; - KeyType key_type = 2 ; - string key_id = 3 ; - string system_id = 4 ; - string cmk_id = 5 ; + Common common = 1 [(buf.validate.field).required = true]; + KeyType key_type = 2 [(buf.validate.field).required = true]; + string key_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; + string cmk_id = 5 [(buf.validate.field).required = true]; } /* CMKDrop @@ -1448,9 +1440,9 @@ message KeyOnboardKeyChain { * @EventDocumentation: "Metadata of Customer Managed Key have been dropped in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKDrop { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKSuspend @@ -1461,9 +1453,9 @@ message CMKDrop { * @EventDocumentation: "Customer Managed Key has been suspended in SAP KMS. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKSuspend { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* VirusFinding @@ -1474,10 +1466,10 @@ message CMKSuspend { * @EventDocumentation: "During a scan of the aforementioned file, a virus was detected. The channel provides insights into the manner in which the virus was identified, particularly during upload processes and routine scans." */ message VirusFinding { - Common common = 1 ; - string virus_name = 2 ; - string file_name = 3 ; - VirusChannel virus_channel = 4 ; + Common common = 1 [(buf.validate.field).required = true]; + string virus_name = 2 [(buf.validate.field).required = true]; + string file_name = 3 [(buf.validate.field).required = true]; + VirusChannel virus_channel = 4 [(buf.validate.field).required = true]; } /* CMKUnavailable @@ -1488,9 +1480,9 @@ message VirusFinding { * @EventDocumentation: "Customer Managed Key has become unavailable for SAP Key Management Service. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKUnavailable { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKAvailable @@ -1501,9 +1493,9 @@ message CMKUnavailable { * @EventDocumentation: "Customer Managed Key has become available for SAP Key Management Service. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKAvailable { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; } /* CMKDetach @@ -1514,10 +1506,454 @@ message CMKAvailable { * @EventDocumentation: "Customer Managed Key has been detached from System in SAP Key Management Service. SAP Key Management Service is a kernel service that provides key management infrastructure for SAP cloud applications and services to support encryption with customer-specific encryption keys (CSEK) or with customer-managed keys (CMK)." */ message CMKDetach { - Common common = 1 ; - string cmk_id = 2 ; - string kms_system_id = 3 ; - string system_id = 4 ; + Common common = 1 [(buf.validate.field).required = true]; + string cmk_id = 2 [(buf.validate.field).required = true]; + string kms_system_id = 3 [(buf.validate.field).required = true]; + string system_id = 4 [(buf.validate.field).required = true]; +} + +// ============================================================================ +// Autonomous AI Events +// Events for auditing activities in autonomous/agentic scenarios. +// These events can be used by any component in the SAP Autonomous Suite +// (e.g., Agent Gateway, Joule, custom agents, orchestrators). +// Aligned with OCSF 1.10.0-dev AI Operation Profile. +// ============================================================================ + +// --- Session Events --- + +/* AiSessionStart + * @EventShortText: "AI session started" + * @EventCode: "AE-0087" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI session ${session_id} started for agent ${ai_agent.name}" + * @EventDocumentation: "An AI session has been initiated. This event marks the beginning of an interaction session with an AI system, capturing authentication context and the AI agent/model involved." + */ +message AiSessionStart { + Common common = 1 [(buf.validate.field).required = true]; + // Unique identifier for this session + string session_id = 2 [(buf.validate.field).required = true]; + // The AI agent handling this session + AiAgent ai_agent = 3; + // The AI model used (if no agent, direct model invocation) + AiModel ai_model = 4; + // Delegation context if operating under delegated authority + AiDelegation delegation = 5; +} + +/* AiSessionEnd + * @EventShortText: "AI session ended" + * @EventCode: "AE-0088" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI session ${session_id} ended (Reason: ${end_reason})" + * @EventDocumentation: "An AI session has been terminated. This event marks the end of an interaction session, capturing the reason for termination and final session metrics." + */ +message AiSessionEnd { + Common common = 1 [(buf.validate.field).required = true]; + // Unique identifier for this session + string session_id = 2 [(buf.validate.field).required = true]; + // Reason for session termination + AiSessionEndReason end_reason = 3; + // Total tokens consumed in this session + int32 total_tokens = 4; + // Session duration in milliseconds + int64 duration_ms = 5; +} + +// --- Prompt Events --- + +/* AiPromptReceived + * @EventShortText: "AI prompt received" + * @EventCode: "AE-0089" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI prompt received in session ${session_id}" + * @EventDocumentation: "A prompt/request has been received by the AI system. This event captures the incoming user or system request before processing." + */ +message AiPromptReceived { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Message context with prompt details + AiMessageContext message_context = 3; + // The AI agent receiving the prompt + AiAgent ai_agent = 4; +} + +/* AiGuardrailTriggered + * @EventShortText: "AI guardrail triggered" + * @EventCode: "AE-0090" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI guardrail ${guardrail_name} triggered (Type: ${guardrail_type}, Action: ${action_taken})" + * @EventDocumentation: "An AI guardrail has been triggered during input validation or output filtering. Guardrails protect against harmful, inappropriate, or policy-violating content." + */ +message AiGuardrailTriggered { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Name of the guardrail that was triggered + string guardrail_name = 3 [(buf.validate.field).required = true]; + // Type of guardrail (input, output, content, policy) + AiGuardrailType guardrail_type = 4 [(buf.validate.field).required = true]; + // Action taken by the guardrail + AiGuardrailAction action_taken = 5 [(buf.validate.field).required = true]; + // Category of violation detected + string violation_category = 6; + // Message context when guardrail was triggered + AiMessageContext message_context = 7; +} + +// --- Orchestration Events --- + +/* AiModelInvocation + * @EventShortText: "AI model invoked" + * @EventCode: "AE-0091" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI model ${ai_model.name} invoked by ${ai_agent.name}" + * @EventDocumentation: "An AI model has been invoked. This event captures LLM calls including the model identity, token usage, and latency metrics." + */ +message AiModelInvocation { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // The AI model being invoked + AiModel ai_model = 3 [(buf.validate.field).required = true]; + // The AI agent making the invocation (if applicable) + AiAgent ai_agent = 4; + // Message context with token counts + AiMessageContext message_context = 5; + // Invocation latency in milliseconds + int64 latency_ms = 6; + // Model invocation status + AiInvocationStatus status = 7; + // Error message if status is failed + string error_message = 8; +} + +/* AiSkillSelected + * @EventShortText: "AI skill selected" + * @EventCode: "AE-0092" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI skill ${skill_name} selected for execution" + * @EventDocumentation: "An AI skill or capability has been selected for execution based on intent routing. Skills represent specialized capabilities that the AI system can invoke." + */ +message AiSkillSelected { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Name of the selected skill + string skill_name = 3 [(buf.validate.field).required = true]; + // Unique identifier of the skill + string skill_id = 4; + // Confidence score for skill selection (0.0 to 1.0) + float confidence_score = 5; + // The AI agent making the selection + AiAgent ai_agent = 6; + // Alternative skills that were considered + repeated string alternatives_considered = 7; +} + +/* AiAgentDelegated + * @EventShortText: "AI agent delegated" + * @EventCode: "AE-0093" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Task delegated from ${source_agent.name} to ${target_agent.name}" + * @EventDocumentation: "A task or responsibility has been delegated from one AI agent to another. This event tracks the chain of delegation in multi-agent systems." + */ +message AiAgentDelegated { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // The agent delegating the task + AiAgent source_agent = 3 [(buf.validate.field).required = true]; + // The agent receiving the delegation + AiAgent target_agent = 4 [(buf.validate.field).required = true]; + // Delegation context with scopes and permissions + AiDelegation delegation = 5; + // The task being delegated + string task_description = 6; +} + +// --- Execution Events --- + +/* AiMcpToolCall + * @EventShortText: "MCP tool called" + * @EventCode: "AE-0094" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "MCP tool ${tool_name} called on server ${target_mcp_server_id}" + * @EventDocumentation: "A tool has been invoked via the Model Context Protocol (MCP). MCP tools provide capabilities to interact with external systems, APIs, and services in a standardized way." + */ +message AiMcpToolCall { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // The name of the tool being called + string tool_name = 3 [(buf.validate.field).required = true]; + // The id of the target MCP server + string target_mcp_server_id = 4 [(buf.validate.field).required = true]; + // The AI agent making the tool call + AiAgent ai_agent = 5; + // Tool call status + AiInvocationStatus status = 6; + // Latency in milliseconds + int64 latency_ms = 7; + // Error message if failed + string error_message = 8; +} + +/* AiDirectApiAccess + * @EventShortText: "Direct API access" + * @EventCode: "AE-0095" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Direct API access to ${target_api_id}" + * @EventDocumentation: "An API has been accessed directly without going through the MCP protocol. This event tracks direct API integrations used in autonomous scenarios." + */ +message AiDirectApiAccess { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // The id of the target API + string target_api_id = 3 [(buf.validate.field).required = true]; + // The AI agent making the API call + AiAgent ai_agent = 4; + // HTTP method used + string http_method = 5; + // API call status + AiInvocationStatus status = 6; + // HTTP response status code + int32 response_status_code = 7; + // Latency in milliseconds + int64 latency_ms = 8; +} + +/* AiDataRetrieval + * @EventShortText: "AI data retrieval" + * @EventCode: "AE-0096" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "AI data retrieval from ${data_source_id} (Type: ${retrieval_type})" + * @EventDocumentation: "Data has been retrieved from a knowledge base or data source for AI processing. This includes RAG (Retrieval-Augmented Generation) queries and other knowledge retrieval operations." + */ +message AiDataRetrieval { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Identifier of the data source + string data_source_id = 3 [(buf.validate.field).required = true]; + // Type of data source (vector_db, knowledge_base, document_store, etc.) + string data_source_type = 4; + // Type of retrieval operation + AiRetrievalType retrieval_type = 5; + // Number of results retrieved + int32 results_count = 6; + // The AI agent performing the retrieval + AiAgent ai_agent = 7; + // Query latency in milliseconds + int64 latency_ms = 8; +} + +// --- Response Events --- + +/* AiResponseGenerated + * @EventShortText: "AI response generated" + * @EventCode: "AE-0097" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI response generated in session ${session_id}" + * @EventDocumentation: "An AI response has been generated and delivered. This event captures the final output of an AI interaction including token usage and response metadata." + */ +message AiResponseGenerated { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Message context with response details and token counts + AiMessageContext message_context = 3; + // The AI agent that generated the response + AiAgent ai_agent = 4; + // The AI model that generated the response + AiModel ai_model = 5; + // Total processing latency in milliseconds + int64 latency_ms = 6; +} + +/* AiUserFeedback + * @EventShortText: "AI user feedback" + * @EventCode: "AE-0098" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User feedback received for session ${session_id} (Rating: ${feedback_rating})" + * @EventDocumentation: "User feedback has been received for an AI interaction. This includes explicit feedback like thumbs up/down, ratings, or corrections." + */ +message AiUserFeedback { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Feedback rating (positive, negative, neutral) + AiFeedbackRating feedback_rating = 3; + // Numeric score if applicable (e.g., 1-5 stars) + int32 feedback_score = 4; + // Feedback category (accuracy, helpfulness, safety, etc.) + string feedback_category = 5; + // Free-text feedback comment + string feedback_comment = 6; + // Reference to the message being rated + string message_uid = 7; +} + +// --- Task/Agent Communication Events --- + +/* AiMessageSent + * @EventShortText: "Message sent to agent" + * @EventCode: "AE-0099" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Message sent to agent ${target_agent.name} (Task: ${a2a_task_id})" + * @EventDocumentation: "A message has been sent to an AI agent. This event is written when communication occurs between agents or when a user/system sends a message to an agent." + */ +message AiMessageSent { + Common common = 1 [(buf.validate.field).required = true]; + // The target agent receiving the message + AiAgent target_agent = 2 [(buf.validate.field).required = true]; + // The source agent sending the message (if agent-to-agent) + AiAgent source_agent = 3; + // The id of the task to which the message belongs (A2A protocol) + string a2a_task_id = 4; + // The context id of the task + string a2a_context_id = 5; + // Message context with content and role + AiMessageContext message_context = 6; +} + +/* AiTaskCreated + * @EventShortText: "AI task created" + * @EventCode: "AE-0100" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI task ${a2a_task_id} created (Context: ${a2a_context_id})" + * @EventDocumentation: "A new task has been created in an AI/autonomous workflow. Tasks represent units of work that can be tracked and managed across agent interactions." + */ +message AiTaskCreated { + Common common = 1 [(buf.validate.field).required = true]; + // The id of the created task (A2A protocol) + string a2a_task_id = 2 [(buf.validate.field).required = true]; + // The context id of the task + string a2a_context_id = 3; + // The AI agent creating the task + AiAgent ai_agent = 4; + // Message context with task details + AiMessageContext message_context = 5; +} + +/* AiTaskUpdated + * @EventShortText: "AI task updated" + * @EventCode: "AE-0101" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI task ${a2a_task_id} updated (Update Type: ${update_type})" + * @EventDocumentation: "An existing AI task has been updated. Updates can include status changes, artifact updates, or requests for additional input." + */ +message AiTaskUpdated { + Common common = 1 [(buf.validate.field).required = true]; + // The id of the task being updated (A2A protocol) + string a2a_task_id = 2 [(buf.validate.field).required = true]; + // The context id of the task + string a2a_context_id = 3; + // The type of update performed on the task + AiTaskUpdateType update_type = 4 [(buf.validate.field).required = true]; + // The AI agent performing the update + AiAgent ai_agent = 5; + // Message context with update details + AiMessageContext message_context = 6; +} + +/* AiTaskAccessed + * @EventShortText: "AI task accessed" + * @EventCode: "AE-0102" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "AI task ${a2a_task_id} has been accessed" + * @EventDocumentation: "An AI task has been read/accessed. This event is logged when task information is retrieved for monitoring, debugging, or continuation of workflows." + */ +message AiTaskAccessed { + Common common = 1 [(buf.validate.field).required = true]; + // The id of the accessed task (A2A protocol) + string a2a_task_id = 2 [(buf.validate.field).required = true]; + // The context id of the task + string a2a_context_id = 3; + // The AI agent or entity accessing the task + AiAgent ai_agent = 4; +} + +/* AiPushNotificationSent + * @EventShortText: "AI push notification sent" + * @EventCode: "AE-0103" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI push notification sent for task ${a2a_task_id} to ${push_notification_url}" + * @EventDocumentation: "A push notification has been sent to a configured callback URL for an AI task. Used to notify external systems about task events." + */ +message AiPushNotificationSent { + Common common = 1 [(buf.validate.field).required = true]; + // The URL where the push notification was sent + string push_notification_url = 2 [(buf.validate.field).required = true]; + // The id of the task (A2A protocol) + string a2a_task_id = 3 [(buf.validate.field).required = true]; + // The context id of the task + string a2a_context_id = 4; + // The AI agent sending the notification + AiAgent ai_agent = 5; + // HTTP response status code from the endpoint + int32 response_status = 6; +} + +// --- Human-in-the-Loop Events --- + +/* UserImpersonationRequested + * @EventShortText: "User impersonation requested" + * @EventCode: "AE-0104" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User ${user_initiator_id} requested impersonation for user ${user_impersonated_id}" + * @EventDocumentation: "A request for permission elevation via impersonation has been initiated. This event is logged when an agent or system requests to act on behalf of another user." + */ +message UserImpersonationRequested { + Common common = 1 [(buf.validate.field).required = true]; + string user_initiator_id = 2 [(buf.validate.field).required = true]; + UserType user_initiator_type = 3; + string user_impersonated_id = 4 [(buf.validate.field).required = true]; + UserType user_impersonated_type = 5; + string context = 6 [(buf.validate.field).string.min_len = 1]; + // The AI agent requesting impersonation + AiAgent ai_agent = 7; +} + +/* UserImpersonationDeclined + * @EventShortText: "User impersonation declined" + * @EventCode: "AE-0105" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User ${user_initiator_id} was declined impersonation for user ${user_impersonated_id}" + * @EventDocumentation: "A request for permission elevation via impersonation has been declined by the user." + */ +message UserImpersonationDeclined { + Common common = 1 [(buf.validate.field).required = true]; + string user_initiator_id = 2 [(buf.validate.field).required = true]; + UserType user_initiator_type = 3; + string user_impersonated_id = 4 [(buf.validate.field).required = true]; + UserType user_impersonated_type = 5; + string context = 6 [(buf.validate.field).string.min_len = 1]; + // The AI agent whose request was declined + AiAgent ai_agent = 7; +} + +/* AiUserInputRequested + * @EventShortText: "User input requested" + * @EventCode: "AE-0106" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User input requested from ${requested_from_user_id} for AI task ${a2a_task_id}" + * @EventDocumentation: "Additional input from a user has been requested for an AI task. This event represents a human-in-the-loop interaction." + */ +message AiUserInputRequested { + Common common = 1 [(buf.validate.field).required = true]; + // The user from whom input is being requested + string requested_from_user_id = 2 [(buf.validate.field).required = true]; + // The id of the task requiring user input (A2A protocol) + string a2a_task_id = 3 [(buf.validate.field).required = true]; + // The context id of the task + string a2a_context_id = 4; + // The AI agent requesting input + AiAgent ai_agent = 5; + // Message context describing what input is needed + AiMessageContext message_context = 6; } enum CredentialType { @@ -1545,7 +1981,7 @@ enum FailureReason { FAILURE_REASON_USER_LOCKED = 4; //@ShortText: "User blocked" FAILURE_REASON_USER_BLOCKED = 5; - //@ShortText: "User not verified + //@ShortText: "User not verified" FAILURE_REASON_USER_UNVERIFIED = 6; //@ShortText: "User expired" FAILURE_REASON_USER_EXPIRED = 7; @@ -1613,7 +2049,7 @@ enum LoginMethod { LOGIN_METHOD_OAUTH2 = 14; //@ShortText: "Reentrance Ticket" LOGIN_METHOD_REENTRANCE_TICKET = 15; - //@ShortText: Http security session" + //@ShortText: "Http security session" LOGIN_METHOD_HTTP_SESSION = 16; //@ShortText: "Assertion Ticket" LOGIN_METHOD_ASSERTION_TICKET = 17; @@ -1681,6 +2117,10 @@ enum UserType { USER_TYPE_BUSINESS_USER = 1; //@ShortText: "Technical User" USER_TYPE_TECHNICAL_USER = 2; + //@ShortText: "SAP Support User" + USER_TYPE_SAP_SUPPORT_USER = 3; + //@ShortText: "AI Agent" + USER_TYPE_AI_AGENT = 4; } // DataExportChannelType @@ -1753,6 +2193,18 @@ enum VirusChannel { VIRUS_CHANNEL_SCAN = 2; } +// AI Task Update Types +enum AiTaskUpdateType { + //@ShortText: "Unspecified" + AI_TASK_UPDATE_TYPE_UNSPECIFIED = 0; + //@ShortText: "Status Update" + AI_TASK_UPDATE_TYPE_STATUS = 1; + //@ShortText: "Artifact Update" + AI_TASK_UPDATE_TYPE_ARTIFACT = 2; + //@ShortText: "Input Required" + AI_TASK_UPDATE_TYPE_INPUT_REQUIRED = 3; +} + //Login Protocol enum LoginProtocol { //@ShortText: "Unspecified" From bd9a49b3c3466f0aabfccdf5a61c220a1748fc21 Mon Sep 17 00:00:00 2001 From: Miroslav Tsvetanov Date: Tue, 29 Sep 2026 18:42:05 +0300 Subject: [PATCH 2/4] feat(auditlog_ng): update v2 auditevent schema to event catalog 2.4.0 Update proto schema from telemetry-semantic-conventions 2.4.0 which adds Turn events, Memory access events, and cleanup of operational fields. Regenerate Python models with buf generate. --- .../core/auditlog_ng/gen/buf/__init__.py | 0 .../auditlog_ng/gen/buf/validate/__init__.py | 0 .../gen/buf/validate/validate_pb2.py | 469 ++++++++++++ .../gen/buf/validate/validate_pb2.pyi | 654 +++++++++++++++++ .../auditlog/auditevent/v2/auditevent_pb2.py | 612 +++++++++------- .../auditlog/auditevent/v2/auditevent_pb2.pyi | 256 ++++--- .../auditlog/auditevent/v2/auditevent.proto | 682 ++++++++++-------- 7 files changed, 2030 insertions(+), 643 deletions(-) create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py new file mode 100644 index 00000000..33311353 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py @@ -0,0 +1,469 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: buf/validate/validate.proto +# Protobuf Python Version: 6.33.5 +"""Generated protocol buffer code.""" +from google.protobuf import descriptor as _descriptor +from google.protobuf import descriptor_pool as _descriptor_pool +from google.protobuf import runtime_version as _runtime_version +from google.protobuf import symbol_database as _symbol_database +from google.protobuf.internal import builder as _builder +_runtime_version.ValidateProtobufRuntimeVersion( + _runtime_version.Domain.PUBLIC, + 6, + 33, + 5, + '', + 'buf/validate/validate.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 +from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 +from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x62uf/validate/validate.proto\x12\x0c\x62uf.validate\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x04Rule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\"\xa1\x01\n\x0cMessageRules\x12%\n\x0e\x63\x65l_expression\x18\x05 \x03(\tR\rcelExpression\x12$\n\x03\x63\x65l\x18\x03 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x34\n\x05oneof\x18\x04 \x03(\x0b\x32\x1e.buf.validate.MessageOneofRuleR\x05oneofJ\x04\x08\x01\x10\x02R\x08\x64isabled\"F\n\x10MessageOneofRule\x12\x16\n\x06\x66ields\x18\x01 \x03(\tR\x06\x66ields\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\"(\n\nOneofRules\x12\x1a\n\x08required\x18\x01 \x01(\x08R\x08required\"\xe3\n\n\nFieldRules\x12%\n\x0e\x63\x65l_expression\x18\x1d \x03(\tR\rcelExpression\x12$\n\x03\x63\x65l\x18\x17 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x1a\n\x08required\x18\x19 \x01(\x08R\x08required\x12,\n\x06ignore\x18\x1b \x01(\x0e\x32\x14.buf.validate.IgnoreR\x06ignore\x12\x30\n\x05\x66loat\x18\x01 \x01(\x0b\x32\x18.buf.validate.FloatRulesH\x00R\x05\x66loat\x12\x33\n\x06\x64ouble\x18\x02 \x01(\x0b\x32\x19.buf.validate.DoubleRulesH\x00R\x06\x64ouble\x12\x30\n\x05int32\x18\x03 \x01(\x0b\x32\x18.buf.validate.Int32RulesH\x00R\x05int32\x12\x30\n\x05int64\x18\x04 \x01(\x0b\x32\x18.buf.validate.Int64RulesH\x00R\x05int64\x12\x33\n\x06uint32\x18\x05 \x01(\x0b\x32\x19.buf.validate.UInt32RulesH\x00R\x06uint32\x12\x33\n\x06uint64\x18\x06 \x01(\x0b\x32\x19.buf.validate.UInt64RulesH\x00R\x06uint64\x12\x33\n\x06sint32\x18\x07 \x01(\x0b\x32\x19.buf.validate.SInt32RulesH\x00R\x06sint32\x12\x33\n\x06sint64\x18\x08 \x01(\x0b\x32\x19.buf.validate.SInt64RulesH\x00R\x06sint64\x12\x36\n\x07\x66ixed32\x18\t \x01(\x0b\x32\x1a.buf.validate.Fixed32RulesH\x00R\x07\x66ixed32\x12\x36\n\x07\x66ixed64\x18\n \x01(\x0b\x32\x1a.buf.validate.Fixed64RulesH\x00R\x07\x66ixed64\x12\x39\n\x08sfixed32\x18\x0b \x01(\x0b\x32\x1b.buf.validate.SFixed32RulesH\x00R\x08sfixed32\x12\x39\n\x08sfixed64\x18\x0c \x01(\x0b\x32\x1b.buf.validate.SFixed64RulesH\x00R\x08sfixed64\x12-\n\x04\x62ool\x18\r \x01(\x0b\x32\x17.buf.validate.BoolRulesH\x00R\x04\x62ool\x12\x33\n\x06string\x18\x0e \x01(\x0b\x32\x19.buf.validate.StringRulesH\x00R\x06string\x12\x30\n\x05\x62ytes\x18\x0f \x01(\x0b\x32\x18.buf.validate.BytesRulesH\x00R\x05\x62ytes\x12-\n\x04\x65num\x18\x10 \x01(\x0b\x32\x17.buf.validate.EnumRulesH\x00R\x04\x65num\x12\x39\n\x08repeated\x18\x12 \x01(\x0b\x32\x1b.buf.validate.RepeatedRulesH\x00R\x08repeated\x12*\n\x03map\x18\x13 \x01(\x0b\x32\x16.buf.validate.MapRulesH\x00R\x03map\x12*\n\x03\x61ny\x18\x14 \x01(\x0b\x32\x16.buf.validate.AnyRulesH\x00R\x03\x61ny\x12\x39\n\x08\x64uration\x18\x15 \x01(\x0b\x32\x1b.buf.validate.DurationRulesH\x00R\x08\x64uration\x12=\n\nfield_mask\x18\x1c \x01(\x0b\x32\x1c.buf.validate.FieldMaskRulesH\x00R\tfieldMask\x12<\n\ttimestamp\x18\x16 \x01(\x0b\x32\x1c.buf.validate.TimestampRulesH\x00R\ttimestampB\x06\n\x04typeJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"Z\n\x0fPredefinedRules\x12$\n\x03\x63\x65l\x18\x01 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65lJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"\xae\x17\n\nFloatRules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42n\xc2Hk\ni\n\x0b\x66loat.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x9d\x01\n\x02lt\x18\x02 \x01(\x02\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x08\x66loat.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xae\x01\n\x03lte\x18\x03 \x01(\x02\x42\x99\x01\xc2H\x95\x01\n\x92\x01\n\tfloat.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd4\x07\n\x02gt\x18\x04 \x01(\x02\x42\xc1\x07\xc2H\xbd\x07\n\x86\x01\n\x08\x66loat.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbd\x01\n\x0b\x66loat.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x0c\x66loat.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd7\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa1\x08\n\x03gte\x18\x05 \x01(\x02\x42\x8c\x08\xc2H\x88\x08\n\x95\x01\n\tfloat.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcc\x01\n\x0c\x66loat.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\rfloat.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe6\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x02\x42m\xc2Hj\nh\n\x08\x66loat.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x02\x42`\xc2H]\n[\n\x0c\x66loat.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12w\n\x06\x66inite\x18\x08 \x01(\x08\x42_\xc2H\\\nZ\n\x0c\x66loat.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x34\n\x07\x65xample\x18\t \x03(\x02\x42\x1a\xc2H\x17\n\x15\n\rfloat.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xc0\x17\n\x0b\x44oubleRules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42o\xc2Hl\nj\n\x0c\x64ouble.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x9e\x01\n\x02lt\x18\x02 \x01(\x01\x42\x8b\x01\xc2H\x87\x01\n\x84\x01\n\tdouble.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xaf\x01\n\x03lte\x18\x03 \x01(\x01\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\ndouble.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd9\x07\n\x02gt\x18\x04 \x01(\x01\x42\xc6\x07\xc2H\xc2\x07\n\x87\x01\n\tdouble.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbe\x01\n\x0c\x64ouble.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc8\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\rdouble.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd8\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa6\x08\n\x03gte\x18\x05 \x01(\x01\x42\x91\x08\xc2H\x8d\x08\n\x96\x01\n\ndouble.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcd\x01\n\rdouble.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd7\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x0e\x64ouble.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe7\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x01\x42n\xc2Hk\ni\n\tdouble.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x01\x42\x61\xc2H^\n\\\n\rdouble.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12x\n\x06\x66inite\x18\x08 \x01(\x08\x42`\xc2H]\n[\n\rdouble.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x35\n\x07\x65xample\x18\t \x03(\x01\x42\x1b\xc2H\x18\n\x16\n\x0e\x64ouble.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt32Rules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42n\xc2Hk\ni\n\x0bint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x88\x01\n\x02lt\x18\x02 \x01(\x05\x42v\xc2Hs\nq\n\x08int32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x05\x42\x85\x01\xc2H\x81\x01\n\x7f\n\tint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x05\x42\xea\x06\xc2H\xe6\x06\nt\n\x08int32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x05\x42\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x05\x42m\xc2Hj\nh\n\x08int32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x05\x42`\xc2H]\n[\n\x0cint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\x08 \x03(\x05\x42\x1a\xc2H\x17\n\x15\n\rint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt64Rules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42n\xc2Hk\ni\n\x0bint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x88\x01\n\x02lt\x18\x02 \x01(\x03\x42v\xc2Hs\nq\n\x08int64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x03\x42\x85\x01\xc2H\x81\x01\n\x7f\n\tint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x03\x42\xea\x06\xc2H\xe6\x06\nt\n\x08int64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x03\x42\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x03\x42m\xc2Hj\nh\n\x08int64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x03\x42`\xc2H]\n[\n\x0cint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\t \x03(\x03\x42\x1a\xc2H\x17\n\x15\n\rint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt32Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\rBo\xc2Hl\nj\n\x0cuint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\rBw\xc2Ht\nr\n\tuint32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\rB\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\rB\xef\x06\xc2H\xeb\x06\nu\n\tuint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\rB\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\rBn\xc2Hk\ni\n\tuint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\rBa\xc2H^\n\\\n\ruint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\rB\x1b\xc2H\x18\n\x16\n\x0euint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt64Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42o\xc2Hl\nj\n\x0cuint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x04\x42w\xc2Ht\nr\n\tuint64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x04\x42\xef\x06\xc2H\xeb\x06\nu\n\tuint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x04\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x04\x42n\xc2Hk\ni\n\tuint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x04\x42\x61\xc2H^\n\\\n\ruint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x04\x42\x1b\xc2H\x18\n\x16\n\x0euint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt32Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42o\xc2Hl\nj\n\x0csint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x11\x42w\xc2Ht\nr\n\tsint32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x11\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x11\x42\xef\x06\xc2H\xeb\x06\nu\n\tsint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x11\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x11\x42n\xc2Hk\ni\n\tsint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x11\x42\x61\xc2H^\n\\\n\rsint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x11\x42\x1b\xc2H\x18\n\x16\n\x0esint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt64Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42o\xc2Hl\nj\n\x0csint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x12\x42w\xc2Ht\nr\n\tsint64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x12\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x12\x42\xef\x06\xc2H\xeb\x06\nu\n\tsint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x12\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x12\x42n\xc2Hk\ni\n\tsint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x12\x42\x61\xc2H^\n\\\n\rsint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x12\x42\x1b\xc2H\x18\n\x16\n\x0esint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0c\x46ixed32Rules\x12\x86\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42p\xc2Hm\nk\n\rfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x07\x42x\xc2Hu\ns\n\nfixed32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x07\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0b\x66ixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x07\x42\xf4\x06\xc2H\xf0\x06\nv\n\nfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0e\x66ixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x07\x42\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0b\x66ixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0e\x66ixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0f\x66ixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x07\x42o\xc2Hl\nj\n\nfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x07\x42\x62\xc2H_\n]\n\x0e\x66ixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x07\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0c\x46ixed64Rules\x12\x86\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42p\xc2Hm\nk\n\rfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x06\x42x\xc2Hu\ns\n\nfixed64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x06\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0b\x66ixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x06\x42\xf4\x06\xc2H\xf0\x06\nv\n\nfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0e\x66ixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x06\x42\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0b\x66ixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0e\x66ixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0f\x66ixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x06\x42o\xc2Hl\nj\n\nfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x06\x42\x62\xc2H_\n]\n\x0e\x66ixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x06\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed32Rules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42q\xc2Hn\nl\n\x0esfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x0f\x42y\xc2Hv\nt\n\x0bsfixed32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x0f\x42\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x0f\x42p\xc2Hm\nk\n\x0bsfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x0f\x42\x63\xc2H`\n^\n\x0fsfixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x0f\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed64Rules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42q\xc2Hn\nl\n\x0esfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x10\x42y\xc2Hv\nt\n\x0bsfixed64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x10\x42\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x10\x42\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x10\x42\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x10\x42p\xc2Hm\nk\n\x0bsfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x10\x42\x63\xc2H`\n^\n\x0fsfixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x10\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xd1\x01\n\tBoolRules\x12\x83\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42m\xc2Hj\nh\n\nbool.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x33\n\x07\x65xample\x18\x02 \x03(\x08\x42\x19\xc2H\x16\n\x14\n\x0c\x62ool.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xcf?\n\x0bStringRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\tBq\xc2Hn\nl\n\x0cstring.const\x1a\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12v\n\x03len\x18\x13 \x01(\x04\x42\x64\xc2Ha\n_\n\nstring.len\x1aQuint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\x91\x01\n\x07min_len\x18\x02 \x01(\x04\x42x\xc2Hu\ns\n\x0estring.min_len\x1a\x61uint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\x0estring.max_len\x1a`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x95\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42x\xc2Hu\ns\n\x10string.len_bytes\x1a_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\x9e\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x80\x01\xc2H}\n{\n\x10string.min_bytes\x1aguint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\x9c\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x7f\xc2H|\nz\n\x10string.max_bytes\x1a\x66uint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x90\x01\n\x07pattern\x18\x06 \x01(\tBv\xc2Hs\nq\n\x0estring.pattern\x1a_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x86\x01\n\x06prefix\x18\x07 \x01(\tBn\xc2Hk\ni\n\rstring.prefix\x1aX!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x84\x01\n\x06suffix\x18\x08 \x01(\tBl\xc2Hi\ng\n\rstring.suffix\x1aV!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x94\x01\n\x08\x63ontains\x18\t \x01(\tBx\xc2Hu\ns\n\x0fstring.contains\x1a`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\x9e\x01\n\x0cnot_contains\x18\x17 \x01(\tB{\xc2Hx\nv\n\x13string.not_contains\x1a_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12~\n\x02in\x18\n \x03(\tBn\xc2Hk\ni\n\tstring.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x0b \x03(\tBa\xc2H^\n\\\n\rstring.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe0\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xc7\x01\xc2H\xc3\x01\n[\n\x0cstring.email\x12\x1dmust be a valid email address\x1a,!rules.email || this == \'\' || this.isEmail()\nd\n\x12string.email_empty\x12\x32value is empty, which is not a valid email address\x1a\x1a!rules.email || this != \'\'H\x00R\x05\x65mail\x12\xeb\x01\n\x08hostname\x18\r \x01(\x08\x42\xcc\x01\xc2H\xc8\x01\n_\n\x0fstring.hostname\x12\x18must be a valid hostname\x1a\x32!rules.hostname || this == \'\' || this.isHostname()\ne\n\x15string.hostname_empty\x12-value is empty, which is not a valid hostname\x1a\x1d!rules.hostname || this != \'\'H\x00R\x08hostname\x12\xc5\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb2\x01\xc2H\xae\x01\nO\n\tstring.ip\x12\x1amust be a valid IP address\x1a&!rules.ip || this == \'\' || this.isIp()\n[\n\x0fstring.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x17!rules.ip || this != \'\'H\x00R\x02ip\x12\xd6\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv4\x12\x1cmust be a valid IPv4 address\x1a)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\x11string.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x19!rules.ipv4 || this != \'\'H\x00R\x04ipv4\x12\xd6\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv6\x12\x1cmust be a valid IPv6 address\x1a)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\x11string.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x19!rules.ipv6 || this != \'\'H\x00R\x04ipv6\x12\xbe\x01\n\x03uri\x18\x11 \x01(\x08\x42\xa9\x01\xc2H\xa5\x01\nK\n\nstring.uri\x12\x13must be a valid URI\x1a(!rules.uri || this == \'\' || this.isUri()\nV\n\x10string.uri_empty\x12(value is empty, which is not a valid URI\x1a\x18!rules.uri || this != \'\'H\x00R\x03uri\x12r\n\x07uri_ref\x18\x12 \x01(\x08\x42W\xc2HT\nR\n\x0estring.uri_ref\x12\x1dmust be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x92\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xf5\x01\xc2H\xf1\x01\n{\n\x0estring.address\x12\'must be a valid hostname, or ip address\x1a@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\x14string.address_empty\x12!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\x92\x01\n string.ipv4_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv4 address with prefix length\x1a(!rules.ipv4_with_prefixlen || this != \'\'H\x00R\x11ipv4WithPrefixlen\x12\xdc\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xa9\x02\xc2H\xa5\x02\n\x8d\x01\n\x1astring.ipv6_with_prefixlen\x12/must be a valid IPv6 address with prefix length\x1a>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\x92\x01\n string.ipv6_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv6 address with prefix length\x1a(!rules.ipv6_with_prefixlen || this != \'\'H\x00R\x11ipv6WithPrefixlen\x12\xf6\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xd6\x01\xc2H\xd2\x01\nf\n\x10string.ip_prefix\x12\x19must be a valid IP prefix\x1a\x37!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\x16string.ip_prefix_empty\x12.value is empty, which is not a valid IP prefix\x1a\x1e!rules.ip_prefix || this != \'\'H\x00R\x08ipPrefix\x12\x89\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xe5\x01\xc2H\xe1\x01\no\n\x12string.ipv4_prefix\x12\x1bmust be a valid IPv4 prefix\x1a!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\x1astring.host_and_port_empty\x12\x37value is empty, which is not a valid host and port pair\x1a\"!rules.host_and_port || this != \'\'H\x00R\x0bhostAndPort\x12\xf4\x01\n\x04ulid\x18# \x01(\x08\x42\xdd\x01\xc2H\xd9\x01\n|\n\x0bstring.ulid\x12\x14must be a valid ULID\x1aW!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\x11string.ulid_empty\x12)value is empty, which is not a valid ULID\x1a\x19!rules.ulid || this != \'\'H\x00R\x04ulid\x12\xe1\x02\n\x0cprotobuf_fqn\x18% \x01(\x08\x42\xbb\x02\xc2H\xb7\x02\n\xaf\x01\n\x13string.protobuf_fqn\x12-must be a valid fully-qualified Protobuf name\x1ai!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x82\x01\n\x19string.protobuf_fqn_empty\x12\x42value is empty, which is not a valid fully-qualified Protobuf name\x1a!!rules.protobuf_fqn || this != \'\'H\x00R\x0bprotobufFqn\x12\xa1\x03\n\x10protobuf_dot_fqn\x18& \x01(\x08\x42\xf4\x02\xc2H\xf0\x02\n\xcd\x01\n\x17string.protobuf_dot_fqn\x12@must be a valid fully-qualified Protobuf name with a leading dot\x1ap!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x9d\x01\n\x1dstring.protobuf_dot_fqn_empty\x12Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\x1a%!rules.protobuf_dot_fqn || this != \'\'H\x00R\x0eprotobufDotFqn\x12\xac\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xe5\x04\xc2H\xe1\x04\n\xea\x01\n#string.well_known_regex.header_name\x12 must be a valid HTTP header name\x1a\xa0\x01rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\x8d\x01\n)string.well_known_regex.header_name_empty\x12\x35value is empty, which is not a valid HTTP header name\x1a)rules.well_known_regex != 1 || this != \'\'\n\xe1\x01\n$string.well_known_regex.header_value\x12!must be a valid HTTP header value\x1a\x95\x01rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')H\x00R\x0ewellKnownRegex\x12\x16\n\x06strict\x18\x19 \x01(\x08R\x06strict\x12\x35\n\x07\x65xample\x18\" \x03(\tB\x1b\xc2H\x18\n\x16\n\x0estring.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xca\x12\n\nBytesRules\x12\x81\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42k\xc2Hh\nf\n\x0b\x62ytes.const\x1aWthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12p\n\x03len\x18\r \x01(\x04\x42^\xc2H[\nY\n\tbytes.len\x1aLuint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x8b\x01\n\x07min_len\x18\x02 \x01(\x04\x42r\xc2Ho\nm\n\rbytes.min_len\x1a\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x8a\x01\n\x07max_len\x18\x03 \x01(\x04\x42q\xc2Hn\nl\n\rbytes.max_len\x1a[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x93\x01\n\x07pattern\x18\x04 \x01(\tBy\xc2Hv\nt\n\rbytes.pattern\x1a\x63!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x83\x01\n\x06prefix\x18\x05 \x01(\x0c\x42k\xc2Hh\nf\n\x0c\x62ytes.prefix\x1aV!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x81\x01\n\x06suffix\x18\x06 \x01(\x0c\x42i\xc2Hf\nd\n\x0c\x62ytes.suffix\x1aT!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x87\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42k\xc2Hh\nf\n\x0e\x62ytes.contains\x1aT!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x02in\x18\x08 \x03(\x0c\x42\x94\x01\xc2H\x90\x01\n\x8d\x01\n\x08\x62ytes.in\x1a\x80\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\t \x03(\x0c\x42`\xc2H]\n[\n\x0c\x62ytes.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe9\x01\n\x02ip\x18\n \x01(\x08\x42\xd6\x01\xc2H\xd2\x01\nn\n\x08\x62ytes.ip\x12\x1amust be a valid IP address\x1a\x46!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\x0e\x62ytes.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x1d!rules.ip || this.size() != 0H\x00R\x02ip\x12\xe4\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\n_\n\nbytes.ipv4\x12\x1cmust be a valid IPv4 address\x1a\x33!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\x10\x62ytes.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x1f!rules.ipv4 || this.size() != 0H\x00R\x04ipv4\x12\xe5\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xce\x01\xc2H\xca\x01\n`\n\nbytes.ipv6\x12\x1cmust be a valid IPv6 address\x1a\x34!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\x10\x62ytes.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x1f!rules.ipv6 || this.size() != 0H\x00R\x04ipv6\x12\xd5\x01\n\x04uuid\x18\x0f \x01(\x08\x42\xbe\x01\xc2H\xba\x01\nX\n\nbytes.uuid\x12\x14must be a valid UUID\x1a\x34!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\x10\x62ytes.uuid_empty\x12)value is empty, which is not a valid UUID\x1a\x1f!rules.uuid || this.size() != 0H\x00R\x04uuid\x12\x34\n\x07\x65xample\x18\x0e \x03(\x0c\x42\x1a\xc2H\x17\n\x15\n\rbytes.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xea\x03\n\tEnumRules\x12\x83\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42m\xc2Hj\nh\n\nenum.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12!\n\x0c\x64\x65\x66ined_only\x18\x02 \x01(\x08R\x0b\x64\x65\x66inedOnly\x12|\n\x02in\x18\x03 \x03(\x05\x42l\xc2Hi\ng\n\x07\x65num.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12v\n\x06not_in\x18\x04 \x03(\x05\x42_\xc2H\\\nZ\n\x0b\x65num.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x33\n\x07\x65xample\x18\x05 \x03(\x05\x42\x19\xc2H\x16\n\x14\n\x0c\x65num.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x90\x04\n\rRepeatedRules\x12\xa0\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x82\x01\xc2H\x7f\n}\n\x12repeated.min_items\x1aguint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xa6\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x12repeated.max_items\x1akuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'R\x08maxItems\x12x\n\x06unique\x18\x03 \x01(\x08\x42`\xc2H]\n[\n\x0frepeated.unique\x12(repeated value must contain unique items\x1a\x1e!rules.unique || this.unique()R\x06unique\x12.\n\x05items\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05items*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xac\x03\n\x08MapRules\x12\x99\x01\n\tmin_pairs\x18\x01 \x01(\x04\x42|\xc2Hy\nw\n\rmap.min_pairs\x1a\x66uint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'R\x08minPairs\x12\x98\x01\n\tmax_pairs\x18\x02 \x01(\x04\x42{\xc2Hx\nv\n\rmap.max_pairs\x1a\x65uint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'R\x08maxPairs\x12,\n\x04keys\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x04keys\x12\x30\n\x06values\x18\x05 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x06values*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"1\n\x08\x41nyRules\x12\x0e\n\x02in\x18\x02 \x03(\tR\x02in\x12\x15\n\x06not_in\x18\x03 \x03(\tR\x05notIn\"\xec\x16\n\rDurationRules\x12\xa2\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBq\xc2Hn\nl\n\x0e\x64uration.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa6\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationBy\xc2Hv\nt\n\x0b\x64uration.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb9\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0c\x64uration.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa7\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\xf9\x06\xc2H\xf5\x06\nw\n\x0b\x64uration.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0e\x64uration.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18\x64uration.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0f\x64uration.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf4\x07\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0c\x64uration.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0f\x64uration.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10\x64uration.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x9b\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBp\xc2Hm\nk\n\x0b\x64uration.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x95\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBc\xc2H`\n^\n\x0f\x64uration.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12R\n\x07\x65xample\x18\t \x03(\x0b\x32\x19.google.protobuf.DurationB\x1d\xc2H\x1a\n\x18\n\x10\x64uration.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x86\x06\n\x0e\x46ieldMaskRules\x12\xc0\x01\n\x05\x63onst\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\x10\x66ield_mask.const\x1arthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05\x63onst\x12\xd7\x01\n\x02in\x18\x02 \x03(\tB\xc6\x01\xc2H\xc2\x01\n\xbf\x01\n\rfield_mask.in\x1a\xad\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xf4\x01\n\x06not_in\x18\x03 \x03(\tB\xdc\x01\xc2H\xd8\x01\n\xd5\x01\n\x11\x66ield_mask.not_in\x1a\xbf\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'R\x05notIn\x12U\n\x07\x65xample\x18\x04 \x03(\x0b\x32\x1a.google.protobuf.FieldMaskB\x1f\xc2H\x1c\n\x1a\n\x12\x66ield_mask.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xe8\x17\n\x0eTimestampRules\x12\xa4\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBr\xc2Ho\nm\n\x0ftimestamp.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa8\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBz\xc2Hw\nu\n\x0ctimestamp.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbb\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x8a\x01\xc2H\x86\x01\n\x83\x01\n\rtimestamp.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12m\n\x06lt_now\x18\x07 \x01(\x08\x42T\xc2HQ\nO\n\x10timestamp.lt_now\x1a;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'H\x00R\x05ltNow\x12\xad\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xfe\x06\xc2H\xfa\x06\nx\n\x0ctimestamp.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb1\x01\n\x0ftimestamp.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb9\x01\n\x19timestamp.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc1\x01\n\x10timestamp.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc9\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xfa\x07\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xc9\x07\xc2H\xc5\x07\n\x86\x01\n\rtimestamp.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc0\x01\n\x10timestamp.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc8\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd0\x01\n\x11timestamp.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd8\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12p\n\x06gt_now\x18\x08 \x01(\x08\x42W\xc2HT\nR\n\x10timestamp.gt_now\x1a>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xb9\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x85\x01\xc2H\x81\x01\n\x7f\n\x10timestamp.within\x1akthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'R\x06within\x12T\n\x07\x65xample\x18\n \x03(\x0b\x32\x1a.google.protobuf.TimestampB\x1e\xc2H\x1b\n\x19\n\x11timestamp.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"E\n\nViolations\x12\x37\n\nviolations\x18\x01 \x03(\x0b\x32\x17.buf.validate.ViolationR\nviolations\"\xc5\x01\n\tViolation\x12-\n\x05\x66ield\x18\x05 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x05\x66ield\x12+\n\x04rule\x18\x06 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x04rule\x12\x17\n\x07rule_id\x18\x02 \x01(\tR\x06ruleId\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\x12\x17\n\x07\x66or_key\x18\x04 \x01(\x08R\x06\x66orKeyJ\x04\x08\x01\x10\x02R\nfield_path\"G\n\tFieldPath\x12:\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1e.buf.validate.FieldPathElementR\x08\x65lements\"\xcc\x03\n\x10\x46ieldPathElement\x12!\n\x0c\x66ield_number\x18\x01 \x01(\x05R\x0b\x66ieldNumber\x12\x1d\n\nfield_name\x18\x02 \x01(\tR\tfieldName\x12I\n\nfield_type\x18\x03 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tfieldType\x12\x45\n\x08key_type\x18\x04 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\x07keyType\x12I\n\nvalue_type\x18\x05 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tvalueType\x12\x16\n\x05index\x18\x06 \x01(\x04H\x00R\x05index\x12\x1b\n\x08\x62ool_key\x18\x07 \x01(\x08H\x00R\x07\x62oolKey\x12\x19\n\x07int_key\x18\x08 \x01(\x03H\x00R\x06intKey\x12\x1b\n\x08uint_key\x18\t \x01(\x04H\x00R\x07uintKey\x12\x1f\n\nstring_key\x18\n \x01(\tH\x00R\tstringKeyB\x0b\n\tsubscript*\xa1\x01\n\x06Ignore\x12\x16\n\x12IGNORE_UNSPECIFIED\x10\x00\x12\x18\n\x14IGNORE_IF_ZERO_VALUE\x10\x01\x12\x11\n\rIGNORE_ALWAYS\x10\x03\"\x04\x08\x02\x10\x02*\x0cIGNORE_EMPTY*\x0eIGNORE_DEFAULT*\x17IGNORE_IF_DEFAULT_VALUE*\x15IGNORE_IF_UNPOPULATED*n\n\nKnownRegex\x12\x1b\n\x17KNOWN_REGEX_UNSPECIFIED\x10\x00\x12 \n\x1cKNOWN_REGEX_HTTP_HEADER_NAME\x10\x01\x12!\n\x1dKNOWN_REGEX_HTTP_HEADER_VALUE\x10\x02:V\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x87\t \x01(\x0b\x32\x1a.buf.validate.MessageRulesR\x07message:N\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.OneofRulesR\x05oneof:N\n\x05\x66ield\x12\x1d.google.protobuf.FieldOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05\x66ield:]\n\npredefined\x12\x1d.google.protobuf.FieldOptions\x18\x88\t \x01(\x0b\x32\x1d.buf.validate.PredefinedRulesR\npredefinedBn\n\x12\x62uild.buf.validateB\rValidateProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.validate_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'\n\022build.buf.validateB\rValidateProtoP\001ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate' + _globals['_FLOATRULES'].fields_by_name['const']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013float.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['lt']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['lt']._serialized_options = b'\302H\206\001\n\203\001\n\010float.lt\032w!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['lte']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['lte']._serialized_options = b'\302H\225\001\n\222\001\n\tfloat.lte\032\204\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['gt']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['gt']._serialized_options = b'\302H\275\007\n\206\001\n\010float.gt\032z!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\275\001\n\013float.gt_lt\032\255\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\025float.gt_lt_exclusive\032\255\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\014float.gt_lte\032\274\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\327\001\n\026float.gt_lte_exclusive\032\274\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['gte']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['gte']._serialized_options = b'\302H\210\010\n\225\001\n\tfloat.gte\032\207\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\314\001\n\014float.gte_lt\032\273\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\026float.gte_lt_exclusive\032\273\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\rfloat.gte_lte\032\312\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\346\001\n\027float.gte_lte_exclusive\032\312\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['in']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010float.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014float.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FLOATRULES'].fields_by_name['finite']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['finite']._serialized_options = b'\302H\\\nZ\n\014float.finite\032Jrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'' + _globals['_FLOATRULES'].fields_by_name['example']._loaded_options = None + _globals['_FLOATRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rfloat.example\032\004true' + _globals['_DOUBLERULES'].fields_by_name['const']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014double.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['lt']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['lt']._serialized_options = b'\302H\207\001\n\204\001\n\tdouble.lt\032w!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['lte']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['lte']._serialized_options = b'\302H\226\001\n\223\001\n\ndouble.lte\032\204\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['gt']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['gt']._serialized_options = b'\302H\302\007\n\207\001\n\tdouble.gt\032z!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\276\001\n\014double.gt_lt\032\255\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\310\001\n\026double.gt_lt_exclusive\032\255\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\rdouble.gt_lte\032\274\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\330\001\n\027double.gt_lte_exclusive\032\274\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['gte']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['gte']._serialized_options = b'\302H\215\010\n\226\001\n\ndouble.gte\032\207\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\315\001\n\rdouble.gte_lt\032\273\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\327\001\n\027double.gte_lt_exclusive\032\273\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\016double.gte_lte\032\312\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\347\001\n\030double.gte_lte_exclusive\032\312\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['in']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tdouble.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['not_in']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rdouble.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_DOUBLERULES'].fields_by_name['finite']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['finite']._serialized_options = b'\302H]\n[\n\rdouble.finite\032Jrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'' + _globals['_DOUBLERULES'].fields_by_name['example']._loaded_options = None + _globals['_DOUBLERULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016double.example\032\004true' + _globals['_INT32RULES'].fields_by_name['const']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013int32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_INT32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hs\nq\n\010int32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_INT32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\201\001\n\177\n\tint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\346\006\nt\n\010int32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\255\001\n\013int32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\265\001\n\025int32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\014int32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\305\001\n\026int32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\261\007\n\202\001\n\tint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\274\001\n\014int32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\304\001\n\026int32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\rint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\324\001\n\027int32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_INT32RULES'].fields_by_name['in']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010int32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_INT32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014int32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_INT32RULES'].fields_by_name['example']._loaded_options = None + _globals['_INT32RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint32.example\032\004true' + _globals['_INT64RULES'].fields_by_name['const']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013int64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_INT64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hs\nq\n\010int64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_INT64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\201\001\n\177\n\tint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\346\006\nt\n\010int64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\255\001\n\013int64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\265\001\n\025int64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\014int64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\305\001\n\026int64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\261\007\n\202\001\n\tint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\274\001\n\014int64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\304\001\n\026int64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\rint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\324\001\n\027int64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_INT64RULES'].fields_by_name['in']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010int64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_INT64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014int64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_INT64RULES'].fields_by_name['example']._loaded_options = None + _globals['_INT64RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint64.example\032\004true' + _globals['_UINT32RULES'].fields_by_name['const']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014uint32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tuint32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nuint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tuint32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014uint32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026uint32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\ruint32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027uint32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nuint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\ruint32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027uint32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016uint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030uint32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['in']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tuint32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\ruint32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_UINT32RULES'].fields_by_name['example']._loaded_options = None + _globals['_UINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint32.example\032\004true' + _globals['_UINT64RULES'].fields_by_name['const']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014uint64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tuint64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nuint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tuint64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014uint64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026uint64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\ruint64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027uint64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nuint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\ruint64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027uint64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016uint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030uint64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['in']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tuint64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\ruint64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_UINT64RULES'].fields_by_name['example']._loaded_options = None + _globals['_UINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint64.example\032\004true' + _globals['_SINT32RULES'].fields_by_name['const']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014sint32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tsint32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nsint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tsint32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014sint32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026sint32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\rsint32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027sint32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nsint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\rsint32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027sint32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016sint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030sint32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['in']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tsint32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rsint32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SINT32RULES'].fields_by_name['example']._loaded_options = None + _globals['_SINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint32.example\032\004true' + _globals['_SINT64RULES'].fields_by_name['const']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014sint64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tsint64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nsint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tsint64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014sint64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026sint64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\rsint64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027sint64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nsint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\rsint64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027sint64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016sint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030sint64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['in']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tsint64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rsint64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SINT64RULES'].fields_by_name['example']._loaded_options = None + _globals['_SINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint64.example\032\004true' + _globals['_FIXED32RULES'].fields_by_name['const']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hm\nk\n\rfixed32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302Hu\ns\n\nfixed32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\204\001\n\201\001\n\013fixed32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\360\006\nv\n\nfixed32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\257\001\n\rfixed32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\267\001\n\027fixed32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\016fixed32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\307\001\n\030fixed32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\273\007\n\204\001\n\013fixed32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\276\001\n\016fixed32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\306\001\n\030fixed32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\017fixed32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\326\001\n\031fixed32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['in']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hl\nj\n\nfixed32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302H_\n]\n\016fixed32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FIXED32RULES'].fields_by_name['example']._loaded_options = None + _globals['_FIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed32.example\032\004true' + _globals['_FIXED64RULES'].fields_by_name['const']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hm\nk\n\rfixed64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302Hu\ns\n\nfixed64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\204\001\n\201\001\n\013fixed64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\360\006\nv\n\nfixed64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\257\001\n\rfixed64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\267\001\n\027fixed64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\016fixed64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\307\001\n\030fixed64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\273\007\n\204\001\n\013fixed64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\276\001\n\016fixed64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\306\001\n\030fixed64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\017fixed64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\326\001\n\031fixed64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['in']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hl\nj\n\nfixed64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302H_\n]\n\016fixed64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_FIXED64RULES'].fields_by_name['example']._loaded_options = None + _globals['_FIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed64.example\032\004true' + _globals['_SFIXED32RULES'].fields_by_name['const']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016sfixed32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013sfixed32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014sfixed32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013sfixed32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016sfixed32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030sfixed32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017sfixed32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031sfixed32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014sfixed32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017sfixed32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031sfixed32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020sfixed32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032sfixed32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['in']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013sfixed32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017sfixed32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SFIXED32RULES'].fields_by_name['example']._loaded_options = None + _globals['_SFIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed32.example\032\004true' + _globals['_SFIXED64RULES'].fields_by_name['const']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016sfixed64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['lt']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013sfixed64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['lte']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014sfixed64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['gt']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013sfixed64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016sfixed64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030sfixed64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017sfixed64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031sfixed64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['gte']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014sfixed64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017sfixed64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031sfixed64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020sfixed64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032sfixed64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['in']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013sfixed64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['not_in']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017sfixed64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_SFIXED64RULES'].fields_by_name['example']._loaded_options = None + _globals['_SFIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed64.example\032\004true' + _globals['_BOOLRULES'].fields_by_name['const']._loaded_options = None + _globals['_BOOLRULES'].fields_by_name['const']._serialized_options = b'\302Hj\nh\n\nbool.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_BOOLRULES'].fields_by_name['example']._loaded_options = None + _globals['_BOOLRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014bool.example\032\004true' + _globals['_STRINGRULES'].fields_by_name['const']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\014string.const\032\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['len']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['len']._serialized_options = b'\302Ha\n_\n\nstring.len\032Quint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['min_len']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['min_len']._serialized_options = b'\302Hu\ns\n\016string.min_len\032auint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['max_len']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['max_len']._serialized_options = b'\302Ht\nr\n\016string.max_len\032`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['len_bytes']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['len_bytes']._serialized_options = b'\302Hu\ns\n\020string.len_bytes\032_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['min_bytes']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['min_bytes']._serialized_options = b'\302H}\n{\n\020string.min_bytes\032guint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['max_bytes']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['max_bytes']._serialized_options = b'\302H|\nz\n\020string.max_bytes\032fuint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['pattern']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['pattern']._serialized_options = b'\302Hs\nq\n\016string.pattern\032_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['prefix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['prefix']._serialized_options = b'\302Hk\ni\n\rstring.prefix\032X!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['suffix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['suffix']._serialized_options = b'\302Hi\ng\n\rstring.suffix\032V!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['contains']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['contains']._serialized_options = b'\302Hu\ns\n\017string.contains\032`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['not_contains']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['not_contains']._serialized_options = b'\302Hx\nv\n\023string.not_contains\032_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['in']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tstring.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rstring.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_STRINGRULES'].fields_by_name['email']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['email']._serialized_options = b'\302H\303\001\n[\n\014string.email\022\035must be a valid email address\032,!rules.email || this == \'\' || this.isEmail()\nd\n\022string.email_empty\0222value is empty, which is not a valid email address\032\032!rules.email || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['hostname']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['hostname']._serialized_options = b'\302H\310\001\n_\n\017string.hostname\022\030must be a valid hostname\0322!rules.hostname || this == \'\' || this.isHostname()\ne\n\025string.hostname_empty\022-value is empty, which is not a valid hostname\032\035!rules.hostname || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ip']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ip']._serialized_options = b'\302H\256\001\nO\n\tstring.ip\022\032must be a valid IP address\032&!rules.ip || this == \'\' || this.isIp()\n[\n\017string.ip_empty\022/value is empty, which is not a valid IP address\032\027!rules.ip || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv4']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\273\001\nV\n\013string.ipv4\022\034must be a valid IPv4 address\032)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\021string.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\031!rules.ipv4 || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv6']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\273\001\nV\n\013string.ipv6\022\034must be a valid IPv6 address\032)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\021string.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\031!rules.ipv6 || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['uri']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['uri']._serialized_options = b'\302H\245\001\nK\n\nstring.uri\022\023must be a valid URI\032(!rules.uri || this == \'\' || this.isUri()\nV\n\020string.uri_empty\022(value is empty, which is not a valid URI\032\030!rules.uri || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['uri_ref']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['uri_ref']._serialized_options = b'\302HT\nR\n\016string.uri_ref\022\035must be a valid URI Reference\032!!rules.uri_ref || this.isUriRef()' + _globals['_STRINGRULES'].fields_by_name['address']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['address']._serialized_options = b'\302H\361\001\n{\n\016string.address\022\'must be a valid hostname, or ip address\032@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\024string.address_empty\022!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\222\001\n string.ipv4_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv4 address with prefix length\032(!rules.ipv4_with_prefixlen || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._serialized_options = b'\302H\245\002\n\215\001\n\032string.ipv6_with_prefixlen\022/must be a valid IPv6 address with prefix length\032>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\222\001\n string.ipv6_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv6 address with prefix length\032(!rules.ipv6_with_prefixlen || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ip_prefix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ip_prefix']._serialized_options = b'\302H\322\001\nf\n\020string.ip_prefix\022\031must be a valid IP prefix\0327!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\026string.ip_prefix_empty\022.value is empty, which is not a valid IP prefix\032\036!rules.ip_prefix || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._serialized_options = b'\302H\341\001\no\n\022string.ipv4_prefix\022\033must be a valid IPv4 prefix\032!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\032string.host_and_port_empty\0227value is empty, which is not a valid host and port pair\032\"!rules.host_and_port || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['ulid']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['ulid']._serialized_options = b'\302H\331\001\n|\n\013string.ulid\022\024must be a valid ULID\032W!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\021string.ulid_empty\022)value is empty, which is not a valid ULID\032\031!rules.ulid || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['protobuf_fqn']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['protobuf_fqn']._serialized_options = b'\302H\267\002\n\257\001\n\023string.protobuf_fqn\022-must be a valid fully-qualified Protobuf name\032i!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\202\001\n\031string.protobuf_fqn_empty\022Bvalue is empty, which is not a valid fully-qualified Protobuf name\032!!rules.protobuf_fqn || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['protobuf_dot_fqn']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['protobuf_dot_fqn']._serialized_options = b'\302H\360\002\n\315\001\n\027string.protobuf_dot_fqn\022@must be a valid fully-qualified Protobuf name with a leading dot\032p!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\235\001\n\035string.protobuf_dot_fqn_empty\022Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\032%!rules.protobuf_dot_fqn || this != \'\'' + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\341\004\n\352\001\n#string.well_known_regex.header_name\022 must be a valid HTTP header name\032\240\001rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\215\001\n)string.well_known_regex.header_name_empty\0225value is empty, which is not a valid HTTP header name\032)rules.well_known_regex != 1 || this != \'\'\n\341\001\n$string.well_known_regex.header_value\022!must be a valid HTTP header value\032\225\001rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')' + _globals['_STRINGRULES'].fields_by_name['example']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016string.example\032\004true' + _globals['_BYTESRULES'].fields_by_name['const']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['const']._serialized_options = b'\302Hh\nf\n\013bytes.const\032Wthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['len']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['len']._serialized_options = b'\302H[\nY\n\tbytes.len\032Luint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['min_len']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['min_len']._serialized_options = b'\302Ho\nm\n\rbytes.min_len\032\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['max_len']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['max_len']._serialized_options = b'\302Hn\nl\n\rbytes.max_len\032[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['pattern']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['pattern']._serialized_options = b'\302Hv\nt\n\rbytes.pattern\032c!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['prefix']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['prefix']._serialized_options = b'\302Hh\nf\n\014bytes.prefix\032V!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['suffix']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['suffix']._serialized_options = b'\302Hf\nd\n\014bytes.suffix\032T!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['contains']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['contains']._serialized_options = b'\302Hh\nf\n\016bytes.contains\032T!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['in']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['in']._serialized_options = b'\302H\220\001\n\215\001\n\010bytes.in\032\200\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014bytes.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_BYTESRULES'].fields_by_name['ip']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['ip']._serialized_options = b'\302H\322\001\nn\n\010bytes.ip\022\032must be a valid IP address\032F!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\016bytes.ip_empty\022/value is empty, which is not a valid IP address\032\035!rules.ip || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['ipv4']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\311\001\n_\n\nbytes.ipv4\022\034must be a valid IPv4 address\0323!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\020bytes.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\037!rules.ipv4 || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['ipv6']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\312\001\n`\n\nbytes.ipv6\022\034must be a valid IPv6 address\0324!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\020bytes.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\037!rules.ipv6 || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['uuid']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['uuid']._serialized_options = b'\302H\272\001\nX\n\nbytes.uuid\022\024must be a valid UUID\0324!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\020bytes.uuid_empty\022)value is empty, which is not a valid UUID\032\037!rules.uuid || this.size() != 0' + _globals['_BYTESRULES'].fields_by_name['example']._loaded_options = None + _globals['_BYTESRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rbytes.example\032\004true' + _globals['_ENUMRULES'].fields_by_name['const']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['const']._serialized_options = b'\302Hj\nh\n\nenum.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_ENUMRULES'].fields_by_name['in']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['in']._serialized_options = b'\302Hi\ng\n\007enum.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_ENUMRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['not_in']._serialized_options = b'\302H\\\nZ\n\013enum.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_ENUMRULES'].fields_by_name['example']._loaded_options = None + _globals['_ENUMRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014enum.example\032\004true' + _globals['_REPEATEDRULES'].fields_by_name['min_items']._loaded_options = None + _globals['_REPEATEDRULES'].fields_by_name['min_items']._serialized_options = b'\302H\177\n}\n\022repeated.min_items\032guint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'' + _globals['_REPEATEDRULES'].fields_by_name['max_items']._loaded_options = None + _globals['_REPEATEDRULES'].fields_by_name['max_items']._serialized_options = b'\302H\204\001\n\201\001\n\022repeated.max_items\032kuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'' + _globals['_REPEATEDRULES'].fields_by_name['unique']._loaded_options = None + _globals['_REPEATEDRULES'].fields_by_name['unique']._serialized_options = b'\302H]\n[\n\017repeated.unique\022(repeated value must contain unique items\032\036!rules.unique || this.unique()' + _globals['_MAPRULES'].fields_by_name['min_pairs']._loaded_options = None + _globals['_MAPRULES'].fields_by_name['min_pairs']._serialized_options = b'\302Hy\nw\n\rmap.min_pairs\032fuint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'' + _globals['_MAPRULES'].fields_by_name['max_pairs']._loaded_options = None + _globals['_MAPRULES'].fields_by_name['max_pairs']._serialized_options = b'\302Hx\nv\n\rmap.max_pairs\032euint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['const']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016duration.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['lt']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013duration.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['lte']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014duration.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['gt']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013duration.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016duration.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030duration.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017duration.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031duration.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['gte']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014duration.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017duration.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031duration.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020duration.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032duration.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['in']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013duration.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017duration.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' + _globals['_DURATIONRULES'].fields_by_name['example']._loaded_options = None + _globals['_DURATIONRULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020duration.example\032\004true' + _globals['_FIELDMASKRULES'].fields_by_name['const']._loaded_options = None + _globals['_FIELDMASKRULES'].fields_by_name['const']._serialized_options = b'\302H\211\001\n\206\001\n\020field_mask.const\032rthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'' + _globals['_FIELDMASKRULES'].fields_by_name['in']._loaded_options = None + _globals['_FIELDMASKRULES'].fields_by_name['in']._serialized_options = b'\302H\302\001\n\277\001\n\rfield_mask.in\032\255\001!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'' + _globals['_FIELDMASKRULES'].fields_by_name['not_in']._loaded_options = None + _globals['_FIELDMASKRULES'].fields_by_name['not_in']._serialized_options = b'\302H\330\001\n\325\001\n\021field_mask.not_in\032\277\001!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'' + _globals['_FIELDMASKRULES'].fields_by_name['example']._loaded_options = None + _globals['_FIELDMASKRULES'].fields_by_name['example']._serialized_options = b'\302H\034\n\032\n\022field_mask.example\032\004true' + _globals['_TIMESTAMPRULES'].fields_by_name['const']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['const']._serialized_options = b'\302Ho\nm\n\017timestamp.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lt']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lt']._serialized_options = b'\302Hw\nu\n\014timestamp.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lte']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lte']._serialized_options = b'\302H\206\001\n\203\001\n\rtimestamp.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._serialized_options = b'\302HQ\nO\n\020timestamp.lt_now\032;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\372\006\nx\n\014timestamp.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\261\001\n\017timestamp.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\271\001\n\031timestamp.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\301\001\n\020timestamp.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\311\001\n\032timestamp.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gte']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gte']._serialized_options = b'\302H\305\007\n\206\001\n\rtimestamp.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\300\001\n\020timestamp.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\310\001\n\032timestamp.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\320\001\n\021timestamp.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\330\001\n\033timestamp.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._serialized_options = b'\302HT\nR\n\020timestamp.gt_now\032>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\201\001\n\177\n\020timestamp.within\032kthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['example']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['example']._serialized_options = b'\302H\033\n\031\n\021timestamp.example\032\004true' + _globals['_IGNORE']._serialized_start=54642 + _globals['_IGNORE']._serialized_end=54803 + _globals['_KNOWNREGEX']._serialized_start=54805 + _globals['_KNOWNREGEX']._serialized_end=54915 + _globals['_RULE']._serialized_start=178 + _globals['_RULE']._serialized_end=258 + _globals['_MESSAGERULES']._serialized_start=261 + _globals['_MESSAGERULES']._serialized_end=422 + _globals['_MESSAGEONEOFRULE']._serialized_start=424 + _globals['_MESSAGEONEOFRULE']._serialized_end=494 + _globals['_ONEOFRULES']._serialized_start=496 + _globals['_ONEOFRULES']._serialized_end=536 + _globals['_FIELDRULES']._serialized_start=539 + _globals['_FIELDRULES']._serialized_end=1918 + _globals['_PREDEFINEDRULES']._serialized_start=1920 + _globals['_PREDEFINEDRULES']._serialized_end=2010 + _globals['_FLOATRULES']._serialized_start=2013 + _globals['_FLOATRULES']._serialized_end=5003 + _globals['_DOUBLERULES']._serialized_start=5006 + _globals['_DOUBLERULES']._serialized_end=8014 + _globals['_INT32RULES']._serialized_start=8017 + _globals['_INT32RULES']._serialized_end=10671 + _globals['_INT64RULES']._serialized_start=10674 + _globals['_INT64RULES']._serialized_end=13328 + _globals['_UINT32RULES']._serialized_start=13331 + _globals['_UINT32RULES']._serialized_end=16003 + _globals['_UINT64RULES']._serialized_start=16006 + _globals['_UINT64RULES']._serialized_end=18678 + _globals['_SINT32RULES']._serialized_start=18681 + _globals['_SINT32RULES']._serialized_end=21353 + _globals['_SINT64RULES']._serialized_start=21356 + _globals['_SINT64RULES']._serialized_end=24028 + _globals['_FIXED32RULES']._serialized_start=24031 + _globals['_FIXED32RULES']._serialized_end=26720 + _globals['_FIXED64RULES']._serialized_start=26723 + _globals['_FIXED64RULES']._serialized_end=29412 + _globals['_SFIXED32RULES']._serialized_start=29415 + _globals['_SFIXED32RULES']._serialized_end=32122 + _globals['_SFIXED64RULES']._serialized_start=32125 + _globals['_SFIXED64RULES']._serialized_end=34832 + _globals['_BOOLRULES']._serialized_start=34835 + _globals['_BOOLRULES']._serialized_end=35044 + _globals['_STRINGRULES']._serialized_start=35047 + _globals['_STRINGRULES']._serialized_end=43190 + _globals['_BYTESRULES']._serialized_start=43193 + _globals['_BYTESRULES']._serialized_end=45571 + _globals['_ENUMRULES']._serialized_start=45574 + _globals['_ENUMRULES']._serialized_end=46064 + _globals['_REPEATEDRULES']._serialized_start=46067 + _globals['_REPEATEDRULES']._serialized_end=46595 + _globals['_MAPRULES']._serialized_start=46598 + _globals['_MAPRULES']._serialized_end=47026 + _globals['_ANYRULES']._serialized_start=47028 + _globals['_ANYRULES']._serialized_end=47077 + _globals['_DURATIONRULES']._serialized_start=47080 + _globals['_DURATIONRULES']._serialized_end=50004 + _globals['_FIELDMASKRULES']._serialized_start=50007 + _globals['_FIELDMASKRULES']._serialized_end=50781 + _globals['_TIMESTAMPRULES']._serialized_start=50784 + _globals['_TIMESTAMPRULES']._serialized_end=53832 + _globals['_VIOLATIONS']._serialized_start=53834 + _globals['_VIOLATIONS']._serialized_end=53903 + _globals['_VIOLATION']._serialized_start=53906 + _globals['_VIOLATION']._serialized_end=54103 + _globals['_FIELDPATH']._serialized_start=54105 + _globals['_FIELDPATH']._serialized_end=54176 + _globals['_FIELDPATHELEMENT']._serialized_start=54179 + _globals['_FIELDPATHELEMENT']._serialized_end=54639 +# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi new file mode 100644 index 00000000..4c4c3770 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi @@ -0,0 +1,654 @@ +import datetime + +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf import duration_pb2 as _duration_pb2 +from google.protobuf import field_mask_pb2 as _field_mask_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +from google.protobuf.internal import python_message as _python_message +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from collections.abc import Iterable as _Iterable, Mapping as _Mapping +from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union + +DESCRIPTOR: _descriptor.FileDescriptor + +class Ignore(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + IGNORE_UNSPECIFIED: _ClassVar[Ignore] + IGNORE_IF_ZERO_VALUE: _ClassVar[Ignore] + IGNORE_ALWAYS: _ClassVar[Ignore] + +class KnownRegex(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + KNOWN_REGEX_UNSPECIFIED: _ClassVar[KnownRegex] + KNOWN_REGEX_HTTP_HEADER_NAME: _ClassVar[KnownRegex] + KNOWN_REGEX_HTTP_HEADER_VALUE: _ClassVar[KnownRegex] +IGNORE_UNSPECIFIED: Ignore +IGNORE_IF_ZERO_VALUE: Ignore +IGNORE_ALWAYS: Ignore +KNOWN_REGEX_UNSPECIFIED: KnownRegex +KNOWN_REGEX_HTTP_HEADER_NAME: KnownRegex +KNOWN_REGEX_HTTP_HEADER_VALUE: KnownRegex +MESSAGE_FIELD_NUMBER: _ClassVar[int] +message: _descriptor.FieldDescriptor +ONEOF_FIELD_NUMBER: _ClassVar[int] +oneof: _descriptor.FieldDescriptor +FIELD_FIELD_NUMBER: _ClassVar[int] +field: _descriptor.FieldDescriptor +PREDEFINED_FIELD_NUMBER: _ClassVar[int] +predefined: _descriptor.FieldDescriptor + +class Rule(_message.Message): + __slots__ = ("id", "message", "expression") + ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + EXPRESSION_FIELD_NUMBER: _ClassVar[int] + id: str + message: str + expression: str + def __init__(self, id: _Optional[str] = ..., message: _Optional[str] = ..., expression: _Optional[str] = ...) -> None: ... + +class MessageRules(_message.Message): + __slots__ = ("cel_expression", "cel", "oneof") + CEL_EXPRESSION_FIELD_NUMBER: _ClassVar[int] + CEL_FIELD_NUMBER: _ClassVar[int] + ONEOF_FIELD_NUMBER: _ClassVar[int] + cel_expression: _containers.RepeatedScalarFieldContainer[str] + cel: _containers.RepeatedCompositeFieldContainer[Rule] + oneof: _containers.RepeatedCompositeFieldContainer[MessageOneofRule] + def __init__(self, cel_expression: _Optional[_Iterable[str]] = ..., cel: _Optional[_Iterable[_Union[Rule, _Mapping]]] = ..., oneof: _Optional[_Iterable[_Union[MessageOneofRule, _Mapping]]] = ...) -> None: ... + +class MessageOneofRule(_message.Message): + __slots__ = ("fields", "required") + FIELDS_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + fields: _containers.RepeatedScalarFieldContainer[str] + required: bool + def __init__(self, fields: _Optional[_Iterable[str]] = ..., required: _Optional[bool] = ...) -> None: ... + +class OneofRules(_message.Message): + __slots__ = ("required",) + REQUIRED_FIELD_NUMBER: _ClassVar[int] + required: bool + def __init__(self, required: _Optional[bool] = ...) -> None: ... + +class FieldRules(_message.Message): + __slots__ = ("cel_expression", "cel", "required", "ignore", "float", "double", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes", "enum", "repeated", "map", "any", "duration", "field_mask", "timestamp") + CEL_EXPRESSION_FIELD_NUMBER: _ClassVar[int] + CEL_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + IGNORE_FIELD_NUMBER: _ClassVar[int] + FLOAT_FIELD_NUMBER: _ClassVar[int] + DOUBLE_FIELD_NUMBER: _ClassVar[int] + INT32_FIELD_NUMBER: _ClassVar[int] + INT64_FIELD_NUMBER: _ClassVar[int] + UINT32_FIELD_NUMBER: _ClassVar[int] + UINT64_FIELD_NUMBER: _ClassVar[int] + SINT32_FIELD_NUMBER: _ClassVar[int] + SINT64_FIELD_NUMBER: _ClassVar[int] + FIXED32_FIELD_NUMBER: _ClassVar[int] + FIXED64_FIELD_NUMBER: _ClassVar[int] + SFIXED32_FIELD_NUMBER: _ClassVar[int] + SFIXED64_FIELD_NUMBER: _ClassVar[int] + BOOL_FIELD_NUMBER: _ClassVar[int] + STRING_FIELD_NUMBER: _ClassVar[int] + BYTES_FIELD_NUMBER: _ClassVar[int] + ENUM_FIELD_NUMBER: _ClassVar[int] + REPEATED_FIELD_NUMBER: _ClassVar[int] + MAP_FIELD_NUMBER: _ClassVar[int] + ANY_FIELD_NUMBER: _ClassVar[int] + DURATION_FIELD_NUMBER: _ClassVar[int] + FIELD_MASK_FIELD_NUMBER: _ClassVar[int] + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + cel_expression: _containers.RepeatedScalarFieldContainer[str] + cel: _containers.RepeatedCompositeFieldContainer[Rule] + required: bool + ignore: Ignore + float: FloatRules + double: DoubleRules + int32: Int32Rules + int64: Int64Rules + uint32: UInt32Rules + uint64: UInt64Rules + sint32: SInt32Rules + sint64: SInt64Rules + fixed32: Fixed32Rules + fixed64: Fixed64Rules + sfixed32: SFixed32Rules + sfixed64: SFixed64Rules + bool: BoolRules + string: StringRules + bytes: BytesRules + enum: EnumRules + repeated: RepeatedRules + map: MapRules + any: AnyRules + duration: DurationRules + field_mask: FieldMaskRules + timestamp: TimestampRules + def __init__(self, cel_expression: _Optional[_Iterable[str]] = ..., cel: _Optional[_Iterable[_Union[Rule, _Mapping]]] = ..., required: _Optional[bool] = ..., ignore: _Optional[_Union[Ignore, str]] = ..., float: _Optional[_Union[FloatRules, _Mapping]] = ..., double: _Optional[_Union[DoubleRules, _Mapping]] = ..., int32: _Optional[_Union[Int32Rules, _Mapping]] = ..., int64: _Optional[_Union[Int64Rules, _Mapping]] = ..., uint32: _Optional[_Union[UInt32Rules, _Mapping]] = ..., uint64: _Optional[_Union[UInt64Rules, _Mapping]] = ..., sint32: _Optional[_Union[SInt32Rules, _Mapping]] = ..., sint64: _Optional[_Union[SInt64Rules, _Mapping]] = ..., fixed32: _Optional[_Union[Fixed32Rules, _Mapping]] = ..., fixed64: _Optional[_Union[Fixed64Rules, _Mapping]] = ..., sfixed32: _Optional[_Union[SFixed32Rules, _Mapping]] = ..., sfixed64: _Optional[_Union[SFixed64Rules, _Mapping]] = ..., bool: _Optional[_Union[BoolRules, _Mapping]] = ..., string: _Optional[_Union[StringRules, _Mapping]] = ..., bytes: _Optional[_Union[BytesRules, _Mapping]] = ..., enum: _Optional[_Union[EnumRules, _Mapping]] = ..., repeated: _Optional[_Union[RepeatedRules, _Mapping]] = ..., map: _Optional[_Union[MapRules, _Mapping]] = ..., any: _Optional[_Union[AnyRules, _Mapping]] = ..., duration: _Optional[_Union[DurationRules, _Mapping]] = ..., field_mask: _Optional[_Union[FieldMaskRules, _Mapping]] = ..., timestamp: _Optional[_Union[TimestampRules, _Mapping]] = ...) -> None: ... + +class PredefinedRules(_message.Message): + __slots__ = ("cel",) + CEL_FIELD_NUMBER: _ClassVar[int] + cel: _containers.RepeatedCompositeFieldContainer[Rule] + def __init__(self, cel: _Optional[_Iterable[_Union[Rule, _Mapping]]] = ...) -> None: ... + +class FloatRules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "finite", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + FINITE_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: float + lt: float + lte: float + gt: float + gte: float + not_in: _containers.RepeatedScalarFieldContainer[float] + finite: bool + example: _containers.RepeatedScalarFieldContainer[float] + def __init__(self, const: _Optional[float] = ..., lt: _Optional[float] = ..., lte: _Optional[float] = ..., gt: _Optional[float] = ..., gte: _Optional[float] = ..., not_in: _Optional[_Iterable[float]] = ..., finite: _Optional[bool] = ..., example: _Optional[_Iterable[float]] = ..., **kwargs) -> None: ... + +class DoubleRules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "finite", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + FINITE_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: float + lt: float + lte: float + gt: float + gte: float + not_in: _containers.RepeatedScalarFieldContainer[float] + finite: bool + example: _containers.RepeatedScalarFieldContainer[float] + def __init__(self, const: _Optional[float] = ..., lt: _Optional[float] = ..., lte: _Optional[float] = ..., gt: _Optional[float] = ..., gte: _Optional[float] = ..., not_in: _Optional[_Iterable[float]] = ..., finite: _Optional[bool] = ..., example: _Optional[_Iterable[float]] = ..., **kwargs) -> None: ... + +class Int32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class Int64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class UInt32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class UInt64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SInt32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SInt64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class Fixed32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class Fixed64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SFixed32Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class SFixed64Rules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + lt: int + lte: int + gt: int + gte: int + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class BoolRules(_message.Message): + __slots__ = ("const", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: bool + example: _containers.RepeatedScalarFieldContainer[bool] + def __init__(self, const: _Optional[bool] = ..., example: _Optional[_Iterable[bool]] = ...) -> None: ... + +class StringRules(_message.Message): + __slots__ = ("const", "len", "min_len", "max_len", "len_bytes", "min_bytes", "max_bytes", "pattern", "prefix", "suffix", "contains", "not_contains", "not_in", "email", "hostname", "ip", "ipv4", "ipv6", "uri", "uri_ref", "address", "uuid", "tuuid", "ip_with_prefixlen", "ipv4_with_prefixlen", "ipv6_with_prefixlen", "ip_prefix", "ipv4_prefix", "ipv6_prefix", "host_and_port", "ulid", "protobuf_fqn", "protobuf_dot_fqn", "well_known_regex", "strict", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LEN_FIELD_NUMBER: _ClassVar[int] + MIN_LEN_FIELD_NUMBER: _ClassVar[int] + MAX_LEN_FIELD_NUMBER: _ClassVar[int] + LEN_BYTES_FIELD_NUMBER: _ClassVar[int] + MIN_BYTES_FIELD_NUMBER: _ClassVar[int] + MAX_BYTES_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + PREFIX_FIELD_NUMBER: _ClassVar[int] + SUFFIX_FIELD_NUMBER: _ClassVar[int] + CONTAINS_FIELD_NUMBER: _ClassVar[int] + NOT_CONTAINS_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EMAIL_FIELD_NUMBER: _ClassVar[int] + HOSTNAME_FIELD_NUMBER: _ClassVar[int] + IP_FIELD_NUMBER: _ClassVar[int] + IPV4_FIELD_NUMBER: _ClassVar[int] + IPV6_FIELD_NUMBER: _ClassVar[int] + URI_FIELD_NUMBER: _ClassVar[int] + URI_REF_FIELD_NUMBER: _ClassVar[int] + ADDRESS_FIELD_NUMBER: _ClassVar[int] + UUID_FIELD_NUMBER: _ClassVar[int] + TUUID_FIELD_NUMBER: _ClassVar[int] + IP_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] + IPV4_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] + IPV6_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] + IP_PREFIX_FIELD_NUMBER: _ClassVar[int] + IPV4_PREFIX_FIELD_NUMBER: _ClassVar[int] + IPV6_PREFIX_FIELD_NUMBER: _ClassVar[int] + HOST_AND_PORT_FIELD_NUMBER: _ClassVar[int] + ULID_FIELD_NUMBER: _ClassVar[int] + PROTOBUF_FQN_FIELD_NUMBER: _ClassVar[int] + PROTOBUF_DOT_FQN_FIELD_NUMBER: _ClassVar[int] + WELL_KNOWN_REGEX_FIELD_NUMBER: _ClassVar[int] + STRICT_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: str + len: int + min_len: int + max_len: int + len_bytes: int + min_bytes: int + max_bytes: int + pattern: str + prefix: str + suffix: str + contains: str + not_contains: str + not_in: _containers.RepeatedScalarFieldContainer[str] + email: bool + hostname: bool + ip: bool + ipv4: bool + ipv6: bool + uri: bool + uri_ref: bool + address: bool + uuid: bool + tuuid: bool + ip_with_prefixlen: bool + ipv4_with_prefixlen: bool + ipv6_with_prefixlen: bool + ip_prefix: bool + ipv4_prefix: bool + ipv6_prefix: bool + host_and_port: bool + ulid: bool + protobuf_fqn: bool + protobuf_dot_fqn: bool + well_known_regex: KnownRegex + strict: bool + example: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, const: _Optional[str] = ..., len: _Optional[int] = ..., min_len: _Optional[int] = ..., max_len: _Optional[int] = ..., len_bytes: _Optional[int] = ..., min_bytes: _Optional[int] = ..., max_bytes: _Optional[int] = ..., pattern: _Optional[str] = ..., prefix: _Optional[str] = ..., suffix: _Optional[str] = ..., contains: _Optional[str] = ..., not_contains: _Optional[str] = ..., not_in: _Optional[_Iterable[str]] = ..., email: _Optional[bool] = ..., hostname: _Optional[bool] = ..., ip: _Optional[bool] = ..., ipv4: _Optional[bool] = ..., ipv6: _Optional[bool] = ..., uri: _Optional[bool] = ..., uri_ref: _Optional[bool] = ..., address: _Optional[bool] = ..., uuid: _Optional[bool] = ..., tuuid: _Optional[bool] = ..., ip_with_prefixlen: _Optional[bool] = ..., ipv4_with_prefixlen: _Optional[bool] = ..., ipv6_with_prefixlen: _Optional[bool] = ..., ip_prefix: _Optional[bool] = ..., ipv4_prefix: _Optional[bool] = ..., ipv6_prefix: _Optional[bool] = ..., host_and_port: _Optional[bool] = ..., ulid: _Optional[bool] = ..., protobuf_fqn: _Optional[bool] = ..., protobuf_dot_fqn: _Optional[bool] = ..., well_known_regex: _Optional[_Union[KnownRegex, str]] = ..., strict: _Optional[bool] = ..., example: _Optional[_Iterable[str]] = ..., **kwargs) -> None: ... + +class BytesRules(_message.Message): + __slots__ = ("const", "len", "min_len", "max_len", "pattern", "prefix", "suffix", "contains", "not_in", "ip", "ipv4", "ipv6", "uuid", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LEN_FIELD_NUMBER: _ClassVar[int] + MIN_LEN_FIELD_NUMBER: _ClassVar[int] + MAX_LEN_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + PREFIX_FIELD_NUMBER: _ClassVar[int] + SUFFIX_FIELD_NUMBER: _ClassVar[int] + CONTAINS_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + IP_FIELD_NUMBER: _ClassVar[int] + IPV4_FIELD_NUMBER: _ClassVar[int] + IPV6_FIELD_NUMBER: _ClassVar[int] + UUID_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: bytes + len: int + min_len: int + max_len: int + pattern: str + prefix: bytes + suffix: bytes + contains: bytes + not_in: _containers.RepeatedScalarFieldContainer[bytes] + ip: bool + ipv4: bool + ipv6: bool + uuid: bool + example: _containers.RepeatedScalarFieldContainer[bytes] + def __init__(self, const: _Optional[bytes] = ..., len: _Optional[int] = ..., min_len: _Optional[int] = ..., max_len: _Optional[int] = ..., pattern: _Optional[str] = ..., prefix: _Optional[bytes] = ..., suffix: _Optional[bytes] = ..., contains: _Optional[bytes] = ..., not_in: _Optional[_Iterable[bytes]] = ..., ip: _Optional[bool] = ..., ipv4: _Optional[bool] = ..., ipv6: _Optional[bool] = ..., uuid: _Optional[bool] = ..., example: _Optional[_Iterable[bytes]] = ..., **kwargs) -> None: ... + +class EnumRules(_message.Message): + __slots__ = ("const", "defined_only", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + DEFINED_ONLY_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: int + defined_only: bool + not_in: _containers.RepeatedScalarFieldContainer[int] + example: _containers.RepeatedScalarFieldContainer[int] + def __init__(self, const: _Optional[int] = ..., defined_only: _Optional[bool] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... + +class RepeatedRules(_message.Message): + __slots__ = ("min_items", "max_items", "unique", "items") + Extensions: _python_message._ExtensionDict + MIN_ITEMS_FIELD_NUMBER: _ClassVar[int] + MAX_ITEMS_FIELD_NUMBER: _ClassVar[int] + UNIQUE_FIELD_NUMBER: _ClassVar[int] + ITEMS_FIELD_NUMBER: _ClassVar[int] + min_items: int + max_items: int + unique: bool + items: FieldRules + def __init__(self, min_items: _Optional[int] = ..., max_items: _Optional[int] = ..., unique: _Optional[bool] = ..., items: _Optional[_Union[FieldRules, _Mapping]] = ...) -> None: ... + +class MapRules(_message.Message): + __slots__ = ("min_pairs", "max_pairs", "keys", "values") + Extensions: _python_message._ExtensionDict + MIN_PAIRS_FIELD_NUMBER: _ClassVar[int] + MAX_PAIRS_FIELD_NUMBER: _ClassVar[int] + KEYS_FIELD_NUMBER: _ClassVar[int] + VALUES_FIELD_NUMBER: _ClassVar[int] + min_pairs: int + max_pairs: int + keys: FieldRules + values: FieldRules + def __init__(self, min_pairs: _Optional[int] = ..., max_pairs: _Optional[int] = ..., keys: _Optional[_Union[FieldRules, _Mapping]] = ..., values: _Optional[_Union[FieldRules, _Mapping]] = ...) -> None: ... + +class AnyRules(_message.Message): + __slots__ = ("not_in",) + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + not_in: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, not_in: _Optional[_Iterable[str]] = ..., **kwargs) -> None: ... + +class DurationRules(_message.Message): + __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: _duration_pb2.Duration + lt: _duration_pb2.Duration + lte: _duration_pb2.Duration + gt: _duration_pb2.Duration + gte: _duration_pb2.Duration + not_in: _containers.RepeatedCompositeFieldContainer[_duration_pb2.Duration] + example: _containers.RepeatedCompositeFieldContainer[_duration_pb2.Duration] + def __init__(self, const: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., lt: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., lte: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., gt: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., gte: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., not_in: _Optional[_Iterable[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]]] = ..., example: _Optional[_Iterable[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]]] = ..., **kwargs) -> None: ... + +class FieldMaskRules(_message.Message): + __slots__ = ("const", "not_in", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + IN_FIELD_NUMBER: _ClassVar[int] + NOT_IN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: _field_mask_pb2.FieldMask + not_in: _containers.RepeatedScalarFieldContainer[str] + example: _containers.RepeatedCompositeFieldContainer[_field_mask_pb2.FieldMask] + def __init__(self, const: _Optional[_Union[_field_mask_pb2.FieldMask, _Mapping]] = ..., not_in: _Optional[_Iterable[str]] = ..., example: _Optional[_Iterable[_Union[_field_mask_pb2.FieldMask, _Mapping]]] = ..., **kwargs) -> None: ... + +class TimestampRules(_message.Message): + __slots__ = ("const", "lt", "lte", "lt_now", "gt", "gte", "gt_now", "within", "example") + Extensions: _python_message._ExtensionDict + CONST_FIELD_NUMBER: _ClassVar[int] + LT_FIELD_NUMBER: _ClassVar[int] + LTE_FIELD_NUMBER: _ClassVar[int] + LT_NOW_FIELD_NUMBER: _ClassVar[int] + GT_FIELD_NUMBER: _ClassVar[int] + GTE_FIELD_NUMBER: _ClassVar[int] + GT_NOW_FIELD_NUMBER: _ClassVar[int] + WITHIN_FIELD_NUMBER: _ClassVar[int] + EXAMPLE_FIELD_NUMBER: _ClassVar[int] + const: _timestamp_pb2.Timestamp + lt: _timestamp_pb2.Timestamp + lte: _timestamp_pb2.Timestamp + lt_now: bool + gt: _timestamp_pb2.Timestamp + gte: _timestamp_pb2.Timestamp + gt_now: bool + within: _duration_pb2.Duration + example: _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp] + def __init__(self, const: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., lt: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., lte: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., lt_now: _Optional[bool] = ..., gt: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., gte: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., gt_now: _Optional[bool] = ..., within: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., example: _Optional[_Iterable[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]] = ...) -> None: ... + +class Violations(_message.Message): + __slots__ = ("violations",) + VIOLATIONS_FIELD_NUMBER: _ClassVar[int] + violations: _containers.RepeatedCompositeFieldContainer[Violation] + def __init__(self, violations: _Optional[_Iterable[_Union[Violation, _Mapping]]] = ...) -> None: ... + +class Violation(_message.Message): + __slots__ = ("field", "rule", "rule_id", "message", "for_key") + FIELD_FIELD_NUMBER: _ClassVar[int] + RULE_FIELD_NUMBER: _ClassVar[int] + RULE_ID_FIELD_NUMBER: _ClassVar[int] + MESSAGE_FIELD_NUMBER: _ClassVar[int] + FOR_KEY_FIELD_NUMBER: _ClassVar[int] + field: FieldPath + rule: FieldPath + rule_id: str + message: str + for_key: bool + def __init__(self, field: _Optional[_Union[FieldPath, _Mapping]] = ..., rule: _Optional[_Union[FieldPath, _Mapping]] = ..., rule_id: _Optional[str] = ..., message: _Optional[str] = ..., for_key: _Optional[bool] = ...) -> None: ... + +class FieldPath(_message.Message): + __slots__ = ("elements",) + ELEMENTS_FIELD_NUMBER: _ClassVar[int] + elements: _containers.RepeatedCompositeFieldContainer[FieldPathElement] + def __init__(self, elements: _Optional[_Iterable[_Union[FieldPathElement, _Mapping]]] = ...) -> None: ... + +class FieldPathElement(_message.Message): + __slots__ = ("field_number", "field_name", "field_type", "key_type", "value_type", "index", "bool_key", "int_key", "uint_key", "string_key") + FIELD_NUMBER_FIELD_NUMBER: _ClassVar[int] + FIELD_NAME_FIELD_NUMBER: _ClassVar[int] + FIELD_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] + INDEX_FIELD_NUMBER: _ClassVar[int] + BOOL_KEY_FIELD_NUMBER: _ClassVar[int] + INT_KEY_FIELD_NUMBER: _ClassVar[int] + UINT_KEY_FIELD_NUMBER: _ClassVar[int] + STRING_KEY_FIELD_NUMBER: _ClassVar[int] + field_number: int + field_name: str + field_type: _descriptor_pb2.FieldDescriptorProto.Type + key_type: _descriptor_pb2.FieldDescriptorProto.Type + value_type: _descriptor_pb2.FieldDescriptorProto.Type + index: int + bool_key: bool + int_key: int + uint_key: int + string_key: str + def __init__(self, field_number: _Optional[int] = ..., field_name: _Optional[str] = ..., field_type: _Optional[_Union[_descriptor_pb2.FieldDescriptorProto.Type, str]] = ..., key_type: _Optional[_Union[_descriptor_pb2.FieldDescriptorProto.Type, str]] = ..., value_type: _Optional[_Union[_descriptor_pb2.FieldDescriptorProto.Type, str]] = ..., index: _Optional[int] = ..., bool_key: _Optional[bool] = ..., int_key: _Optional[int] = ..., uint_key: _Optional[int] = ..., string_key: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py index b185970b..0e775d37 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py @@ -27,7 +27,7 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v2/auditevent.proto\x12\x1asap.auditlog.auditevent.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdf\x01\n\x0bUserContext\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x04type\x12W\n\nattributes\x18\x02 \x03(\x0b\x32\x37.sap.auditlog.auditevent.v2.UserContext.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x93\x01\n\x0cTraceContext\x12\x35\n\x08trace_id\x18\x01 \x01(\tB\x15\xbaH\x12r\x10\x32\x0e^[0-9a-f]{32}$H\x00R\x07traceId\x88\x01\x01\x12\x33\n\x07span_id\x18\x02 \x01(\tB\x15\xbaH\x12r\x10\x32\x0e^[0-9a-f]{16}$H\x01R\x06spanId\x88\x01\x01\x42\x0b\n\t_trace_idB\n\n\x08_span_id\"r\n\x07\x41iModel\x12\'\n\x0b\x61i_provider\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\naiProvider\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n\x03uid\x18\x03 \x01(\tR\x03uid\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\"\x82\x02\n\x07\x41iAgent\x12\x10\n\x03uid\x18\x01 \x01(\tR\x03uid\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12!\n\x0cinstance_uid\x18\x03 \x01(\tR\x0binstanceUid\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12@\n\x07type_id\x18\x05 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.AiAgentTypeR\x06typeId\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12>\n\x08\x61i_model\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\"\xb5\x02\n\x10\x41iMessageContext\x12\x10\n\x03uid\x18\x01 \x01(\tR\x03uid\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12@\n\nai_role_id\x18\x03 \x01(\x0e\x32\".sap.auditlog.auditevent.v2.AiRoleR\x08\x61iRoleId\x12\x1f\n\x0bprompt_text\x18\x04 \x01(\tR\npromptText\x12#\n\rresponse_text\x18\x05 \x01(\tR\x0cresponseText\x12#\n\rprompt_tokens\x18\x06 \x01(\x05R\x0cpromptTokens\x12+\n\x11\x63ompletion_tokens\x18\x07 \x01(\x05R\x10\x63ompletionTokens\x12!\n\x0ctotal_tokens\x18\x08 \x01(\x05R\x0btotalTokens\"\xd0\x01\n\x0c\x41iDelegation\x12!\n\x0c\x64\x65legator_id\x18\x01 \x01(\tR\x0b\x64\x65legatorId\x12\x1f\n\x0b\x64\x65legate_id\x18\x02 \x01(\tR\ndelegateId\x12\x16\n\x06scopes\x18\x03 \x03(\tR\x06scopes\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12)\n\x10\x64\x65legation_chain\x18\x05 \x03(\tR\x0f\x64\x65legationChain\"\xbc\x06\n\x06\x43ommon\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1b\n\tsource_ip\x18\x02 \x03(\tR\x08sourceIp\x12\x30\n\x14user_impersonated_id\x18\x03 \x01(\tR\x12userImpersonatedId\x12\x32\n\x11user_initiator_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12\x15\n\x06\x61pp_id\x18\x05 \x01(\tR\x05\x61ppId\x12\x1b\n\ttenant_id\x18\x06 \x01(\tR\x08tenantId\x12\x35\n\x17user_session_context_id\x18\x07 \x01(\tR\x14userSessionContextId\x12S\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x32.sap.auditlog.auditevent.v2.Common.AppContextEntryR\nappContext\x12$\n\x0euser_global_id\x18\t \x01(\tR\x0cuserGlobalId\x12=\n\x1buser_impersonated_global_id\x18\n \x01(\tR\x18userImpersonatedGlobalId\x12]\n\x16user_initiator_context\x18\x0b \x01(\x0b\x32\'.sap.auditlog.auditevent.v2.UserContextR\x14userInitiatorContext\x12\x63\n\x19user_impersonated_context\x18\x0c \x01(\x0b\x32\'.sap.auditlog.auditevent.v2.UserContextR\x17userImpersonatedContext\x12M\n\rtrace_context\x18\r \x01(\x0b\x32(.sap.auditlog.auditevent.v2.TraceContextR\x0ctraceContext\x1a=\n\x0f\x41ppContextEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"}\n\rAuditlogClear\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12(\n\x10number_of_events\x18\x02 \x01(\x05R\x0enumberOfEvents\"U\n\x0f\x41uditlogDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"T\n\x0e\x41uditlogEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"\xe0\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12$\n\tprivilege\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe3\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12$\n\tprivilege\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xdd\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe0\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xa0\x02\n\x17\x41uthnPrivilegeToUserAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xa3\x02\n\x1a\x41uthnPrivilegeToUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x93\x01\n\x13\x41uthnRoleToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\"\x96\x01\n\x16\x41uthnRoleToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\"\xd3\x01\n\x12\x41uthnRoleToUserAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1a\n\x04role\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd6\x01\n\x15\x41uthnRoleToUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1a\n\x04role\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd6\x01\n\x13\x41uthnUserToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd9\x01\n\x16\x41uthnUserToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xf7\x01\n\x10\x43onfigurationAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12+\n\rproperty_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xbe\x02\n\x13\x43onfigurationChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x05 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x06 \x01(\tR\x08objectId\"\xfa\x01\n\x13\x43onfigurationDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12+\n\rproperty_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe0\x01\n\x10\x43redentialCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\"\xe0\x01\n\x10\x43redentialDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\"\xa9\x02\n\x14\x43redentialExpiration\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\xa9\x02\n\x14\x43redentialRevokation\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\x9f\x02\n\x0f\x44\x61taModelChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"x\n\x0f\x44\x61taModelCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\"x\n\x0f\x44\x61taModelDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\"\x9a\x03\n\nDataAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12)\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x08 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\t \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xf2\x01\n\nDataCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xf2\x01\n\nDataDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xb4\x02\n\x10\x44\x61taModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12\x33\n\tnew_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xd4\x02\n\nDataExport\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\\\n\x0c\x63hannel_type\x18\x02 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v2.DataExportChannelTypeB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12/\n\x0f\x64\x65stination_uri\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0e\x64\x65stinationUri\"\x81\x04\n\rDppDataAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12)\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\x32\n\x11\x64\x61ta_subject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x07 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x08 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\t \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\n \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x0b \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xd9\x02\n\rDppDataCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xd9\x02\n\rDppDataDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x9b\x03\n\x13\x44ppDataModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12\x33\n\tnew_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\x95\x02\n\tJobChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"n\n\tJobCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"n\n\tJobDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"\x9b\x02\n\x0fJobStatusChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"\xa5\x02\n\x18MaliciousRequestDetected\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tparameter\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x03 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x04 \x01(\tR\rreceivedValue\x12Q\n\x08\x62\x65havior\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.MaliciousBehaviorB\x06\xbaH\x03\xc8\x01\x01R\x08\x62\x65havior\"u\n\x0ePasswordChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"y\n\x12PasswordExpiration\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"t\n\rPasswordReset\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"\xa4\x02\n\x12TenantModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12#\n\ttenant_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"|\n\x11TenantOffboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\ttenant_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"{\n\x10TenantOnboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\ttenant_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"\\\n\x16UnauthenticatedRequest\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"\x86\x01\n\x13UnauthorizedRequest\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\x11unauthorized_type\x18\x02 \x01(\tR\x10unauthorizedType\"\xb6\x01\n\x0cUserActivate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb3\x01\n\tUserBlock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xe5\x02\n\x14UserDataModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x07user_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x9f\x03\n\x16UserImpersonationStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xa0\x03\n\x17UserImpersonationFinish\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xb2\x01\n\x08UserLock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserUnlock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserVerify\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xe9\x03\n\x10UserLoginFailure\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12X\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\x0e\x32).sap.auditlog.auditevent.v2.FailureReasonB\x06\xbaH\x03\xc8\x01\x01R\rfailureReason\x12G\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodB\x06\xbaH\x03\xc8\x01\x01R\x06method\x12\x19\n\x08is_admin\x18\x04 \x01(\x08R\x07isAdmin\x12>\n\x08mfa_type\x18\x05 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeR\x07mfaType\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\x12P\n\x0elogin_protocol\x18\x07 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\x9f\x03\n\x10UserLoginSuccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x19\n\x08is_admin\x18\x02 \x01(\x08R\x07isAdmin\x12G\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodB\x06\xbaH\x03\xc8\x01\x01R\x06method\x12\x46\n\x08mfa_type\x18\x04 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeB\x06\xbaH\x03\xc8\x01\x01R\x07mfaType\x12I\n\tuser_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeB\x06\xbaH\x03\xc8\x01\x01R\x08userType\x12P\n\x0elogin_protocol\x18\x06 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\xf3\x01\n\nUserLogoff\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12O\n\x0blogoff_type\x18\x02 \x01(\x0e\x32&.sap.auditlog.auditevent.v2.LogoffTypeB\x06\xbaH\x03\xc8\x01\x01R\nlogoffType\x12P\n\x0elogin_protocol\x18\x03 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\x8c\x01\n\x0eZzzCustomEvent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x36\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ustom\"\x97\x01\n\rCMKOnboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x98\x01\n\x0e\x43MKOffboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xc0\x01\n\tCMKSwitch\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12$\n\ncmk_id_old\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x63mkIdOld\x12$\n\ncmk_id_new\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x63mkIdNew\"\xed\x01\n\x15\x43MKTenantModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12L\n\ncmk_action\x18\x04 \x01(\x0e\x32%.sap.auditlog.auditevent.v2.CMKActionB\x06\xbaH\x03\xc8\x01\x01R\tcmkAction\"\x9a\x01\n\tCMKCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9a\x01\n\tCMKDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKRestore\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9a\x01\n\tCMKEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"n\n\tCMKRotate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeyRestore\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xf9\x01\n\x08KeyPurge\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyRotate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeyDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeySuspend\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x83\x02\n\x12KeyOnboardKeyChain\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x98\x01\n\x07\x43MKDrop\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKSuspend\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\xf5\x01\n\x0cVirusFinding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nvirus_name\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tvirusName\x12#\n\tfile_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x66ileName\x12U\n\rvirus_channel\x18\x04 \x01(\x0e\x32(.sap.auditlog.auditevent.v2.VirusChannelB\x06\xbaH\x03\xc8\x01\x01R\x0cvirusChannel\"\x9f\x01\n\x0e\x43MKUnavailable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9d\x01\n\x0c\x43MKAvailable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\xbf\x01\n\tCMKDetach\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\"\xc5\x02\n\x0e\x41iSessionStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12>\n\x08\x61i_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12>\n\x08\x61i_model\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\x12H\n\ndelegation\x18\x05 \x01(\x0b\x32(.sap.auditlog.auditevent.v2.AiDelegationR\ndelegation\"\x8c\x02\n\x0c\x41iSessionEnd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12M\n\nend_reason\x18\x03 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiSessionEndReasonR\tendReason\x12!\n\x0ctotal_tokens\x18\x04 \x01(\x05R\x0btotalTokens\x12\x1f\n\x0b\x64uration_ms\x18\x05 \x01(\x03R\ndurationMs\"\x8c\x02\n\x10\x41iPromptReceived\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0fmessage_context\x18\x03 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xe4\x03\n\x14\x41iGuardrailTriggered\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12-\n\x0eguardrail_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rguardrailName\x12Z\n\x0eguardrail_type\x18\x04 \x01(\x0e\x32+.sap.auditlog.auditevent.v2.AiGuardrailTypeB\x06\xbaH\x03\xc8\x01\x01R\rguardrailType\x12X\n\x0c\x61\x63tion_taken\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.AiGuardrailActionB\x06\xbaH\x03\xc8\x01\x01R\x0b\x61\x63tionTaken\x12-\n\x12violation_category\x18\x06 \x01(\tR\x11violationCategory\x12U\n\x0fmessage_context\x18\x07 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xe1\x03\n\x11\x41iModelInvocation\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12\x46\n\x08\x61i_model\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelB\x06\xbaH\x03\xc8\x01\x01R\x07\x61iModel\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x05 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12\x1d\n\nlatency_ms\x18\x06 \x01(\x03R\tlatencyMs\x12\x46\n\x06status\x18\x07 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12#\n\rerror_message\x18\x08 \x01(\tR\x0c\x65rrorMessage\"\xda\x02\n\x0f\x41iSkillSelected\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12%\n\nskill_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tskillName\x12\x19\n\x08skill_id\x18\x04 \x01(\tR\x07skillId\x12)\n\x10\x63onfidence_score\x18\x05 \x01(\x02R\x0f\x63onfidenceScore\x12>\n\x08\x61i_agent\x18\x06 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x37\n\x17\x61lternatives_considered\x18\x07 \x03(\tR\x16\x61lternativesConsidered\"\x8a\x03\n\x10\x41iAgentDelegated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12N\n\x0csource_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0bsourceAgent\x12N\n\x0ctarget_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0btargetAgent\x12H\n\ndelegation\x18\x05 \x01(\x0b\x32(.sap.auditlog.auditevent.v2.AiDelegationR\ndelegation\x12)\n\x10task_description\x18\x06 \x01(\tR\x0ftaskDescription\"\x9c\x03\n\rAiMcpToolCall\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12#\n\ttool_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08toolName\x12\x37\n\x14target_mcp_server_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x11targetMcpServerId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12\x1d\n\nlatency_ms\x18\x07 \x01(\x03R\tlatencyMs\x12#\n\rerror_message\x18\x08 \x01(\tR\x0c\x65rrorMessage\"\x9c\x03\n\x11\x41iDirectApiAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12*\n\rtarget_api_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0btargetApiId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x1f\n\x0bhttp_method\x18\x05 \x01(\tR\nhttpMethod\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12\x30\n\x14response_status_code\x18\x07 \x01(\x05R\x12responseStatusCode\x12\x1d\n\nlatency_ms\x18\x08 \x01(\x03R\tlatencyMs\"\xa4\x03\n\x0f\x41iDataRetrieval\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12,\n\x0e\x64\x61ta_source_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x64\x61taSourceId\x12(\n\x10\x64\x61ta_source_type\x18\x04 \x01(\tR\x0e\x64\x61taSourceType\x12R\n\x0eretrieval_type\x18\x05 \x01(\x0e\x32+.sap.auditlog.auditevent.v2.AiRetrievalTypeR\rretrievalType\x12#\n\rresults_count\x18\x06 \x01(\x05R\x0cresultsCount\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x1d\n\nlatency_ms\x18\x08 \x01(\x03R\tlatencyMs\"\xee\x02\n\x13\x41iResponseGenerated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0fmessage_context\x18\x03 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12>\n\x08\x61i_model\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\x12\x1d\n\nlatency_ms\x18\x06 \x01(\x03R\tlatencyMs\"\xea\x02\n\x0e\x41iUserFeedback\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0f\x66\x65\x65\x64\x62\x61\x63k_rating\x18\x03 \x01(\x0e\x32,.sap.auditlog.auditevent.v2.AiFeedbackRatingR\x0e\x66\x65\x65\x64\x62\x61\x63kRating\x12%\n\x0e\x66\x65\x65\x64\x62\x61\x63k_score\x18\x04 \x01(\x05R\rfeedbackScore\x12+\n\x11\x66\x65\x65\x64\x62\x61\x63k_category\x18\x05 \x01(\tR\x10\x66\x65\x65\x64\x62\x61\x63kCategory\x12)\n\x10\x66\x65\x65\x64\x62\x61\x63k_comment\x18\x06 \x01(\tR\x0f\x66\x65\x65\x64\x62\x61\x63kComment\x12\x1f\n\x0bmessage_uid\x18\x07 \x01(\tR\nmessageUid\"\x88\x03\n\rAiMessageSent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12N\n\x0ctarget_agent\x18\x02 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0btargetAgent\x12\x46\n\x0csource_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x0bsourceAgent\x12\x1e\n\x0b\x61\x32\x61_task_id\x18\x04 \x01(\tR\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x05 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xb8\x02\n\rAiTaskCreated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x05 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\x8f\x03\n\rAiTaskUpdated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12U\n\x0bupdate_type\x18\x04 \x01(\x0e\x32,.sap.auditlog.auditevent.v2.AiTaskUpdateTypeB\x06\xbaH\x03\xc8\x01\x01R\nupdateType\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xe2\x01\n\x0e\x41iTaskAccessed\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xcf\x02\n\x16\x41iPushNotificationSent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12:\n\x15push_notification_url\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x13pushNotificationUrl\x12&\n\x0b\x61\x32\x61_task_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x04 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\'\n\x0fresponse_status\x18\x06 \x01(\x05R\x0eresponseStatus\"\xe3\x03\n\x1aUserImpersonationRequested\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xe2\x03\n\x19UserImpersonationDeclined\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xfc\x02\n\x14\x41iUserInputRequested\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\x16requested_from_user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x13requestedFromUserId\x12&\n\x0b\x61\x32\x61_task_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x04 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext*\xb3\x01\n\x06\x41iRole\x12\x17\n\x13\x41I_ROLE_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x41I_ROLE_USER\x10\x01\x12\x15\n\x11\x41I_ROLE_ASSISTANT\x10\x02\x12\x10\n\x0c\x41I_ROLE_TOOL\x10\x03\x12\x11\n\rAI_ROLE_AGENT\x10\x04\x12\x18\n\x14\x41I_ROLE_ORCHESTRATOR\x10\x05\x12\x15\n\x11\x41I_ROLE_RETRIEVER\x10\x06\x12\x11\n\rAI_ROLE_OTHER\x10\x63*\xc1\x01\n\x0b\x41iAgentType\x12\x1d\n\x19\x41I_AGENT_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_AGENT_TYPE_CONVERSATIONAL\x10\x01\x12\x1c\n\x18\x41I_AGENT_TYPE_AUTONOMOUS\x10\x02\x12\x1b\n\x17\x41I_AGENT_TYPE_RETRIEVAL\x10\x03\x12\x1d\n\x19\x41I_AGENT_TYPE_MULTI_AGENT\x10\x04\x12\x17\n\x13\x41I_AGENT_TYPE_OTHER\x10\x63*\x99\x02\n\x12\x41iSessionEndReason\x12%\n!AI_SESSION_END_REASON_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_SESSION_END_REASON_NORMAL\x10\x01\x12!\n\x1d\x41I_SESSION_END_REASON_TIMEOUT\x10\x02\x12)\n%AI_SESSION_END_REASON_USER_TERMINATED\x10\x03\x12\x1f\n\x1b\x41I_SESSION_END_REASON_ERROR\x10\x04\x12*\n&AI_SESSION_END_REASON_POLICY_VIOLATION\x10\x05\x12\x1f\n\x1b\x41I_SESSION_END_REASON_OTHER\x10\x63*\xc5\x02\n\x0f\x41iGuardrailType\x12!\n\x1d\x41I_GUARDRAIL_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x41I_GUARDRAIL_TYPE_INPUT\x10\x01\x12\x1c\n\x18\x41I_GUARDRAIL_TYPE_OUTPUT\x10\x02\x12$\n AI_GUARDRAIL_TYPE_CONTENT_POLICY\x10\x03\x12&\n\"AI_GUARDRAIL_TYPE_PROMPT_INJECTION\x10\x04\x12 \n\x1c\x41I_GUARDRAIL_TYPE_PII_FILTER\x10\x05\x12\"\n\x1e\x41I_GUARDRAIL_TYPE_DATA_LEAKAGE\x10\x06\x12#\n\x1f\x41I_GUARDRAIL_TYPE_HALLUCINATION\x10\x07\x12\x1b\n\x17\x41I_GUARDRAIL_TYPE_OTHER\x10\x63*\xf5\x01\n\x11\x41iGuardrailAction\x12#\n\x1f\x41I_GUARDRAIL_ACTION_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_ALLOW\x10\x01\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_BLOCK\x10\x02\x12\x1e\n\x1a\x41I_GUARDRAIL_ACTION_MODIFY\x10\x03\x12\x1c\n\x18\x41I_GUARDRAIL_ACTION_WARN\x10\x04\x12 \n\x1c\x41I_GUARDRAIL_ACTION_LOG_ONLY\x10\x05\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_OTHER\x10\x63*\xac\x02\n\x12\x41iInvocationStatus\x12$\n AI_INVOCATION_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_INVOCATION_STATUS_SUCCESS\x10\x01\x12\x1f\n\x1b\x41I_INVOCATION_STATUS_FAILED\x10\x02\x12 \n\x1c\x41I_INVOCATION_STATUS_TIMEOUT\x10\x03\x12%\n!AI_INVOCATION_STATUS_RATE_LIMITED\x10\x04\x12\"\n\x1e\x41I_INVOCATION_STATUS_CANCELLED\x10\x05\x12 \n\x1c\x41I_INVOCATION_STATUS_PENDING\x10\x06\x12\x1e\n\x1a\x41I_INVOCATION_STATUS_OTHER\x10\x63*\xae\x02\n\x0f\x41iRetrievalType\x12!\n\x1d\x41I_RETRIEVAL_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1f\x41I_RETRIEVAL_TYPE_VECTOR_SEARCH\x10\x01\x12$\n AI_RETRIEVAL_TYPE_KEYWORD_SEARCH\x10\x02\x12#\n\x1f\x41I_RETRIEVAL_TYPE_HYBRID_SEARCH\x10\x03\x12%\n!AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH\x10\x04\x12$\n AI_RETRIEVAL_TYPE_MEMORY_CONTEXT\x10\x05\x12\x1e\n\x1a\x41I_RETRIEVAL_TYPE_DOCUMENT\x10\x06\x12\x1b\n\x17\x41I_RETRIEVAL_TYPE_OTHER\x10\x63*\xd9\x01\n\x10\x41iFeedbackRating\x12\"\n\x1e\x41I_FEEDBACK_RATING_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41I_FEEDBACK_RATING_POSITIVE\x10\x01\x12\x1f\n\x1b\x41I_FEEDBACK_RATING_NEGATIVE\x10\x02\x12\x1e\n\x1a\x41I_FEEDBACK_RATING_NEUTRAL\x10\x03\x12!\n\x1d\x41I_FEEDBACK_RATING_CORRECTION\x10\x04\x12\x1c\n\x18\x41I_FEEDBACK_RATING_OTHER\x10\x63*\x86\x02\n\x15\x41iToolCallDisposition\x12(\n$AI_TOOL_CALL_DISPOSITION_UNSPECIFIED\x10\x00\x12$\n AI_TOOL_CALL_DISPOSITION_ALLOWED\x10\x01\x12#\n\x1f\x41I_TOOL_CALL_DISPOSITION_DENIED\x10\x02\x12%\n!AI_TOOL_CALL_DISPOSITION_MODIFIED\x10\x03\x12-\n)AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL\x10\x04\x12\"\n\x1e\x41I_TOOL_CALL_DISPOSITION_OTHER\x10\x63*\x8c\x01\n\x0e\x43redentialType\x12\x1f\n\x1b\x43REDENTIAL_TYPE_UNSPECIFIED\x10\x00\x12$\n CREDENTIAL_TYPE_X509_CERTIFICATE\x10\x01\x12\x17\n\x13\x43REDENTIAL_TYPE_KEY\x10\x02\x12\x1a\n\x16\x43REDENTIAL_TYPE_SECRET\x10\x03*\x8f\x06\n\rFailureReason\x12\x1e\n\x1a\x46\x41ILURE_REASON_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46\x41ILURE_REASON_PASSWORD\x10\x01\x12\x1d\n\x19\x46\x41ILURE_REASON_MFA_FAILED\x10\x02\x12!\n\x1d\x46\x41ILURE_REASON_USER_NOT_FOUND\x10\x03\x12\x1e\n\x1a\x46\x41ILURE_REASON_USER_LOCKED\x10\x04\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_BLOCKED\x10\x05\x12\"\n\x1e\x46\x41ILURE_REASON_USER_UNVERIFIED\x10\x06\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_EXPIRED\x10\x07\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_INVALID\x10\x08\x12&\n\"FAILURE_REASON_INSECURE_CONNECTION\x10\t\x12(\n$FAILURE_REASON_LOGIN_METHOD_DISABLED\x10\n\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_EXPIRED\x10\x0b\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_REVOKED\x10\x0c\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_INVALID\x10\r\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_EXPIRED\x10\x0e\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_REVOKED\x10\x0f\x12&\n\"FAILURE_REASON_CERTIFICATE_EXPIRED\x10\x10\x12&\n\"FAILURE_REASON_CERTIFICATE_REVOKED\x10\x11\x12&\n\"FAILURE_REASON_CERTIFICATE_INVALID\x10\x12\x12\x1b\n\x17\x46\x41ILURE_REASON_GEOBLOCK\x10\x13\x12 \n\x1c\x46\x41ILURE_REASON_MFA_REQUESTED\x10\x14\x12!\n\x1d\x46\x41ILURE_REASON_CRED_REQUESTED\x10\x15*\xbf\x05\n\x0bLoginMethod\x12\x1c\n\x18LOGIN_METHOD_UNSPECIFIED\x10\x00\x12 \n\x1cLOGIN_METHOD_OPEN_ID_CONNECT\x10\x01\x12\x15\n\x11LOGIN_METHOD_SAML\x10\x02\x12\x16\n\x12LOGIN_METHOD_SAML2\x10\x03\x12\x19\n\x15LOGIN_METHOD_EXTERNAL\x10\x04\x12\x17\n\x13LOGIN_METHOD_SPNEGO\x10\x05\x12\x19\n\x15LOGIN_METHOD_PASSWORD\x10\x06\x12\x1b\n\x17LOGIN_METHOD_RFC_TICKET\x10\x07\x12\x14\n\x10LOGIN_METHOD_SNC\x10\x08\x12\x1d\n\x19LOGIN_METHOD_LOGON_TICKET\x10\t\x12\x1c\n\x18LOGIN_METHOD_USER_SWITCH\x10\n\x12!\n\x1dLOGIN_METHOD_X509_CERTIFICATE\x10\x0b\x12\x1c\n\x18LOGIN_METHOD_APC_SESSION\x10\x0c\x12\x19\n\x15LOGIN_METHOD_INTERNAL\x10\r\x12\x17\n\x13LOGIN_METHOD_OAUTH2\x10\x0e\x12\"\n\x1eLOGIN_METHOD_REENTRANCE_TICKET\x10\x0f\x12\x1d\n\x19LOGIN_METHOD_HTTP_SESSION\x10\x10\x12!\n\x1dLOGIN_METHOD_ASSERTION_TICKET\x10\x11\x12\x1a\n\x16LOGIN_METHOD_REMCOOKIE\x10\x12\x12\x1a\n\x16LOGIN_METHOD_BIOMETRIC\x10\x13\x12\x19\n\x15LOGIN_METHOD_PASSCODE\x10\x14\x12\x17\n\x13LOGIN_METHOD_MOBSSO\x10\x15\x12\x1c\n\x18LOGIN_METHOD_EMAIL_TOKEN\x10\x16\x12\x1d\n\x19LOGIN_METHOD_BEARER_TOKEN\x10\x17*Z\n\nLogoffType\x12\x1b\n\x17LOGOFF_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13LOGOFF_TYPE_REGULAR\x10\x01\x12\x16\n\x12LOGOFF_TYPE_FORCED\x10\x02*\xe8\x01\n\x11MaliciousBehavior\x12\"\n\x1eMALICIOUS_BEHAVIOR_UNSPECIFIED\x10\x00\x12%\n!MALICIOUS_BEHAVIOR_PARAMETER_SEEN\x10\x01\x12*\n&MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND\x10\x02\x12+\n\'MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN\x10\x03\x12/\n+MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED\x10\x04*\x99\x01\n\x07MfaType\x12\x18\n\x14MFA_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rMFA_TYPE_NONE\x10\x01\x12\x10\n\x0cMFA_TYPE_RSA\x10\x02\x12\x11\n\rMFA_TYPE_TOTP\x10\x03\x12\x16\n\x12MFA_TYPE_WEB_AUTHN\x10\x04\x12\x10\n\x0cMFA_TYPE_SMS\x10\x05\x12\x12\n\x0eMFA_TYPE_EMAIL\x10\x06*\x98\x01\n\x08UserType\x12\x19\n\x15USER_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17USER_TYPE_BUSINESS_USER\x10\x01\x12\x1c\n\x18USER_TYPE_TECHNICAL_USER\x10\x02\x12\x1e\n\x1aUSER_TYPE_SAP_SUPPORT_USER\x10\x03\x12\x16\n\x12USER_TYPE_AI_AGENT\x10\x04*\xb7\x01\n\x15\x44\x61taExportChannelType\x12(\n$DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED\x10\x00\x12%\n!DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD\x10\x01\x12\'\n#DATA_EXPORT_CHANNEL_TYPE_API_ACCESS\x10\x02\x12$\n DATA_EXPORT_CHANNEL_TYPE_PRINTER\x10\x03*\xb0\x01\n\x11\x45ventCategoryCode\x12\'\n#EVENT_CATEGORY_CODE_SEC_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_IAM\x10\x01\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_CFG\x10\x02\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_DPP\x10\x03\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_RAL\x10\x04*\xdc\x01\n\tCMKAction\x12\x1a\n\x16\x43MK_ACTION_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43MK_ACTION_ONBOARD\x10\x01\x12\x14\n\x10\x43MK_ACTION_BLOCK\x10\x02\x12\x17\n\x13\x43MK_ACTION_SHUTDOWN\x10\x03\x12\x1b\n\x17\x43MK_ACTION_CSEKFALLBACK\x10\x04\x12\x16\n\x12\x43MK_ACTION_RESTORE\x10\x05\x12\x1a\n\x16\x43MK_ACTION_KMS_ONBOARD\x10\x06\x12\x1b\n\x17\x43MK_ACTION_KMS_OFFBOARD\x10\x07*s\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fKEY_TYPE_SYSTEM\x10\x01\x12\x14\n\x10KEY_TYPE_SERVICE\x10\x02\x12\x11\n\rKEY_TYPE_DATA\x10\x03\x12\x10\n\x0cKEY_TYPE_KEK\x10\x04*_\n\x0cVirusChannel\x12\x1d\n\x19VIRUS_CHANNEL_UNSPECIFIED\x10\x00\x12\x18\n\x14VIRUS_CHANNEL_UPLOAD\x10\x01\x12\x16\n\x12VIRUS_CHANNEL_SCAN\x10\x02*\xa1\x01\n\x10\x41iTaskUpdateType\x12#\n\x1f\x41I_TASK_UPDATE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41I_TASK_UPDATE_TYPE_STATUS\x10\x01\x12 \n\x1c\x41I_TASK_UPDATE_TYPE_ARTIFACT\x10\x02\x12&\n\"AI_TASK_UPDATE_TYPE_INPUT_REQUIRED\x10\x03*{\n\rLoginProtocol\x12\x1e\n\x1aLOGIN_PROTOCOL_UNSPECIFIED\x10\x00\x12\x18\n\x14LOGIN_PROTOCOL_SAML2\x10\x01\x12\x17\n\x13LOGIN_PROTOCOL_OIDC\x10\x02\x12\x17\n\x13LOGIN_PROTOCOL_HTTP\x10\x03\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v2/auditevent.proto\x12\x1asap.auditlog.auditevent.v2\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"\xdf\x01\n\x0bUserContext\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x04type\x12W\n\nattributes\x18\x02 \x03(\x0b\x32\x37.sap.auditlog.auditevent.v2.UserContext.AttributesEntryR\nattributes\x1a=\n\x0f\x41ttributesEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"\x93\x01\n\x0cTraceContext\x12\x35\n\x08trace_id\x18\x01 \x01(\tB\x15\xbaH\x12r\x10\x32\x0e^[0-9a-f]{32}$H\x00R\x07traceId\x88\x01\x01\x12\x33\n\x07span_id\x18\x02 \x01(\tB\x15\xbaH\x12r\x10\x32\x0e^[0-9a-f]{16}$H\x01R\x06spanId\x88\x01\x01\x42\x0b\n\t_trace_idB\n\n\x08_span_id\"\xbc\x06\n\x06\x43ommon\x12\x38\n\ttimestamp\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\ttimestamp\x12\x1b\n\tsource_ip\x18\x02 \x03(\tR\x08sourceIp\x12\x30\n\x14user_impersonated_id\x18\x03 \x01(\tR\x12userImpersonatedId\x12\x32\n\x11user_initiator_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12\x15\n\x06\x61pp_id\x18\x05 \x01(\tR\x05\x61ppId\x12\x1b\n\ttenant_id\x18\x06 \x01(\tR\x08tenantId\x12\x35\n\x17user_session_context_id\x18\x07 \x01(\tR\x14userSessionContextId\x12S\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x32.sap.auditlog.auditevent.v2.Common.AppContextEntryR\nappContext\x12$\n\x0euser_global_id\x18\t \x01(\tR\x0cuserGlobalId\x12=\n\x1buser_impersonated_global_id\x18\n \x01(\tR\x18userImpersonatedGlobalId\x12]\n\x16user_initiator_context\x18\x0b \x01(\x0b\x32\'.sap.auditlog.auditevent.v2.UserContextR\x14userInitiatorContext\x12\x63\n\x19user_impersonated_context\x18\x0c \x01(\x0b\x32\'.sap.auditlog.auditevent.v2.UserContextR\x17userImpersonatedContext\x12M\n\rtrace_context\x18\r \x01(\x0b\x32(.sap.auditlog.auditevent.v2.TraceContextR\x0ctraceContext\x1a=\n\x0f\x41ppContextEntry\x12\x10\n\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n\x05value\x18\x02 \x01(\tR\x05value:\x02\x38\x01\"}\n\rAuditlogClear\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12(\n\x10number_of_events\x18\x02 \x01(\x05R\x0enumberOfEvents\"U\n\x0f\x41uditlogDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"T\n\x0e\x41uditlogEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"\xe0\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12$\n\tprivilege\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe3\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12$\n\tprivilege\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xdd\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe0\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xa0\x02\n\x17\x41uthnPrivilegeToUserAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xa3\x02\n\x1a\x41uthnPrivilegeToUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tprivilege\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tprivilege\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x93\x01\n\x13\x41uthnRoleToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\"\x96\x01\n\x16\x41uthnRoleToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04role\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\"\xd3\x01\n\x12\x41uthnRoleToUserAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1a\n\x04role\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd6\x01\n\x15\x41uthnRoleToUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1a\n\x04role\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04role\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd6\x01\n\x13\x41uthnUserToGroupAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xd9\x01\n\x16\x41uthnUserToGroupDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1c\n\x05group\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05group\x12\x1a\n\x04user\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x04user\x12\x41\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xf7\x01\n\x10\x43onfigurationAdd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12+\n\rproperty_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xbe\x02\n\x13\x43onfigurationChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x05 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x06 \x01(\tR\x08objectId\"\xfa\x01\n\x13\x43onfigurationDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x34\n\x05value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x05value\x12+\n\rproperty_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x0bobject_type\x18\x04 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x05 \x01(\tR\x08objectId\"\xe0\x01\n\x10\x43redentialCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\"\xe0\x01\n\x10\x43redentialDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\"\xa9\x02\n\x14\x43redentialExpiration\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\xa9\x02\n\x14\x43redentialRevokation\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\rcredential_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x63redentialId\x12[\n\x0f\x63redential_type\x18\x03 \x01(\x0e\x32*.sap.auditlog.auditevent.v2.CredentialTypeB\x06\xbaH\x03\xc8\x01\x01R\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\x9f\x02\n\x0f\x44\x61taModelChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"x\n\x0f\x44\x61taModelCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\"x\n\x0f\x44\x61taModelDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12!\n\x08model_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x07modelId\"\x9a\x03\n\nDataAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12)\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x08 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\t \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xf2\x01\n\nDataCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xf2\x01\n\nDataDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xb4\x02\n\x10\x44\x61taModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\'\n\x0bobject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12\x33\n\tnew_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xd4\x02\n\nDataExport\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\\\n\x0c\x63hannel_type\x18\x02 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v2.DataExportChannelTypeB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12/\n\x0f\x64\x65stination_uri\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0e\x64\x65stinationUri\"\x81\x04\n\rDppDataAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12)\n\x0c\x63hannel_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0b\x63hannelType\x12%\n\nchannel_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tchannelId\x12\x32\n\x11\x64\x61ta_subject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x07 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x08 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\t \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\n \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x0b \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xd9\x02\n\rDppDataCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xd9\x02\n\rDppDataDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12,\n\x05value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x9b\x03\n\x13\x44ppDataModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11\x64\x61ta_subject_type\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0f\x64\x61taSubjectType\x12.\n\x0f\x64\x61ta_subject_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rdataSubjectId\x12\'\n\x0bobject_type\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\nobjectType\x12#\n\tobject_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08objectId\x12$\n\tattribute\x18\x06 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tattribute\x12\x33\n\tnew_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\x95\x02\n\tJobChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"n\n\tJobCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"n\n\tJobDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\"\x9b\x02\n\x0fJobStatusChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06job_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05jobId\x12;\n\tnew_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\"\xa5\x02\n\x18MaliciousRequestDetected\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12$\n\tparameter\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x03 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x04 \x01(\tR\rreceivedValue\x12Q\n\x08\x62\x65havior\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.MaliciousBehaviorB\x06\xbaH\x03\xc8\x01\x01R\x08\x62\x65havior\"u\n\x0ePasswordChange\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"y\n\x12PasswordExpiration\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"t\n\rPasswordReset\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\"\xa4\x02\n\x12TenantModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12#\n\ttenant_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"|\n\x11TenantOffboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\ttenant_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"{\n\x10TenantOnboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\ttenant_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08tenantId\"\\\n\x16UnauthenticatedRequest\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\"\x86\x01\n\x13UnauthorizedRequest\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12+\n\x11unauthorized_type\x18\x02 \x01(\tR\x10unauthorizedType\"\xb6\x01\n\x0cUserActivate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb3\x01\n\tUserBlock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xe5\x02\n\x14UserDataModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08newValue\x12;\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x08oldValue\x12+\n\rproperty_name\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0cpropertyName\x12\x1f\n\x07user_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\x9f\x03\n\x16UserImpersonationStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xa0\x03\n\x17UserImpersonationFinish\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xb2\x01\n\x08UserLock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserUnlock\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xb4\x01\n\nUserVerify\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1f\n\x07user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06userId\x12\x41\n\tuser_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\"\xe9\x03\n\x10UserLoginFailure\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12X\n\x0e\x66\x61ilure_reason\x18\x02 \x01(\x0e\x32).sap.auditlog.auditevent.v2.FailureReasonB\x06\xbaH\x03\xc8\x01\x01R\rfailureReason\x12G\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodB\x06\xbaH\x03\xc8\x01\x01R\x06method\x12\x19\n\x08is_admin\x18\x04 \x01(\x08R\x07isAdmin\x12>\n\x08mfa_type\x18\x05 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeR\x07mfaType\x12\x41\n\tuser_type\x18\x06 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x08userType\x12P\n\x0elogin_protocol\x18\x07 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\x9f\x03\n\x10UserLoginSuccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x19\n\x08is_admin\x18\x02 \x01(\x08R\x07isAdmin\x12G\n\x06method\x18\x03 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.LoginMethodB\x06\xbaH\x03\xc8\x01\x01R\x06method\x12\x46\n\x08mfa_type\x18\x04 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.MfaTypeB\x06\xbaH\x03\xc8\x01\x01R\x07mfaType\x12I\n\tuser_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeB\x06\xbaH\x03\xc8\x01\x01R\x08userType\x12P\n\x0elogin_protocol\x18\x06 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\xf3\x01\n\nUserLogoff\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12O\n\x0blogoff_type\x18\x02 \x01(\x0e\x32&.sap.auditlog.auditevent.v2.LogoffTypeB\x06\xbaH\x03\xc8\x01\x01R\nlogoffType\x12P\n\x0elogin_protocol\x18\x03 \x01(\x0e\x32).sap.auditlog.auditevent.v2.LoginProtocolR\rloginProtocol\"\x8c\x01\n\x0eZzzCustomEvent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x36\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ustom\"\x97\x01\n\rCMKOnboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x98\x01\n\x0e\x43MKOffboarding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xc0\x01\n\tCMKSwitch\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12$\n\ncmk_id_old\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x63mkIdOld\x12$\n\ncmk_id_new\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x63mkIdNew\"\xed\x01\n\x15\x43MKTenantModification\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12#\n\tsystem_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12L\n\ncmk_action\x18\x04 \x01(\x0e\x32%.sap.auditlog.auditevent.v2.CMKActionB\x06\xbaH\x03\xc8\x01\x01R\tcmkAction\"\x9a\x01\n\tCMKCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9a\x01\n\tCMKDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKRestore\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9a\x01\n\tCMKEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"n\n\tCMKRotate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyCreate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyDelete\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeyRestore\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xf9\x01\n\x08KeyPurge\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyRotate\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfa\x01\n\tKeyEnable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeyDisable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\xfb\x01\n\nKeySuspend\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x83\x02\n\x12KeyOnboardKeyChain\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x46\n\x08key_type\x18\x02 \x01(\x0e\x32#.sap.auditlog.auditevent.v2.KeyTypeB\x06\xbaH\x03\xc8\x01\x01R\x07keyType\x12\x1d\n\x06key_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05keyId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\x12\x1d\n\x06\x63mk_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\"\x98\x01\n\x07\x43MKDrop\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9b\x01\n\nCMKSuspend\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\xf5\x01\n\x0cVirusFinding\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nvirus_name\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tvirusName\x12#\n\tfile_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08\x66ileName\x12U\n\rvirus_channel\x18\x04 \x01(\x0e\x32(.sap.auditlog.auditevent.v2.VirusChannelB\x06\xbaH\x03\xc8\x01\x01R\x0cvirusChannel\"\x9f\x01\n\x0e\x43MKUnavailable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\x9d\x01\n\x0c\x43MKAvailable\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\"\xbf\x01\n\tCMKDetach\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\x06\x63mk_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x05\x63mkId\x12*\n\rkms_system_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0bkmsSystemId\x12#\n\tsystem_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08systemId\"r\n\x07\x41iModel\x12\'\n\x0b\x61i_provider\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\naiProvider\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12\x10\n\x03uid\x18\x03 \x01(\tR\x03uid\x12\x18\n\x07version\x18\x04 \x01(\tR\x07version\"\x8a\x02\n\x07\x41iAgent\x12\x18\n\x03uid\x18\x01 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x03uid\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12!\n\x0cinstance_uid\x18\x03 \x01(\tR\x0binstanceUid\x12\x12\n\x04type\x18\x04 \x01(\tR\x04type\x12@\n\x07type_id\x18\x05 \x01(\x0e\x32\'.sap.auditlog.auditevent.v2.AiAgentTypeR\x06typeId\x12\x18\n\x07version\x18\x06 \x01(\tR\x07version\x12>\n\x08\x61i_model\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\"\xd0\x02\n\x10\x41iMessageContext\x12\x10\n\x03uid\x18\x01 \x01(\tR\x03uid\x12\x12\n\x04name\x18\x02 \x01(\tR\x04name\x12@\n\nai_role_id\x18\x03 \x01(\x0e\x32\".sap.auditlog.auditevent.v2.AiRoleR\x08\x61iRoleId\x12\x1f\n\x0bprompt_text\x18\x04 \x01(\tR\npromptText\x12#\n\rresponse_text\x18\x05 \x01(\tR\x0cresponseText\x12,\n\rprompt_tokens\x18\x06 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0cpromptTokens\x12\x34\n\x11\x63ompletion_tokens\x18\x07 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x10\x63ompletionTokens\x12*\n\x0ctotal_tokens\x18\x08 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0btotalTokens\"\xd0\x01\n\x0c\x41iDelegation\x12!\n\x0c\x64\x65legator_id\x18\x01 \x01(\tR\x0b\x64\x65legatorId\x12\x1f\n\x0b\x64\x65legate_id\x18\x02 \x01(\tR\ndelegateId\x12\x16\n\x06scopes\x18\x03 \x03(\tR\x06scopes\x12\x39\n\nexpires_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\texpiresAt\x12)\n\x10\x64\x65legation_chain\x18\x05 \x03(\tR\x0f\x64\x65legationChain\"\xc5\x02\n\x0e\x41iSessionStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12>\n\x08\x61i_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12>\n\x08\x61i_model\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\x12H\n\ndelegation\x18\x05 \x01(\x0b\x32(.sap.auditlog.auditevent.v2.AiDelegationR\ndelegation\"\x9c\x02\n\x0c\x41iSessionEnd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12M\n\nend_reason\x18\x03 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiSessionEndReasonR\tendReason\x12*\n\x0ctotal_tokens\x18\x04 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0btotalTokens\x12&\n\nturn_count\x18\x05 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\tturnCount\"\x94\x02\n\x10\x41iPromptReceived\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12U\n\x0fmessage_context\x18\x03 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xe4\x03\n\x14\x41iGuardrailTriggered\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12-\n\x0eguardrail_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rguardrailName\x12Z\n\x0eguardrail_type\x18\x04 \x01(\x0e\x32+.sap.auditlog.auditevent.v2.AiGuardrailTypeB\x06\xbaH\x03\xc8\x01\x01R\rguardrailType\x12X\n\x0c\x61\x63tion_taken\x18\x05 \x01(\x0e\x32-.sap.auditlog.auditevent.v2.AiGuardrailActionB\x06\xbaH\x03\xc8\x01\x01R\x0b\x61\x63tionTaken\x12-\n\x12violation_category\x18\x06 \x01(\tR\x11violationCategory\x12U\n\x0fmessage_context\x18\x07 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xc2\x03\n\x11\x41iModelInvocation\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12\x46\n\x08\x61i_model\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelB\x06\xbaH\x03\xc8\x01\x01R\x07\x61iModel\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x05 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12#\n\rerror_message\x18\x07 \x01(\tR\x0c\x65rrorMessage\"\xeb\x02\n\x0f\x41iSkillSelected\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12%\n\nskill_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tskillName\x12\x19\n\x08skill_id\x18\x04 \x01(\tR\x07skillId\x12:\n\x10\x63onfidence_score\x18\x05 \x01(\x02\x42\x0f\xbaH\x0c\n\n\x1d\x00\x00\x80?-\x00\x00\x00\x00R\x0f\x63onfidenceScore\x12>\n\x08\x61i_agent\x18\x06 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x37\n\x17\x61lternatives_considered\x18\x07 \x03(\tR\x16\x61lternativesConsidered\"\x8a\x03\n\x10\x41iAgentDelegated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12N\n\x0csource_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0bsourceAgent\x12N\n\x0ctarget_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0btargetAgent\x12H\n\ndelegation\x18\x05 \x01(\x0b\x32(.sap.auditlog.auditevent.v2.AiDelegationR\ndelegation\x12)\n\x10task_description\x18\x06 \x01(\tR\x0ftaskDescription\"\xfd\x02\n\rAiMcpToolCall\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12#\n\ttool_name\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x08toolName\x12\x37\n\x14target_mcp_server_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x11targetMcpServerId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12#\n\rerror_message\x18\x07 \x01(\tR\x0c\x65rrorMessage\"\x89\x03\n\x11\x41iDirectApiAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12*\n\rtarget_api_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0btargetApiId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x1f\n\x0bhttp_method\x18\x05 \x01(\tR\nhttpMethod\x12\x46\n\x06status\x18\x06 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12<\n\x14response_status_code\x18\x07 \x01(\x05\x42\n\xbaH\x07\x1a\x05\x18\xd7\x04(dR\x12responseStatusCode\"\x8e\x03\n\x0f\x41iDataRetrieval\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12,\n\x0e\x64\x61ta_source_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0c\x64\x61taSourceId\x12(\n\x10\x64\x61ta_source_type\x18\x04 \x01(\tR\x0e\x64\x61taSourceType\x12R\n\x0eretrieval_type\x18\x05 \x01(\x0e\x32+.sap.auditlog.auditevent.v2.AiRetrievalTypeR\rretrievalType\x12,\n\rresults_count\x18\x06 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0cresultsCount\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xd7\x02\n\x13\x41iResponseGenerated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12U\n\x0fmessage_context\x18\x03 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12>\n\x08\x61i_model\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiModelR\x07\x61iModel\"\xf3\x02\n\x0e\x41iUserFeedback\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12U\n\x0f\x66\x65\x65\x64\x62\x61\x63k_rating\x18\x03 \x01(\x0e\x32,.sap.auditlog.auditevent.v2.AiFeedbackRatingR\x0e\x66\x65\x65\x64\x62\x61\x63kRating\x12.\n\x0e\x66\x65\x65\x64\x62\x61\x63k_score\x18\x04 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\rfeedbackScore\x12+\n\x11\x66\x65\x65\x64\x62\x61\x63k_category\x18\x05 \x01(\tR\x10\x66\x65\x65\x64\x62\x61\x63kCategory\x12)\n\x10\x66\x65\x65\x64\x62\x61\x63k_comment\x18\x06 \x01(\tR\x0f\x66\x65\x65\x64\x62\x61\x63kComment\x12\x1f\n\x0bmessage_uid\x18\x07 \x01(\tR\nmessageUid\"\x88\x03\n\rAiMessageSent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12N\n\x0ctarget_agent\x18\x02 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentB\x06\xbaH\x03\xc8\x01\x01R\x0btargetAgent\x12\x46\n\x0csource_agent\x18\x03 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x0bsourceAgent\x12\x1e\n\x0b\x61\x32\x61_task_id\x18\x04 \x01(\tR\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x05 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xb8\x02\n\rAiTaskCreated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x05 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\x8f\x03\n\rAiTaskUpdated\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12U\n\x0bupdate_type\x18\x04 \x01(\x0e\x32,.sap.auditlog.auditevent.v2.AiTaskUpdateTypeB\x06\xbaH\x03\xc8\x01\x01R\nupdateType\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xe2\x01\n\x0e\x41iTaskAccessed\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12&\n\x0b\x61\x32\x61_task_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x03 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x04 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xdb\x02\n\x16\x41iPushNotificationSent\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12:\n\x15push_notification_url\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x13pushNotificationUrl\x12&\n\x0b\x61\x32\x61_task_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x04 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x33\n\x0fresponse_status\x18\x06 \x01(\x05\x42\n\xbaH\x07\x1a\x05\x18\xd7\x04(dR\x0eresponseStatus\"\xe3\x03\n\x1aUserImpersonationRequested\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xe2\x03\n\x19UserImpersonationDeclined\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x32\n\x11user_initiator_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x03 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x11userInitiatorType\x12\x38\n\x14user_impersonated_id\x18\x04 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x05 \x01(\x0e\x32$.sap.auditlog.auditevent.v2.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x06 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\x12>\n\x08\x61i_agent\x18\x07 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\"\xfc\x02\n\x14\x41iUserInputRequested\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12;\n\x16requested_from_user_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x13requestedFromUserId\x12&\n\x0b\x61\x32\x61_task_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\ta2aTaskId\x12$\n\x0e\x61\x32\x61_context_id\x18\x04 \x01(\tR\x0c\x61\x32\x61\x43ontextId\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\xda\x02\n\x0b\x41iTurnStart\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12\x1f\n\x07turn_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06turnId\x12(\n\x0bturn_number\x18\x04 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x01R\nturnNumber\x12>\n\x08\x61i_agent\x18\x05 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12U\n\x0fmessage_context\x18\x06 \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\"\x95\x04\n\tAiTurnEnd\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12%\n\nsession_id\x18\x02 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\tsessionId\x12\x1f\n\x07turn_id\x18\x03 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\x06turnId\x12(\n\x0bturn_number\x18\x04 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x01R\nturnNumber\x12\x46\n\x06status\x18\x05 \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status\x12,\n\rprompt_tokens\x18\x06 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0cpromptTokens\x12\x34\n\x11\x63ompletion_tokens\x18\x07 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x10\x63ompletionTokens\x12*\n\x0ctotal_tokens\x18\x08 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0btotalTokens\x12U\n\x0fmessage_context\x18\t \x01(\x0b\x32,.sap.auditlog.auditevent.v2.AiMessageContextR\x0emessageContext\x12#\n\rerror_message\x18\n \x01(\tR\x0c\x65rrorMessage\"\xa5\x04\n\x0e\x41iMemoryAccess\x12\x42\n\x06\x63ommon\x18\x01 \x01(\x0b\x32\".sap.auditlog.auditevent.v2.CommonB\x06\xbaH\x03\xc8\x01\x01R\x06\x63ommon\x12\x1d\n\nsession_id\x18\x02 \x01(\tR\tsessionId\x12]\n\ractivity_type\x18\x03 \x01(\x0e\x32\x30.sap.auditlog.auditevent.v2.AiMemoryActivityTypeB\x06\xbaH\x03\xc8\x01\x01R\x0c\x61\x63tivityType\x12L\n\x0cmemory_scope\x18\x04 \x01(\x0e\x32).sap.auditlog.auditevent.v2.AiMemoryScopeR\x0bmemoryScope\x12.\n\x0fmemory_store_id\x18\x05 \x01(\tB\x06\xbaH\x03\xc8\x01\x01R\rmemoryStoreId\x12>\n\x08\x61i_agent\x18\x06 \x01(\x0b\x32#.sap.auditlog.auditevent.v2.AiAgentR\x07\x61iAgent\x12\x1d\n\nmemory_key\x18\x07 \x01(\tR\tmemoryKey\x12,\n\rrecords_count\x18\x08 \x01(\x05\x42\x07\xbaH\x04\x1a\x02(\x00R\x0crecordsCount\x12\x46\n\x06status\x18\t \x01(\x0e\x32..sap.auditlog.auditevent.v2.AiInvocationStatusR\x06status*\xb3\x01\n\x06\x41iRole\x12\x17\n\x13\x41I_ROLE_UNSPECIFIED\x10\x00\x12\x10\n\x0c\x41I_ROLE_USER\x10\x01\x12\x15\n\x11\x41I_ROLE_ASSISTANT\x10\x02\x12\x10\n\x0c\x41I_ROLE_TOOL\x10\x03\x12\x11\n\rAI_ROLE_AGENT\x10\x04\x12\x18\n\x14\x41I_ROLE_ORCHESTRATOR\x10\x05\x12\x15\n\x11\x41I_ROLE_RETRIEVER\x10\x06\x12\x11\n\rAI_ROLE_OTHER\x10\x63*\xc1\x01\n\x0b\x41iAgentType\x12\x1d\n\x19\x41I_AGENT_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_AGENT_TYPE_CONVERSATIONAL\x10\x01\x12\x1c\n\x18\x41I_AGENT_TYPE_AUTONOMOUS\x10\x02\x12\x1b\n\x17\x41I_AGENT_TYPE_RETRIEVAL\x10\x03\x12\x1d\n\x19\x41I_AGENT_TYPE_MULTI_AGENT\x10\x04\x12\x17\n\x13\x41I_AGENT_TYPE_OTHER\x10\x63*\x99\x02\n\x12\x41iSessionEndReason\x12%\n!AI_SESSION_END_REASON_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_SESSION_END_REASON_NORMAL\x10\x01\x12!\n\x1d\x41I_SESSION_END_REASON_TIMEOUT\x10\x02\x12)\n%AI_SESSION_END_REASON_USER_TERMINATED\x10\x03\x12\x1f\n\x1b\x41I_SESSION_END_REASON_ERROR\x10\x04\x12*\n&AI_SESSION_END_REASON_POLICY_VIOLATION\x10\x05\x12\x1f\n\x1b\x41I_SESSION_END_REASON_OTHER\x10\x63*\xc5\x02\n\x0f\x41iGuardrailType\x12!\n\x1d\x41I_GUARDRAIL_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x41I_GUARDRAIL_TYPE_INPUT\x10\x01\x12\x1c\n\x18\x41I_GUARDRAIL_TYPE_OUTPUT\x10\x02\x12$\n AI_GUARDRAIL_TYPE_CONTENT_POLICY\x10\x03\x12&\n\"AI_GUARDRAIL_TYPE_PROMPT_INJECTION\x10\x04\x12 \n\x1c\x41I_GUARDRAIL_TYPE_PII_FILTER\x10\x05\x12\"\n\x1e\x41I_GUARDRAIL_TYPE_DATA_LEAKAGE\x10\x06\x12#\n\x1f\x41I_GUARDRAIL_TYPE_HALLUCINATION\x10\x07\x12\x1b\n\x17\x41I_GUARDRAIL_TYPE_OTHER\x10\x63*\xf5\x01\n\x11\x41iGuardrailAction\x12#\n\x1f\x41I_GUARDRAIL_ACTION_UNSPECIFIED\x10\x00\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_ALLOW\x10\x01\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_BLOCK\x10\x02\x12\x1e\n\x1a\x41I_GUARDRAIL_ACTION_MODIFY\x10\x03\x12\x1c\n\x18\x41I_GUARDRAIL_ACTION_WARN\x10\x04\x12 \n\x1c\x41I_GUARDRAIL_ACTION_LOG_ONLY\x10\x05\x12\x1d\n\x19\x41I_GUARDRAIL_ACTION_OTHER\x10\x63*\xac\x02\n\x12\x41iInvocationStatus\x12$\n AI_INVOCATION_STATUS_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_INVOCATION_STATUS_SUCCESS\x10\x01\x12\x1f\n\x1b\x41I_INVOCATION_STATUS_FAILED\x10\x02\x12 \n\x1c\x41I_INVOCATION_STATUS_TIMEOUT\x10\x03\x12%\n!AI_INVOCATION_STATUS_RATE_LIMITED\x10\x04\x12\"\n\x1e\x41I_INVOCATION_STATUS_CANCELLED\x10\x05\x12 \n\x1c\x41I_INVOCATION_STATUS_PENDING\x10\x06\x12\x1e\n\x1a\x41I_INVOCATION_STATUS_OTHER\x10\x63*\xae\x02\n\x0f\x41iRetrievalType\x12!\n\x1d\x41I_RETRIEVAL_TYPE_UNSPECIFIED\x10\x00\x12#\n\x1f\x41I_RETRIEVAL_TYPE_VECTOR_SEARCH\x10\x01\x12$\n AI_RETRIEVAL_TYPE_KEYWORD_SEARCH\x10\x02\x12#\n\x1f\x41I_RETRIEVAL_TYPE_HYBRID_SEARCH\x10\x03\x12%\n!AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH\x10\x04\x12$\n AI_RETRIEVAL_TYPE_MEMORY_CONTEXT\x10\x05\x12\x1e\n\x1a\x41I_RETRIEVAL_TYPE_DOCUMENT\x10\x06\x12\x1b\n\x17\x41I_RETRIEVAL_TYPE_OTHER\x10\x63*\xd9\x01\n\x10\x41iFeedbackRating\x12\"\n\x1e\x41I_FEEDBACK_RATING_UNSPECIFIED\x10\x00\x12\x1f\n\x1b\x41I_FEEDBACK_RATING_POSITIVE\x10\x01\x12\x1f\n\x1b\x41I_FEEDBACK_RATING_NEGATIVE\x10\x02\x12\x1e\n\x1a\x41I_FEEDBACK_RATING_NEUTRAL\x10\x03\x12!\n\x1d\x41I_FEEDBACK_RATING_CORRECTION\x10\x04\x12\x1c\n\x18\x41I_FEEDBACK_RATING_OTHER\x10\x63*\x86\x02\n\x15\x41iToolCallDisposition\x12(\n$AI_TOOL_CALL_DISPOSITION_UNSPECIFIED\x10\x00\x12$\n AI_TOOL_CALL_DISPOSITION_ALLOWED\x10\x01\x12#\n\x1f\x41I_TOOL_CALL_DISPOSITION_DENIED\x10\x02\x12%\n!AI_TOOL_CALL_DISPOSITION_MODIFIED\x10\x03\x12-\n)AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL\x10\x04\x12\"\n\x1e\x41I_TOOL_CALL_DISPOSITION_OTHER\x10\x63*\xef\x01\n\x14\x41iMemoryActivityType\x12\'\n#AI_MEMORY_ACTIVITY_TYPE_UNSPECIFIED\x10\x00\x12 \n\x1c\x41I_MEMORY_ACTIVITY_TYPE_READ\x10\x01\x12\"\n\x1e\x41I_MEMORY_ACTIVITY_TYPE_UPDATE\x10\x02\x12!\n\x1d\x41I_MEMORY_ACTIVITY_TYPE_QUERY\x10\x04\x12!\n\x1d\x41I_MEMORY_ACTIVITY_TYPE_WRITE\x10\x05\x12\"\n\x1e\x41I_MEMORY_ACTIVITY_TYPE_DELETE\x10\x07*\x9e\x01\n\rAiMemoryScope\x12\x1f\n\x1b\x41I_MEMORY_SCOPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x41I_MEMORY_SCOPE_SESSION\x10\x01\x12\x18\n\x14\x41I_MEMORY_SCOPE_USER\x10\x02\x12\x19\n\x15\x41I_MEMORY_SCOPE_AGENT\x10\x03\x12\x1a\n\x16\x41I_MEMORY_SCOPE_GLOBAL\x10\x04*\x8c\x01\n\x0e\x43redentialType\x12\x1f\n\x1b\x43REDENTIAL_TYPE_UNSPECIFIED\x10\x00\x12$\n CREDENTIAL_TYPE_X509_CERTIFICATE\x10\x01\x12\x17\n\x13\x43REDENTIAL_TYPE_KEY\x10\x02\x12\x1a\n\x16\x43REDENTIAL_TYPE_SECRET\x10\x03*\x8f\x06\n\rFailureReason\x12\x1e\n\x1a\x46\x41ILURE_REASON_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x46\x41ILURE_REASON_PASSWORD\x10\x01\x12\x1d\n\x19\x46\x41ILURE_REASON_MFA_FAILED\x10\x02\x12!\n\x1d\x46\x41ILURE_REASON_USER_NOT_FOUND\x10\x03\x12\x1e\n\x1a\x46\x41ILURE_REASON_USER_LOCKED\x10\x04\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_BLOCKED\x10\x05\x12\"\n\x1e\x46\x41ILURE_REASON_USER_UNVERIFIED\x10\x06\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_EXPIRED\x10\x07\x12\x1f\n\x1b\x46\x41ILURE_REASON_USER_INVALID\x10\x08\x12&\n\"FAILURE_REASON_INSECURE_CONNECTION\x10\t\x12(\n$FAILURE_REASON_LOGIN_METHOD_DISABLED\x10\n\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_EXPIRED\x10\x0b\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_REVOKED\x10\x0c\x12 \n\x1c\x46\x41ILURE_REASON_TOKEN_INVALID\x10\r\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_EXPIRED\x10\x0e\x12\"\n\x1e\x46\x41ILURE_REASON_SESSION_REVOKED\x10\x0f\x12&\n\"FAILURE_REASON_CERTIFICATE_EXPIRED\x10\x10\x12&\n\"FAILURE_REASON_CERTIFICATE_REVOKED\x10\x11\x12&\n\"FAILURE_REASON_CERTIFICATE_INVALID\x10\x12\x12\x1b\n\x17\x46\x41ILURE_REASON_GEOBLOCK\x10\x13\x12 \n\x1c\x46\x41ILURE_REASON_MFA_REQUESTED\x10\x14\x12!\n\x1d\x46\x41ILURE_REASON_CRED_REQUESTED\x10\x15*\xbf\x05\n\x0bLoginMethod\x12\x1c\n\x18LOGIN_METHOD_UNSPECIFIED\x10\x00\x12 \n\x1cLOGIN_METHOD_OPEN_ID_CONNECT\x10\x01\x12\x15\n\x11LOGIN_METHOD_SAML\x10\x02\x12\x16\n\x12LOGIN_METHOD_SAML2\x10\x03\x12\x19\n\x15LOGIN_METHOD_EXTERNAL\x10\x04\x12\x17\n\x13LOGIN_METHOD_SPNEGO\x10\x05\x12\x19\n\x15LOGIN_METHOD_PASSWORD\x10\x06\x12\x1b\n\x17LOGIN_METHOD_RFC_TICKET\x10\x07\x12\x14\n\x10LOGIN_METHOD_SNC\x10\x08\x12\x1d\n\x19LOGIN_METHOD_LOGON_TICKET\x10\t\x12\x1c\n\x18LOGIN_METHOD_USER_SWITCH\x10\n\x12!\n\x1dLOGIN_METHOD_X509_CERTIFICATE\x10\x0b\x12\x1c\n\x18LOGIN_METHOD_APC_SESSION\x10\x0c\x12\x19\n\x15LOGIN_METHOD_INTERNAL\x10\r\x12\x17\n\x13LOGIN_METHOD_OAUTH2\x10\x0e\x12\"\n\x1eLOGIN_METHOD_REENTRANCE_TICKET\x10\x0f\x12\x1d\n\x19LOGIN_METHOD_HTTP_SESSION\x10\x10\x12!\n\x1dLOGIN_METHOD_ASSERTION_TICKET\x10\x11\x12\x1a\n\x16LOGIN_METHOD_REMCOOKIE\x10\x12\x12\x1a\n\x16LOGIN_METHOD_BIOMETRIC\x10\x13\x12\x19\n\x15LOGIN_METHOD_PASSCODE\x10\x14\x12\x17\n\x13LOGIN_METHOD_MOBSSO\x10\x15\x12\x1c\n\x18LOGIN_METHOD_EMAIL_TOKEN\x10\x16\x12\x1d\n\x19LOGIN_METHOD_BEARER_TOKEN\x10\x17*Z\n\nLogoffType\x12\x1b\n\x17LOGOFF_TYPE_UNSPECIFIED\x10\x00\x12\x17\n\x13LOGOFF_TYPE_REGULAR\x10\x01\x12\x16\n\x12LOGOFF_TYPE_FORCED\x10\x02*\xe8\x01\n\x11MaliciousBehavior\x12\"\n\x1eMALICIOUS_BEHAVIOR_UNSPECIFIED\x10\x00\x12%\n!MALICIOUS_BEHAVIOR_PARAMETER_SEEN\x10\x01\x12*\n&MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND\x10\x02\x12+\n\'MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN\x10\x03\x12/\n+MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED\x10\x04*\x99\x01\n\x07MfaType\x12\x18\n\x14MFA_TYPE_UNSPECIFIED\x10\x00\x12\x11\n\rMFA_TYPE_NONE\x10\x01\x12\x10\n\x0cMFA_TYPE_RSA\x10\x02\x12\x11\n\rMFA_TYPE_TOTP\x10\x03\x12\x16\n\x12MFA_TYPE_WEB_AUTHN\x10\x04\x12\x10\n\x0cMFA_TYPE_SMS\x10\x05\x12\x12\n\x0eMFA_TYPE_EMAIL\x10\x06*\x98\x01\n\x08UserType\x12\x19\n\x15USER_TYPE_UNSPECIFIED\x10\x00\x12\x1b\n\x17USER_TYPE_BUSINESS_USER\x10\x01\x12\x1c\n\x18USER_TYPE_TECHNICAL_USER\x10\x02\x12\x1e\n\x1aUSER_TYPE_SAP_SUPPORT_USER\x10\x03\x12\x16\n\x12USER_TYPE_AI_AGENT\x10\x04*\xb7\x01\n\x15\x44\x61taExportChannelType\x12(\n$DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED\x10\x00\x12%\n!DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD\x10\x01\x12\'\n#DATA_EXPORT_CHANNEL_TYPE_API_ACCESS\x10\x02\x12$\n DATA_EXPORT_CHANNEL_TYPE_PRINTER\x10\x03*\xb0\x01\n\x11\x45ventCategoryCode\x12\'\n#EVENT_CATEGORY_CODE_SEC_UNSPECIFIED\x10\x00\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_IAM\x10\x01\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_CFG\x10\x02\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_DPP\x10\x03\x12\x1b\n\x17\x45VENT_CATEGORY_CODE_RAL\x10\x04*\xdc\x01\n\tCMKAction\x12\x1a\n\x16\x43MK_ACTION_UNSPECIFIED\x10\x00\x12\x16\n\x12\x43MK_ACTION_ONBOARD\x10\x01\x12\x14\n\x10\x43MK_ACTION_BLOCK\x10\x02\x12\x17\n\x13\x43MK_ACTION_SHUTDOWN\x10\x03\x12\x1b\n\x17\x43MK_ACTION_CSEKFALLBACK\x10\x04\x12\x16\n\x12\x43MK_ACTION_RESTORE\x10\x05\x12\x1a\n\x16\x43MK_ACTION_KMS_ONBOARD\x10\x06\x12\x1b\n\x17\x43MK_ACTION_KMS_OFFBOARD\x10\x07*s\n\x07KeyType\x12\x18\n\x14KEY_TYPE_UNSPECIFIED\x10\x00\x12\x13\n\x0fKEY_TYPE_SYSTEM\x10\x01\x12\x14\n\x10KEY_TYPE_SERVICE\x10\x02\x12\x11\n\rKEY_TYPE_DATA\x10\x03\x12\x10\n\x0cKEY_TYPE_KEK\x10\x04*_\n\x0cVirusChannel\x12\x1d\n\x19VIRUS_CHANNEL_UNSPECIFIED\x10\x00\x12\x18\n\x14VIRUS_CHANNEL_UPLOAD\x10\x01\x12\x16\n\x12VIRUS_CHANNEL_SCAN\x10\x02*\xa1\x01\n\x10\x41iTaskUpdateType\x12#\n\x1f\x41I_TASK_UPDATE_TYPE_UNSPECIFIED\x10\x00\x12\x1e\n\x1a\x41I_TASK_UPDATE_TYPE_STATUS\x10\x01\x12 \n\x1c\x41I_TASK_UPDATE_TYPE_ARTIFACT\x10\x02\x12&\n\"AI_TASK_UPDATE_TYPE_INPUT_REQUIRED\x10\x03*{\n\rLoginProtocol\x12\x1e\n\x1aLOGIN_PROTOCOL_UNSPECIFIED\x10\x00\x12\x18\n\x14LOGIN_PROTOCOL_SAML2\x10\x01\x12\x17\n\x13LOGIN_PROTOCOL_OIDC\x10\x02\x12\x17\n\x13LOGIN_PROTOCOL_HTTP\x10\x03\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -41,8 +41,6 @@ _globals['_TRACECONTEXT'].fields_by_name['trace_id']._serialized_options = b'\272H\022r\0202\016^[0-9a-f]{32}$' _globals['_TRACECONTEXT'].fields_by_name['span_id']._loaded_options = None _globals['_TRACECONTEXT'].fields_by_name['span_id']._serialized_options = b'\272H\022r\0202\016^[0-9a-f]{16}$' - _globals['_AIMODEL'].fields_by_name['ai_provider']._loaded_options = None - _globals['_AIMODEL'].fields_by_name['ai_provider']._serialized_options = b'\272H\003\310\001\001' _globals['_COMMON_APPCONTEXTENTRY']._loaded_options = None _globals['_COMMON_APPCONTEXTENTRY']._serialized_options = b'8\001' _globals['_COMMON'].fields_by_name['user_initiator_id']._loaded_options = None @@ -631,6 +629,16 @@ _globals['_CMKDETACH'].fields_by_name['kms_system_id']._serialized_options = b'\272H\003\310\001\001' _globals['_CMKDETACH'].fields_by_name['system_id']._loaded_options = None _globals['_CMKDETACH'].fields_by_name['system_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMODEL'].fields_by_name['ai_provider']._loaded_options = None + _globals['_AIMODEL'].fields_by_name['ai_provider']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIAGENT'].fields_by_name['uid']._loaded_options = None + _globals['_AIAGENT'].fields_by_name['uid']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMESSAGECONTEXT'].fields_by_name['prompt_tokens']._loaded_options = None + _globals['_AIMESSAGECONTEXT'].fields_by_name['prompt_tokens']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AIMESSAGECONTEXT'].fields_by_name['completion_tokens']._loaded_options = None + _globals['_AIMESSAGECONTEXT'].fields_by_name['completion_tokens']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AIMESSAGECONTEXT'].fields_by_name['total_tokens']._loaded_options = None + _globals['_AIMESSAGECONTEXT'].fields_by_name['total_tokens']._serialized_options = b'\272H\004\032\002(\000' _globals['_AISESSIONSTART'].fields_by_name['common']._loaded_options = None _globals['_AISESSIONSTART'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AISESSIONSTART'].fields_by_name['session_id']._loaded_options = None @@ -639,8 +647,14 @@ _globals['_AISESSIONEND'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AISESSIONEND'].fields_by_name['session_id']._loaded_options = None _globals['_AISESSIONEND'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISESSIONEND'].fields_by_name['total_tokens']._loaded_options = None + _globals['_AISESSIONEND'].fields_by_name['total_tokens']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AISESSIONEND'].fields_by_name['turn_count']._loaded_options = None + _globals['_AISESSIONEND'].fields_by_name['turn_count']._serialized_options = b'\272H\004\032\002(\000' _globals['_AIPROMPTRECEIVED'].fields_by_name['common']._loaded_options = None _globals['_AIPROMPTRECEIVED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIPROMPTRECEIVED'].fields_by_name['session_id']._loaded_options = None + _globals['_AIPROMPTRECEIVED'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['common']._loaded_options = None _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AIGUARDRAILTRIGGERED'].fields_by_name['guardrail_name']._loaded_options = None @@ -657,6 +671,8 @@ _globals['_AISKILLSELECTED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AISKILLSELECTED'].fields_by_name['skill_name']._loaded_options = None _globals['_AISKILLSELECTED'].fields_by_name['skill_name']._serialized_options = b'\272H\003\310\001\001' + _globals['_AISKILLSELECTED'].fields_by_name['confidence_score']._loaded_options = None + _globals['_AISKILLSELECTED'].fields_by_name['confidence_score']._serialized_options = b'\272H\014\n\n\035\000\000\200?-\000\000\000\000' _globals['_AIAGENTDELEGATED'].fields_by_name['common']._loaded_options = None _globals['_AIAGENTDELEGATED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AIAGENTDELEGATED'].fields_by_name['source_agent']._loaded_options = None @@ -673,14 +689,22 @@ _globals['_AIDIRECTAPIACCESS'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AIDIRECTAPIACCESS'].fields_by_name['target_api_id']._loaded_options = None _globals['_AIDIRECTAPIACCESS'].fields_by_name['target_api_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIDIRECTAPIACCESS'].fields_by_name['response_status_code']._loaded_options = None + _globals['_AIDIRECTAPIACCESS'].fields_by_name['response_status_code']._serialized_options = b'\272H\007\032\005\030\327\004(d' _globals['_AIDATARETRIEVAL'].fields_by_name['common']._loaded_options = None _globals['_AIDATARETRIEVAL'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AIDATARETRIEVAL'].fields_by_name['data_source_id']._loaded_options = None _globals['_AIDATARETRIEVAL'].fields_by_name['data_source_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIDATARETRIEVAL'].fields_by_name['results_count']._loaded_options = None + _globals['_AIDATARETRIEVAL'].fields_by_name['results_count']._serialized_options = b'\272H\004\032\002(\000' _globals['_AIRESPONSEGENERATED'].fields_by_name['common']._loaded_options = None _globals['_AIRESPONSEGENERATED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIRESPONSEGENERATED'].fields_by_name['session_id']._loaded_options = None + _globals['_AIRESPONSEGENERATED'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' _globals['_AIUSERFEEDBACK'].fields_by_name['common']._loaded_options = None _globals['_AIUSERFEEDBACK'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIUSERFEEDBACK'].fields_by_name['feedback_score']._loaded_options = None + _globals['_AIUSERFEEDBACK'].fields_by_name['feedback_score']._serialized_options = b'\272H\004\032\002(\000' _globals['_AIMESSAGESENT'].fields_by_name['common']._loaded_options = None _globals['_AIMESSAGESENT'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_AIMESSAGESENT'].fields_by_name['target_agent']._loaded_options = None @@ -705,6 +729,8 @@ _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['push_notification_url']._serialized_options = b'\272H\003\310\001\001' _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['a2a_task_id']._loaded_options = None _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['response_status']._loaded_options = None + _globals['_AIPUSHNOTIFICATIONSENT'].fields_by_name['response_status']._serialized_options = b'\272H\007\032\005\030\327\004(d' _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['common']._loaded_options = None _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' _globals['_USERIMPERSONATIONREQUESTED'].fields_by_name['user_initiator_id']._loaded_options = None @@ -727,280 +753,320 @@ _globals['_AIUSERINPUTREQUESTED'].fields_by_name['requested_from_user_id']._serialized_options = b'\272H\003\310\001\001' _globals['_AIUSERINPUTREQUESTED'].fields_by_name['a2a_task_id']._loaded_options = None _globals['_AIUSERINPUTREQUESTED'].fields_by_name['a2a_task_id']._serialized_options = b'\272H\003\310\001\001' - _globals['_AIROLE']._serialized_start=29448 - _globals['_AIROLE']._serialized_end=29627 - _globals['_AIAGENTTYPE']._serialized_start=29630 - _globals['_AIAGENTTYPE']._serialized_end=29823 - _globals['_AISESSIONENDREASON']._serialized_start=29826 - _globals['_AISESSIONENDREASON']._serialized_end=30107 - _globals['_AIGUARDRAILTYPE']._serialized_start=30110 - _globals['_AIGUARDRAILTYPE']._serialized_end=30435 - _globals['_AIGUARDRAILACTION']._serialized_start=30438 - _globals['_AIGUARDRAILACTION']._serialized_end=30683 - _globals['_AIINVOCATIONSTATUS']._serialized_start=30686 - _globals['_AIINVOCATIONSTATUS']._serialized_end=30986 - _globals['_AIRETRIEVALTYPE']._serialized_start=30989 - _globals['_AIRETRIEVALTYPE']._serialized_end=31291 - _globals['_AIFEEDBACKRATING']._serialized_start=31294 - _globals['_AIFEEDBACKRATING']._serialized_end=31511 - _globals['_AITOOLCALLDISPOSITION']._serialized_start=31514 - _globals['_AITOOLCALLDISPOSITION']._serialized_end=31776 - _globals['_CREDENTIALTYPE']._serialized_start=31779 - _globals['_CREDENTIALTYPE']._serialized_end=31919 - _globals['_FAILUREREASON']._serialized_start=31922 - _globals['_FAILUREREASON']._serialized_end=32705 - _globals['_LOGINMETHOD']._serialized_start=32708 - _globals['_LOGINMETHOD']._serialized_end=33411 - _globals['_LOGOFFTYPE']._serialized_start=33413 - _globals['_LOGOFFTYPE']._serialized_end=33503 - _globals['_MALICIOUSBEHAVIOR']._serialized_start=33506 - _globals['_MALICIOUSBEHAVIOR']._serialized_end=33738 - _globals['_MFATYPE']._serialized_start=33741 - _globals['_MFATYPE']._serialized_end=33894 - _globals['_USERTYPE']._serialized_start=33897 - _globals['_USERTYPE']._serialized_end=34049 - _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=34052 - _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=34235 - _globals['_EVENTCATEGORYCODE']._serialized_start=34238 - _globals['_EVENTCATEGORYCODE']._serialized_end=34414 - _globals['_CMKACTION']._serialized_start=34417 - _globals['_CMKACTION']._serialized_end=34637 - _globals['_KEYTYPE']._serialized_start=34639 - _globals['_KEYTYPE']._serialized_end=34754 - _globals['_VIRUSCHANNEL']._serialized_start=34756 - _globals['_VIRUSCHANNEL']._serialized_end=34851 - _globals['_AITASKUPDATETYPE']._serialized_start=34854 - _globals['_AITASKUPDATETYPE']._serialized_end=35015 - _globals['_LOGINPROTOCOL']._serialized_start=35017 - _globals['_LOGINPROTOCOL']._serialized_end=35140 + _globals['_AITURNSTART'].fields_by_name['common']._loaded_options = None + _globals['_AITURNSTART'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITURNSTART'].fields_by_name['session_id']._loaded_options = None + _globals['_AITURNSTART'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITURNSTART'].fields_by_name['turn_id']._loaded_options = None + _globals['_AITURNSTART'].fields_by_name['turn_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITURNSTART'].fields_by_name['turn_number']._loaded_options = None + _globals['_AITURNSTART'].fields_by_name['turn_number']._serialized_options = b'\272H\004\032\002(\001' + _globals['_AITURNEND'].fields_by_name['common']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITURNEND'].fields_by_name['session_id']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['session_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITURNEND'].fields_by_name['turn_id']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['turn_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AITURNEND'].fields_by_name['turn_number']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['turn_number']._serialized_options = b'\272H\004\032\002(\001' + _globals['_AITURNEND'].fields_by_name['prompt_tokens']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['prompt_tokens']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AITURNEND'].fields_by_name['completion_tokens']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['completion_tokens']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AITURNEND'].fields_by_name['total_tokens']._loaded_options = None + _globals['_AITURNEND'].fields_by_name['total_tokens']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AIMEMORYACCESS'].fields_by_name['common']._loaded_options = None + _globals['_AIMEMORYACCESS'].fields_by_name['common']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMEMORYACCESS'].fields_by_name['activity_type']._loaded_options = None + _globals['_AIMEMORYACCESS'].fields_by_name['activity_type']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMEMORYACCESS'].fields_by_name['memory_store_id']._loaded_options = None + _globals['_AIMEMORYACCESS'].fields_by_name['memory_store_id']._serialized_options = b'\272H\003\310\001\001' + _globals['_AIMEMORYACCESS'].fields_by_name['records_count']._loaded_options = None + _globals['_AIMEMORYACCESS'].fields_by_name['records_count']._serialized_options = b'\272H\004\032\002(\000' + _globals['_AIROLE']._serialized_start=30856 + _globals['_AIROLE']._serialized_end=31035 + _globals['_AIAGENTTYPE']._serialized_start=31038 + _globals['_AIAGENTTYPE']._serialized_end=31231 + _globals['_AISESSIONENDREASON']._serialized_start=31234 + _globals['_AISESSIONENDREASON']._serialized_end=31515 + _globals['_AIGUARDRAILTYPE']._serialized_start=31518 + _globals['_AIGUARDRAILTYPE']._serialized_end=31843 + _globals['_AIGUARDRAILACTION']._serialized_start=31846 + _globals['_AIGUARDRAILACTION']._serialized_end=32091 + _globals['_AIINVOCATIONSTATUS']._serialized_start=32094 + _globals['_AIINVOCATIONSTATUS']._serialized_end=32394 + _globals['_AIRETRIEVALTYPE']._serialized_start=32397 + _globals['_AIRETRIEVALTYPE']._serialized_end=32699 + _globals['_AIFEEDBACKRATING']._serialized_start=32702 + _globals['_AIFEEDBACKRATING']._serialized_end=32919 + _globals['_AITOOLCALLDISPOSITION']._serialized_start=32922 + _globals['_AITOOLCALLDISPOSITION']._serialized_end=33184 + _globals['_AIMEMORYACTIVITYTYPE']._serialized_start=33187 + _globals['_AIMEMORYACTIVITYTYPE']._serialized_end=33426 + _globals['_AIMEMORYSCOPE']._serialized_start=33429 + _globals['_AIMEMORYSCOPE']._serialized_end=33587 + _globals['_CREDENTIALTYPE']._serialized_start=33590 + _globals['_CREDENTIALTYPE']._serialized_end=33730 + _globals['_FAILUREREASON']._serialized_start=33733 + _globals['_FAILUREREASON']._serialized_end=34516 + _globals['_LOGINMETHOD']._serialized_start=34519 + _globals['_LOGINMETHOD']._serialized_end=35222 + _globals['_LOGOFFTYPE']._serialized_start=35224 + _globals['_LOGOFFTYPE']._serialized_end=35314 + _globals['_MALICIOUSBEHAVIOR']._serialized_start=35317 + _globals['_MALICIOUSBEHAVIOR']._serialized_end=35549 + _globals['_MFATYPE']._serialized_start=35552 + _globals['_MFATYPE']._serialized_end=35705 + _globals['_USERTYPE']._serialized_start=35708 + _globals['_USERTYPE']._serialized_end=35860 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=35863 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=36046 + _globals['_EVENTCATEGORYCODE']._serialized_start=36049 + _globals['_EVENTCATEGORYCODE']._serialized_end=36225 + _globals['_CMKACTION']._serialized_start=36228 + _globals['_CMKACTION']._serialized_end=36448 + _globals['_KEYTYPE']._serialized_start=36450 + _globals['_KEYTYPE']._serialized_end=36565 + _globals['_VIRUSCHANNEL']._serialized_start=36567 + _globals['_VIRUSCHANNEL']._serialized_end=36662 + _globals['_AITASKUPDATETYPE']._serialized_start=36665 + _globals['_AITASKUPDATETYPE']._serialized_end=36826 + _globals['_LOGINPROTOCOL']._serialized_start=36828 + _globals['_LOGINPROTOCOL']._serialized_end=36951 _globals['_USERCONTEXT']._serialized_start=168 _globals['_USERCONTEXT']._serialized_end=391 _globals['_USERCONTEXT_ATTRIBUTESENTRY']._serialized_start=330 _globals['_USERCONTEXT_ATTRIBUTESENTRY']._serialized_end=391 _globals['_TRACECONTEXT']._serialized_start=394 _globals['_TRACECONTEXT']._serialized_end=541 - _globals['_AIMODEL']._serialized_start=543 - _globals['_AIMODEL']._serialized_end=657 - _globals['_AIAGENT']._serialized_start=660 - _globals['_AIAGENT']._serialized_end=918 - _globals['_AIMESSAGECONTEXT']._serialized_start=921 - _globals['_AIMESSAGECONTEXT']._serialized_end=1230 - _globals['_AIDELEGATION']._serialized_start=1233 - _globals['_AIDELEGATION']._serialized_end=1441 - _globals['_COMMON']._serialized_start=1444 - _globals['_COMMON']._serialized_end=2272 - _globals['_COMMON_APPCONTEXTENTRY']._serialized_start=2211 - _globals['_COMMON_APPCONTEXTENTRY']._serialized_end=2272 - _globals['_AUDITLOGCLEAR']._serialized_start=2274 - _globals['_AUDITLOGCLEAR']._serialized_end=2399 - _globals['_AUDITLOGDISABLE']._serialized_start=2401 - _globals['_AUDITLOGDISABLE']._serialized_end=2486 - _globals['_AUDITLOGENABLE']._serialized_start=2488 - _globals['_AUDITLOGENABLE']._serialized_end=2572 - _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=2575 - _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=2799 - _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=2802 - _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=3029 - _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=3032 - _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=3253 - _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=3256 - _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=3480 - _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=3483 - _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=3771 - _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=3774 - _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=4065 - _globals['_AUTHNROLETOGROUPADD']._serialized_start=4068 - _globals['_AUTHNROLETOGROUPADD']._serialized_end=4215 - _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=4218 - _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=4368 - _globals['_AUTHNROLETOUSERADD']._serialized_start=4371 - _globals['_AUTHNROLETOUSERADD']._serialized_end=4582 - _globals['_AUTHNROLETOUSERDELETE']._serialized_start=4585 - _globals['_AUTHNROLETOUSERDELETE']._serialized_end=4799 - _globals['_AUTHNUSERTOGROUPADD']._serialized_start=4802 - _globals['_AUTHNUSERTOGROUPADD']._serialized_end=5016 - _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=5019 - _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=5236 - _globals['_CONFIGURATIONADD']._serialized_start=5239 - _globals['_CONFIGURATIONADD']._serialized_end=5486 - _globals['_CONFIGURATIONCHANGE']._serialized_start=5489 - _globals['_CONFIGURATIONCHANGE']._serialized_end=5807 - _globals['_CONFIGURATIONDELETE']._serialized_start=5810 - _globals['_CONFIGURATIONDELETE']._serialized_end=6060 - _globals['_CREDENTIALCREATE']._serialized_start=6063 - _globals['_CREDENTIALCREATE']._serialized_end=6287 - _globals['_CREDENTIALDELETE']._serialized_start=6290 - _globals['_CREDENTIALDELETE']._serialized_end=6514 - _globals['_CREDENTIALEXPIRATION']._serialized_start=6517 - _globals['_CREDENTIALEXPIRATION']._serialized_end=6814 - _globals['_CREDENTIALREVOKATION']._serialized_start=6817 - _globals['_CREDENTIALREVOKATION']._serialized_end=7114 - _globals['_DATAMODELCHANGE']._serialized_start=7117 - _globals['_DATAMODELCHANGE']._serialized_end=7404 - _globals['_DATAMODELCREATE']._serialized_start=7406 - _globals['_DATAMODELCREATE']._serialized_end=7526 - _globals['_DATAMODELDELETE']._serialized_start=7528 - _globals['_DATAMODELDELETE']._serialized_end=7648 - _globals['_DATAACCESS']._serialized_start=7651 - _globals['_DATAACCESS']._serialized_end=8061 - _globals['_DATACREATE']._serialized_start=8064 - _globals['_DATACREATE']._serialized_end=8306 - _globals['_DATADELETE']._serialized_start=8309 - _globals['_DATADELETE']._serialized_end=8551 - _globals['_DATAMODIFICATION']._serialized_start=8554 - _globals['_DATAMODIFICATION']._serialized_end=8862 - _globals['_DATAEXPORT']._serialized_start=8865 - _globals['_DATAEXPORT']._serialized_end=9205 - _globals['_DPPDATAACCESS']._serialized_start=9208 - _globals['_DPPDATAACCESS']._serialized_end=9721 - _globals['_DPPDATACREATE']._serialized_start=9724 - _globals['_DPPDATACREATE']._serialized_end=10069 - _globals['_DPPDATADELETE']._serialized_start=10072 - _globals['_DPPDATADELETE']._serialized_end=10417 - _globals['_DPPDATAMODIFICATION']._serialized_start=10420 - _globals['_DPPDATAMODIFICATION']._serialized_end=10831 - _globals['_JOBCHANGE']._serialized_start=10834 - _globals['_JOBCHANGE']._serialized_end=11111 - _globals['_JOBCREATE']._serialized_start=11113 - _globals['_JOBCREATE']._serialized_end=11223 - _globals['_JOBDELETE']._serialized_start=11225 - _globals['_JOBDELETE']._serialized_end=11335 - _globals['_JOBSTATUSCHANGE']._serialized_start=11338 - _globals['_JOBSTATUSCHANGE']._serialized_end=11621 - _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=11624 - _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=11917 - _globals['_PASSWORDCHANGE']._serialized_start=11919 - _globals['_PASSWORDCHANGE']._serialized_end=12036 - _globals['_PASSWORDEXPIRATION']._serialized_start=12038 - _globals['_PASSWORDEXPIRATION']._serialized_end=12159 - _globals['_PASSWORDRESET']._serialized_start=12161 - _globals['_PASSWORDRESET']._serialized_end=12277 - _globals['_TENANTMODIFICATION']._serialized_start=12280 - _globals['_TENANTMODIFICATION']._serialized_end=12572 - _globals['_TENANTOFFBOARDING']._serialized_start=12574 - _globals['_TENANTOFFBOARDING']._serialized_end=12698 - _globals['_TENANTONBOARDING']._serialized_start=12700 - _globals['_TENANTONBOARDING']._serialized_end=12823 - _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=12825 - _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=12917 - _globals['_UNAUTHORIZEDREQUEST']._serialized_start=12920 - _globals['_UNAUTHORIZEDREQUEST']._serialized_end=13054 - _globals['_USERACTIVATE']._serialized_start=13057 - _globals['_USERACTIVATE']._serialized_end=13239 - _globals['_USERBLOCK']._serialized_start=13242 - _globals['_USERBLOCK']._serialized_end=13421 - _globals['_USERCREATE']._serialized_start=13424 - _globals['_USERCREATE']._serialized_end=13604 - _globals['_USERDATAMODIFICATION']._serialized_start=13607 - _globals['_USERDATAMODIFICATION']._serialized_end=13964 - _globals['_USERDELETE']._serialized_start=13967 - _globals['_USERDELETE']._serialized_end=14147 - _globals['_USERIMPERSONATIONSTART']._serialized_start=14150 - _globals['_USERIMPERSONATIONSTART']._serialized_end=14565 - _globals['_USERIMPERSONATIONFINISH']._serialized_start=14568 - _globals['_USERIMPERSONATIONFINISH']._serialized_end=14984 - _globals['_USERLOCK']._serialized_start=14987 - _globals['_USERLOCK']._serialized_end=15165 - _globals['_USERUNLOCK']._serialized_start=15168 - _globals['_USERUNLOCK']._serialized_end=15348 - _globals['_USERVERIFY']._serialized_start=15351 - _globals['_USERVERIFY']._serialized_end=15531 - _globals['_USERLOGINFAILURE']._serialized_start=15534 - _globals['_USERLOGINFAILURE']._serialized_end=16023 - _globals['_USERLOGINSUCCESS']._serialized_start=16026 - _globals['_USERLOGINSUCCESS']._serialized_end=16441 - _globals['_USERLOGOFF']._serialized_start=16444 - _globals['_USERLOGOFF']._serialized_end=16687 - _globals['_ZZZCUSTOMEVENT']._serialized_start=16690 - _globals['_ZZZCUSTOMEVENT']._serialized_end=16830 - _globals['_CMKONBOARDING']._serialized_start=16833 - _globals['_CMKONBOARDING']._serialized_end=16984 - _globals['_CMKOFFBOARDING']._serialized_start=16987 - _globals['_CMKOFFBOARDING']._serialized_end=17139 - _globals['_CMKSWITCH']._serialized_start=17142 - _globals['_CMKSWITCH']._serialized_end=17334 - _globals['_CMKTENANTMODIFICATION']._serialized_start=17337 - _globals['_CMKTENANTMODIFICATION']._serialized_end=17574 - _globals['_CMKCREATE']._serialized_start=17577 - _globals['_CMKCREATE']._serialized_end=17731 - _globals['_CMKDELETE']._serialized_start=17734 - _globals['_CMKDELETE']._serialized_end=17888 - _globals['_CMKRESTORE']._serialized_start=17891 - _globals['_CMKRESTORE']._serialized_end=18046 - _globals['_CMKDISABLE']._serialized_start=18049 - _globals['_CMKDISABLE']._serialized_end=18204 - _globals['_CMKENABLE']._serialized_start=18207 - _globals['_CMKENABLE']._serialized_end=18361 - _globals['_CMKROTATE']._serialized_start=18363 - _globals['_CMKROTATE']._serialized_end=18473 - _globals['_KEYCREATE']._serialized_start=18476 - _globals['_KEYCREATE']._serialized_end=18726 - _globals['_KEYDELETE']._serialized_start=18729 - _globals['_KEYDELETE']._serialized_end=18979 - _globals['_KEYRESTORE']._serialized_start=18982 - _globals['_KEYRESTORE']._serialized_end=19233 - _globals['_KEYPURGE']._serialized_start=19236 - _globals['_KEYPURGE']._serialized_end=19485 - _globals['_KEYROTATE']._serialized_start=19488 - _globals['_KEYROTATE']._serialized_end=19738 - _globals['_KEYENABLE']._serialized_start=19741 - _globals['_KEYENABLE']._serialized_end=19991 - _globals['_KEYDISABLE']._serialized_start=19994 - _globals['_KEYDISABLE']._serialized_end=20245 - _globals['_KEYSUSPEND']._serialized_start=20248 - _globals['_KEYSUSPEND']._serialized_end=20499 - _globals['_KEYONBOARDKEYCHAIN']._serialized_start=20502 - _globals['_KEYONBOARDKEYCHAIN']._serialized_end=20761 - _globals['_CMKDROP']._serialized_start=20764 - _globals['_CMKDROP']._serialized_end=20916 - _globals['_CMKSUSPEND']._serialized_start=20919 - _globals['_CMKSUSPEND']._serialized_end=21074 - _globals['_VIRUSFINDING']._serialized_start=21077 - _globals['_VIRUSFINDING']._serialized_end=21322 - _globals['_CMKUNAVAILABLE']._serialized_start=21325 - _globals['_CMKUNAVAILABLE']._serialized_end=21484 - _globals['_CMKAVAILABLE']._serialized_start=21487 - _globals['_CMKAVAILABLE']._serialized_end=21644 - _globals['_CMKDETACH']._serialized_start=21647 - _globals['_CMKDETACH']._serialized_end=21838 - _globals['_AISESSIONSTART']._serialized_start=21841 - _globals['_AISESSIONSTART']._serialized_end=22166 - _globals['_AISESSIONEND']._serialized_start=22169 - _globals['_AISESSIONEND']._serialized_end=22437 - _globals['_AIPROMPTRECEIVED']._serialized_start=22440 - _globals['_AIPROMPTRECEIVED']._serialized_end=22708 - _globals['_AIGUARDRAILTRIGGERED']._serialized_start=22711 - _globals['_AIGUARDRAILTRIGGERED']._serialized_end=23195 - _globals['_AIMODELINVOCATION']._serialized_start=23198 - _globals['_AIMODELINVOCATION']._serialized_end=23679 - _globals['_AISKILLSELECTED']._serialized_start=23682 - _globals['_AISKILLSELECTED']._serialized_end=24028 - _globals['_AIAGENTDELEGATED']._serialized_start=24031 - _globals['_AIAGENTDELEGATED']._serialized_end=24425 - _globals['_AIMCPTOOLCALL']._serialized_start=24428 - _globals['_AIMCPTOOLCALL']._serialized_end=24840 - _globals['_AIDIRECTAPIACCESS']._serialized_start=24843 - _globals['_AIDIRECTAPIACCESS']._serialized_end=25255 - _globals['_AIDATARETRIEVAL']._serialized_start=25258 - _globals['_AIDATARETRIEVAL']._serialized_end=25678 - _globals['_AIRESPONSEGENERATED']._serialized_start=25681 - _globals['_AIRESPONSEGENERATED']._serialized_end=26047 - _globals['_AIUSERFEEDBACK']._serialized_start=26050 - _globals['_AIUSERFEEDBACK']._serialized_end=26412 - _globals['_AIMESSAGESENT']._serialized_start=26415 - _globals['_AIMESSAGESENT']._serialized_end=26807 - _globals['_AITASKCREATED']._serialized_start=26810 - _globals['_AITASKCREATED']._serialized_end=27122 - _globals['_AITASKUPDATED']._serialized_start=27125 - _globals['_AITASKUPDATED']._serialized_end=27524 - _globals['_AITASKACCESSED']._serialized_start=27527 - _globals['_AITASKACCESSED']._serialized_end=27753 - _globals['_AIPUSHNOTIFICATIONSENT']._serialized_start=27756 - _globals['_AIPUSHNOTIFICATIONSENT']._serialized_end=28091 - _globals['_USERIMPERSONATIONREQUESTED']._serialized_start=28094 - _globals['_USERIMPERSONATIONREQUESTED']._serialized_end=28577 - _globals['_USERIMPERSONATIONDECLINED']._serialized_start=28580 - _globals['_USERIMPERSONATIONDECLINED']._serialized_end=29062 - _globals['_AIUSERINPUTREQUESTED']._serialized_start=29065 - _globals['_AIUSERINPUTREQUESTED']._serialized_end=29445 + _globals['_COMMON']._serialized_start=544 + _globals['_COMMON']._serialized_end=1372 + _globals['_COMMON_APPCONTEXTENTRY']._serialized_start=1311 + _globals['_COMMON_APPCONTEXTENTRY']._serialized_end=1372 + _globals['_AUDITLOGCLEAR']._serialized_start=1374 + _globals['_AUDITLOGCLEAR']._serialized_end=1499 + _globals['_AUDITLOGDISABLE']._serialized_start=1501 + _globals['_AUDITLOGDISABLE']._serialized_end=1586 + _globals['_AUDITLOGENABLE']._serialized_start=1588 + _globals['_AUDITLOGENABLE']._serialized_end=1672 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=1675 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=1899 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=1902 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=2129 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=2132 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=2353 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=2356 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=2580 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=2583 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=2871 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=2874 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=3165 + _globals['_AUTHNROLETOGROUPADD']._serialized_start=3168 + _globals['_AUTHNROLETOGROUPADD']._serialized_end=3315 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=3318 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=3468 + _globals['_AUTHNROLETOUSERADD']._serialized_start=3471 + _globals['_AUTHNROLETOUSERADD']._serialized_end=3682 + _globals['_AUTHNROLETOUSERDELETE']._serialized_start=3685 + _globals['_AUTHNROLETOUSERDELETE']._serialized_end=3899 + _globals['_AUTHNUSERTOGROUPADD']._serialized_start=3902 + _globals['_AUTHNUSERTOGROUPADD']._serialized_end=4116 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=4119 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=4336 + _globals['_CONFIGURATIONADD']._serialized_start=4339 + _globals['_CONFIGURATIONADD']._serialized_end=4586 + _globals['_CONFIGURATIONCHANGE']._serialized_start=4589 + _globals['_CONFIGURATIONCHANGE']._serialized_end=4907 + _globals['_CONFIGURATIONDELETE']._serialized_start=4910 + _globals['_CONFIGURATIONDELETE']._serialized_end=5160 + _globals['_CREDENTIALCREATE']._serialized_start=5163 + _globals['_CREDENTIALCREATE']._serialized_end=5387 + _globals['_CREDENTIALDELETE']._serialized_start=5390 + _globals['_CREDENTIALDELETE']._serialized_end=5614 + _globals['_CREDENTIALEXPIRATION']._serialized_start=5617 + _globals['_CREDENTIALEXPIRATION']._serialized_end=5914 + _globals['_CREDENTIALREVOKATION']._serialized_start=5917 + _globals['_CREDENTIALREVOKATION']._serialized_end=6214 + _globals['_DATAMODELCHANGE']._serialized_start=6217 + _globals['_DATAMODELCHANGE']._serialized_end=6504 + _globals['_DATAMODELCREATE']._serialized_start=6506 + _globals['_DATAMODELCREATE']._serialized_end=6626 + _globals['_DATAMODELDELETE']._serialized_start=6628 + _globals['_DATAMODELDELETE']._serialized_end=6748 + _globals['_DATAACCESS']._serialized_start=6751 + _globals['_DATAACCESS']._serialized_end=7161 + _globals['_DATACREATE']._serialized_start=7164 + _globals['_DATACREATE']._serialized_end=7406 + _globals['_DATADELETE']._serialized_start=7409 + _globals['_DATADELETE']._serialized_end=7651 + _globals['_DATAMODIFICATION']._serialized_start=7654 + _globals['_DATAMODIFICATION']._serialized_end=7962 + _globals['_DATAEXPORT']._serialized_start=7965 + _globals['_DATAEXPORT']._serialized_end=8305 + _globals['_DPPDATAACCESS']._serialized_start=8308 + _globals['_DPPDATAACCESS']._serialized_end=8821 + _globals['_DPPDATACREATE']._serialized_start=8824 + _globals['_DPPDATACREATE']._serialized_end=9169 + _globals['_DPPDATADELETE']._serialized_start=9172 + _globals['_DPPDATADELETE']._serialized_end=9517 + _globals['_DPPDATAMODIFICATION']._serialized_start=9520 + _globals['_DPPDATAMODIFICATION']._serialized_end=9931 + _globals['_JOBCHANGE']._serialized_start=9934 + _globals['_JOBCHANGE']._serialized_end=10211 + _globals['_JOBCREATE']._serialized_start=10213 + _globals['_JOBCREATE']._serialized_end=10323 + _globals['_JOBDELETE']._serialized_start=10325 + _globals['_JOBDELETE']._serialized_end=10435 + _globals['_JOBSTATUSCHANGE']._serialized_start=10438 + _globals['_JOBSTATUSCHANGE']._serialized_end=10721 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=10724 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=11017 + _globals['_PASSWORDCHANGE']._serialized_start=11019 + _globals['_PASSWORDCHANGE']._serialized_end=11136 + _globals['_PASSWORDEXPIRATION']._serialized_start=11138 + _globals['_PASSWORDEXPIRATION']._serialized_end=11259 + _globals['_PASSWORDRESET']._serialized_start=11261 + _globals['_PASSWORDRESET']._serialized_end=11377 + _globals['_TENANTMODIFICATION']._serialized_start=11380 + _globals['_TENANTMODIFICATION']._serialized_end=11672 + _globals['_TENANTOFFBOARDING']._serialized_start=11674 + _globals['_TENANTOFFBOARDING']._serialized_end=11798 + _globals['_TENANTONBOARDING']._serialized_start=11800 + _globals['_TENANTONBOARDING']._serialized_end=11923 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=11925 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=12017 + _globals['_UNAUTHORIZEDREQUEST']._serialized_start=12020 + _globals['_UNAUTHORIZEDREQUEST']._serialized_end=12154 + _globals['_USERACTIVATE']._serialized_start=12157 + _globals['_USERACTIVATE']._serialized_end=12339 + _globals['_USERBLOCK']._serialized_start=12342 + _globals['_USERBLOCK']._serialized_end=12521 + _globals['_USERCREATE']._serialized_start=12524 + _globals['_USERCREATE']._serialized_end=12704 + _globals['_USERDATAMODIFICATION']._serialized_start=12707 + _globals['_USERDATAMODIFICATION']._serialized_end=13064 + _globals['_USERDELETE']._serialized_start=13067 + _globals['_USERDELETE']._serialized_end=13247 + _globals['_USERIMPERSONATIONSTART']._serialized_start=13250 + _globals['_USERIMPERSONATIONSTART']._serialized_end=13665 + _globals['_USERIMPERSONATIONFINISH']._serialized_start=13668 + _globals['_USERIMPERSONATIONFINISH']._serialized_end=14084 + _globals['_USERLOCK']._serialized_start=14087 + _globals['_USERLOCK']._serialized_end=14265 + _globals['_USERUNLOCK']._serialized_start=14268 + _globals['_USERUNLOCK']._serialized_end=14448 + _globals['_USERVERIFY']._serialized_start=14451 + _globals['_USERVERIFY']._serialized_end=14631 + _globals['_USERLOGINFAILURE']._serialized_start=14634 + _globals['_USERLOGINFAILURE']._serialized_end=15123 + _globals['_USERLOGINSUCCESS']._serialized_start=15126 + _globals['_USERLOGINSUCCESS']._serialized_end=15541 + _globals['_USERLOGOFF']._serialized_start=15544 + _globals['_USERLOGOFF']._serialized_end=15787 + _globals['_ZZZCUSTOMEVENT']._serialized_start=15790 + _globals['_ZZZCUSTOMEVENT']._serialized_end=15930 + _globals['_CMKONBOARDING']._serialized_start=15933 + _globals['_CMKONBOARDING']._serialized_end=16084 + _globals['_CMKOFFBOARDING']._serialized_start=16087 + _globals['_CMKOFFBOARDING']._serialized_end=16239 + _globals['_CMKSWITCH']._serialized_start=16242 + _globals['_CMKSWITCH']._serialized_end=16434 + _globals['_CMKTENANTMODIFICATION']._serialized_start=16437 + _globals['_CMKTENANTMODIFICATION']._serialized_end=16674 + _globals['_CMKCREATE']._serialized_start=16677 + _globals['_CMKCREATE']._serialized_end=16831 + _globals['_CMKDELETE']._serialized_start=16834 + _globals['_CMKDELETE']._serialized_end=16988 + _globals['_CMKRESTORE']._serialized_start=16991 + _globals['_CMKRESTORE']._serialized_end=17146 + _globals['_CMKDISABLE']._serialized_start=17149 + _globals['_CMKDISABLE']._serialized_end=17304 + _globals['_CMKENABLE']._serialized_start=17307 + _globals['_CMKENABLE']._serialized_end=17461 + _globals['_CMKROTATE']._serialized_start=17463 + _globals['_CMKROTATE']._serialized_end=17573 + _globals['_KEYCREATE']._serialized_start=17576 + _globals['_KEYCREATE']._serialized_end=17826 + _globals['_KEYDELETE']._serialized_start=17829 + _globals['_KEYDELETE']._serialized_end=18079 + _globals['_KEYRESTORE']._serialized_start=18082 + _globals['_KEYRESTORE']._serialized_end=18333 + _globals['_KEYPURGE']._serialized_start=18336 + _globals['_KEYPURGE']._serialized_end=18585 + _globals['_KEYROTATE']._serialized_start=18588 + _globals['_KEYROTATE']._serialized_end=18838 + _globals['_KEYENABLE']._serialized_start=18841 + _globals['_KEYENABLE']._serialized_end=19091 + _globals['_KEYDISABLE']._serialized_start=19094 + _globals['_KEYDISABLE']._serialized_end=19345 + _globals['_KEYSUSPEND']._serialized_start=19348 + _globals['_KEYSUSPEND']._serialized_end=19599 + _globals['_KEYONBOARDKEYCHAIN']._serialized_start=19602 + _globals['_KEYONBOARDKEYCHAIN']._serialized_end=19861 + _globals['_CMKDROP']._serialized_start=19864 + _globals['_CMKDROP']._serialized_end=20016 + _globals['_CMKSUSPEND']._serialized_start=20019 + _globals['_CMKSUSPEND']._serialized_end=20174 + _globals['_VIRUSFINDING']._serialized_start=20177 + _globals['_VIRUSFINDING']._serialized_end=20422 + _globals['_CMKUNAVAILABLE']._serialized_start=20425 + _globals['_CMKUNAVAILABLE']._serialized_end=20584 + _globals['_CMKAVAILABLE']._serialized_start=20587 + _globals['_CMKAVAILABLE']._serialized_end=20744 + _globals['_CMKDETACH']._serialized_start=20747 + _globals['_CMKDETACH']._serialized_end=20938 + _globals['_AIMODEL']._serialized_start=20940 + _globals['_AIMODEL']._serialized_end=21054 + _globals['_AIAGENT']._serialized_start=21057 + _globals['_AIAGENT']._serialized_end=21323 + _globals['_AIMESSAGECONTEXT']._serialized_start=21326 + _globals['_AIMESSAGECONTEXT']._serialized_end=21662 + _globals['_AIDELEGATION']._serialized_start=21665 + _globals['_AIDELEGATION']._serialized_end=21873 + _globals['_AISESSIONSTART']._serialized_start=21876 + _globals['_AISESSIONSTART']._serialized_end=22201 + _globals['_AISESSIONEND']._serialized_start=22204 + _globals['_AISESSIONEND']._serialized_end=22488 + _globals['_AIPROMPTRECEIVED']._serialized_start=22491 + _globals['_AIPROMPTRECEIVED']._serialized_end=22767 + _globals['_AIGUARDRAILTRIGGERED']._serialized_start=22770 + _globals['_AIGUARDRAILTRIGGERED']._serialized_end=23254 + _globals['_AIMODELINVOCATION']._serialized_start=23257 + _globals['_AIMODELINVOCATION']._serialized_end=23707 + _globals['_AISKILLSELECTED']._serialized_start=23710 + _globals['_AISKILLSELECTED']._serialized_end=24073 + _globals['_AIAGENTDELEGATED']._serialized_start=24076 + _globals['_AIAGENTDELEGATED']._serialized_end=24470 + _globals['_AIMCPTOOLCALL']._serialized_start=24473 + _globals['_AIMCPTOOLCALL']._serialized_end=24854 + _globals['_AIDIRECTAPIACCESS']._serialized_start=24857 + _globals['_AIDIRECTAPIACCESS']._serialized_end=25250 + _globals['_AIDATARETRIEVAL']._serialized_start=25253 + _globals['_AIDATARETRIEVAL']._serialized_end=25651 + _globals['_AIRESPONSEGENERATED']._serialized_start=25654 + _globals['_AIRESPONSEGENERATED']._serialized_end=25997 + _globals['_AIUSERFEEDBACK']._serialized_start=26000 + _globals['_AIUSERFEEDBACK']._serialized_end=26371 + _globals['_AIMESSAGESENT']._serialized_start=26374 + _globals['_AIMESSAGESENT']._serialized_end=26766 + _globals['_AITASKCREATED']._serialized_start=26769 + _globals['_AITASKCREATED']._serialized_end=27081 + _globals['_AITASKUPDATED']._serialized_start=27084 + _globals['_AITASKUPDATED']._serialized_end=27483 + _globals['_AITASKACCESSED']._serialized_start=27486 + _globals['_AITASKACCESSED']._serialized_end=27712 + _globals['_AIPUSHNOTIFICATIONSENT']._serialized_start=27715 + _globals['_AIPUSHNOTIFICATIONSENT']._serialized_end=28062 + _globals['_USERIMPERSONATIONREQUESTED']._serialized_start=28065 + _globals['_USERIMPERSONATIONREQUESTED']._serialized_end=28548 + _globals['_USERIMPERSONATIONDECLINED']._serialized_start=28551 + _globals['_USERIMPERSONATIONDECLINED']._serialized_end=29033 + _globals['_AIUSERINPUTREQUESTED']._serialized_start=29036 + _globals['_AIUSERINPUTREQUESTED']._serialized_end=29416 + _globals['_AITURNSTART']._serialized_start=29419 + _globals['_AITURNSTART']._serialized_end=29765 + _globals['_AITURNEND']._serialized_start=29768 + _globals['_AITURNEND']._serialized_end=30301 + _globals['_AIMEMORYACCESS']._serialized_start=30304 + _globals['_AIMEMORYACCESS']._serialized_end=30853 # @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi index 89203980..67550225 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi @@ -104,6 +104,23 @@ class AiToolCallDisposition(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL: _ClassVar[AiToolCallDisposition] AI_TOOL_CALL_DISPOSITION_OTHER: _ClassVar[AiToolCallDisposition] +class AiMemoryActivityType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_MEMORY_ACTIVITY_TYPE_UNSPECIFIED: _ClassVar[AiMemoryActivityType] + AI_MEMORY_ACTIVITY_TYPE_READ: _ClassVar[AiMemoryActivityType] + AI_MEMORY_ACTIVITY_TYPE_UPDATE: _ClassVar[AiMemoryActivityType] + AI_MEMORY_ACTIVITY_TYPE_QUERY: _ClassVar[AiMemoryActivityType] + AI_MEMORY_ACTIVITY_TYPE_WRITE: _ClassVar[AiMemoryActivityType] + AI_MEMORY_ACTIVITY_TYPE_DELETE: _ClassVar[AiMemoryActivityType] + +class AiMemoryScope(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + AI_MEMORY_SCOPE_UNSPECIFIED: _ClassVar[AiMemoryScope] + AI_MEMORY_SCOPE_SESSION: _ClassVar[AiMemoryScope] + AI_MEMORY_SCOPE_USER: _ClassVar[AiMemoryScope] + AI_MEMORY_SCOPE_AGENT: _ClassVar[AiMemoryScope] + AI_MEMORY_SCOPE_GLOBAL: _ClassVar[AiMemoryScope] + class CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): __slots__ = () CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] @@ -313,6 +330,17 @@ AI_TOOL_CALL_DISPOSITION_DENIED: AiToolCallDisposition AI_TOOL_CALL_DISPOSITION_MODIFIED: AiToolCallDisposition AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL: AiToolCallDisposition AI_TOOL_CALL_DISPOSITION_OTHER: AiToolCallDisposition +AI_MEMORY_ACTIVITY_TYPE_UNSPECIFIED: AiMemoryActivityType +AI_MEMORY_ACTIVITY_TYPE_READ: AiMemoryActivityType +AI_MEMORY_ACTIVITY_TYPE_UPDATE: AiMemoryActivityType +AI_MEMORY_ACTIVITY_TYPE_QUERY: AiMemoryActivityType +AI_MEMORY_ACTIVITY_TYPE_WRITE: AiMemoryActivityType +AI_MEMORY_ACTIVITY_TYPE_DELETE: AiMemoryActivityType +AI_MEMORY_SCOPE_UNSPECIFIED: AiMemoryScope +AI_MEMORY_SCOPE_SESSION: AiMemoryScope +AI_MEMORY_SCOPE_USER: AiMemoryScope +AI_MEMORY_SCOPE_AGENT: AiMemoryScope +AI_MEMORY_SCOPE_GLOBAL: AiMemoryScope CREDENTIAL_TYPE_UNSPECIFIED: CredentialType CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType CREDENTIAL_TYPE_KEY: CredentialType @@ -440,70 +468,6 @@ class TraceContext(_message.Message): span_id: str def __init__(self, trace_id: _Optional[str] = ..., span_id: _Optional[str] = ...) -> None: ... -class AiModel(_message.Message): - __slots__ = ("ai_provider", "name", "uid", "version") - AI_PROVIDER_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - UID_FIELD_NUMBER: _ClassVar[int] - VERSION_FIELD_NUMBER: _ClassVar[int] - ai_provider: str - name: str - uid: str - version: str - def __init__(self, ai_provider: _Optional[str] = ..., name: _Optional[str] = ..., uid: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... - -class AiAgent(_message.Message): - __slots__ = ("uid", "name", "instance_uid", "type", "type_id", "version", "ai_model") - UID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - INSTANCE_UID_FIELD_NUMBER: _ClassVar[int] - TYPE_FIELD_NUMBER: _ClassVar[int] - TYPE_ID_FIELD_NUMBER: _ClassVar[int] - VERSION_FIELD_NUMBER: _ClassVar[int] - AI_MODEL_FIELD_NUMBER: _ClassVar[int] - uid: str - name: str - instance_uid: str - type: str - type_id: AiAgentType - version: str - ai_model: AiModel - def __init__(self, uid: _Optional[str] = ..., name: _Optional[str] = ..., instance_uid: _Optional[str] = ..., type: _Optional[str] = ..., type_id: _Optional[_Union[AiAgentType, str]] = ..., version: _Optional[str] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ...) -> None: ... - -class AiMessageContext(_message.Message): - __slots__ = ("uid", "name", "ai_role_id", "prompt_text", "response_text", "prompt_tokens", "completion_tokens", "total_tokens") - UID_FIELD_NUMBER: _ClassVar[int] - NAME_FIELD_NUMBER: _ClassVar[int] - AI_ROLE_ID_FIELD_NUMBER: _ClassVar[int] - PROMPT_TEXT_FIELD_NUMBER: _ClassVar[int] - RESPONSE_TEXT_FIELD_NUMBER: _ClassVar[int] - PROMPT_TOKENS_FIELD_NUMBER: _ClassVar[int] - COMPLETION_TOKENS_FIELD_NUMBER: _ClassVar[int] - TOTAL_TOKENS_FIELD_NUMBER: _ClassVar[int] - uid: str - name: str - ai_role_id: AiRole - prompt_text: str - response_text: str - prompt_tokens: int - completion_tokens: int - total_tokens: int - def __init__(self, uid: _Optional[str] = ..., name: _Optional[str] = ..., ai_role_id: _Optional[_Union[AiRole, str]] = ..., prompt_text: _Optional[str] = ..., response_text: _Optional[str] = ..., prompt_tokens: _Optional[int] = ..., completion_tokens: _Optional[int] = ..., total_tokens: _Optional[int] = ...) -> None: ... - -class AiDelegation(_message.Message): - __slots__ = ("delegator_id", "delegate_id", "scopes", "expires_at", "delegation_chain") - DELEGATOR_ID_FIELD_NUMBER: _ClassVar[int] - DELEGATE_ID_FIELD_NUMBER: _ClassVar[int] - SCOPES_FIELD_NUMBER: _ClassVar[int] - EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] - DELEGATION_CHAIN_FIELD_NUMBER: _ClassVar[int] - delegator_id: str - delegate_id: str - scopes: _containers.RepeatedScalarFieldContainer[str] - expires_at: _timestamp_pb2.Timestamp - delegation_chain: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, delegator_id: _Optional[str] = ..., delegate_id: _Optional[str] = ..., scopes: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., delegation_chain: _Optional[_Iterable[str]] = ...) -> None: ... - class Common(_message.Message): __slots__ = ("timestamp", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context", "user_global_id", "user_impersonated_global_id", "user_initiator_context", "user_impersonated_context", "trace_context") class AppContextEntry(_message.Message): @@ -1587,6 +1551,70 @@ class CMKDetach(_message.Message): system_id: str def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ..., system_id: _Optional[str] = ...) -> None: ... +class AiModel(_message.Message): + __slots__ = ("ai_provider", "name", "uid", "version") + AI_PROVIDER_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + UID_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + ai_provider: str + name: str + uid: str + version: str + def __init__(self, ai_provider: _Optional[str] = ..., name: _Optional[str] = ..., uid: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + +class AiAgent(_message.Message): + __slots__ = ("uid", "name", "instance_uid", "type", "type_id", "version", "ai_model") + UID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + INSTANCE_UID_FIELD_NUMBER: _ClassVar[int] + TYPE_FIELD_NUMBER: _ClassVar[int] + TYPE_ID_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + AI_MODEL_FIELD_NUMBER: _ClassVar[int] + uid: str + name: str + instance_uid: str + type: str + type_id: AiAgentType + version: str + ai_model: AiModel + def __init__(self, uid: _Optional[str] = ..., name: _Optional[str] = ..., instance_uid: _Optional[str] = ..., type: _Optional[str] = ..., type_id: _Optional[_Union[AiAgentType, str]] = ..., version: _Optional[str] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ...) -> None: ... + +class AiMessageContext(_message.Message): + __slots__ = ("uid", "name", "ai_role_id", "prompt_text", "response_text", "prompt_tokens", "completion_tokens", "total_tokens") + UID_FIELD_NUMBER: _ClassVar[int] + NAME_FIELD_NUMBER: _ClassVar[int] + AI_ROLE_ID_FIELD_NUMBER: _ClassVar[int] + PROMPT_TEXT_FIELD_NUMBER: _ClassVar[int] + RESPONSE_TEXT_FIELD_NUMBER: _ClassVar[int] + PROMPT_TOKENS_FIELD_NUMBER: _ClassVar[int] + COMPLETION_TOKENS_FIELD_NUMBER: _ClassVar[int] + TOTAL_TOKENS_FIELD_NUMBER: _ClassVar[int] + uid: str + name: str + ai_role_id: AiRole + prompt_text: str + response_text: str + prompt_tokens: int + completion_tokens: int + total_tokens: int + def __init__(self, uid: _Optional[str] = ..., name: _Optional[str] = ..., ai_role_id: _Optional[_Union[AiRole, str]] = ..., prompt_text: _Optional[str] = ..., response_text: _Optional[str] = ..., prompt_tokens: _Optional[int] = ..., completion_tokens: _Optional[int] = ..., total_tokens: _Optional[int] = ...) -> None: ... + +class AiDelegation(_message.Message): + __slots__ = ("delegator_id", "delegate_id", "scopes", "expires_at", "delegation_chain") + DELEGATOR_ID_FIELD_NUMBER: _ClassVar[int] + DELEGATE_ID_FIELD_NUMBER: _ClassVar[int] + SCOPES_FIELD_NUMBER: _ClassVar[int] + EXPIRES_AT_FIELD_NUMBER: _ClassVar[int] + DELEGATION_CHAIN_FIELD_NUMBER: _ClassVar[int] + delegator_id: str + delegate_id: str + scopes: _containers.RepeatedScalarFieldContainer[str] + expires_at: _timestamp_pb2.Timestamp + delegation_chain: _containers.RepeatedScalarFieldContainer[str] + def __init__(self, delegator_id: _Optional[str] = ..., delegate_id: _Optional[str] = ..., scopes: _Optional[_Iterable[str]] = ..., expires_at: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., delegation_chain: _Optional[_Iterable[str]] = ...) -> None: ... + class AiSessionStart(_message.Message): __slots__ = ("common", "session_id", "ai_agent", "ai_model", "delegation") COMMON_FIELD_NUMBER: _ClassVar[int] @@ -1602,18 +1630,18 @@ class AiSessionStart(_message.Message): def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., delegation: _Optional[_Union[AiDelegation, _Mapping]] = ...) -> None: ... class AiSessionEnd(_message.Message): - __slots__ = ("common", "session_id", "end_reason", "total_tokens", "duration_ms") + __slots__ = ("common", "session_id", "end_reason", "total_tokens", "turn_count") COMMON_FIELD_NUMBER: _ClassVar[int] SESSION_ID_FIELD_NUMBER: _ClassVar[int] END_REASON_FIELD_NUMBER: _ClassVar[int] TOTAL_TOKENS_FIELD_NUMBER: _ClassVar[int] - DURATION_MS_FIELD_NUMBER: _ClassVar[int] + TURN_COUNT_FIELD_NUMBER: _ClassVar[int] common: Common session_id: str end_reason: AiSessionEndReason total_tokens: int - duration_ms: int - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., end_reason: _Optional[_Union[AiSessionEndReason, str]] = ..., total_tokens: _Optional[int] = ..., duration_ms: _Optional[int] = ...) -> None: ... + turn_count: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., end_reason: _Optional[_Union[AiSessionEndReason, str]] = ..., total_tokens: _Optional[int] = ..., turn_count: _Optional[int] = ...) -> None: ... class AiPromptReceived(_message.Message): __slots__ = ("common", "session_id", "message_context", "ai_agent") @@ -1646,13 +1674,12 @@ class AiGuardrailTriggered(_message.Message): def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., guardrail_name: _Optional[str] = ..., guardrail_type: _Optional[_Union[AiGuardrailType, str]] = ..., action_taken: _Optional[_Union[AiGuardrailAction, str]] = ..., violation_category: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... class AiModelInvocation(_message.Message): - __slots__ = ("common", "session_id", "ai_model", "ai_agent", "message_context", "latency_ms", "status", "error_message") + __slots__ = ("common", "session_id", "ai_model", "ai_agent", "message_context", "status", "error_message") COMMON_FIELD_NUMBER: _ClassVar[int] SESSION_ID_FIELD_NUMBER: _ClassVar[int] AI_MODEL_FIELD_NUMBER: _ClassVar[int] AI_AGENT_FIELD_NUMBER: _ClassVar[int] MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] - LATENCY_MS_FIELD_NUMBER: _ClassVar[int] STATUS_FIELD_NUMBER: _ClassVar[int] ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] common: Common @@ -1660,10 +1687,9 @@ class AiModelInvocation(_message.Message): ai_model: AiModel ai_agent: AiAgent message_context: AiMessageContext - latency_ms: int status: AiInvocationStatus error_message: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., latency_ms: _Optional[int] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., error_message: _Optional[str] = ...) -> None: ... + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., error_message: _Optional[str] = ...) -> None: ... class AiSkillSelected(_message.Message): __slots__ = ("common", "session_id", "skill_name", "skill_id", "confidence_score", "ai_agent", "alternatives_considered") @@ -1700,14 +1726,13 @@ class AiAgentDelegated(_message.Message): def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., source_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., target_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., delegation: _Optional[_Union[AiDelegation, _Mapping]] = ..., task_description: _Optional[str] = ...) -> None: ... class AiMcpToolCall(_message.Message): - __slots__ = ("common", "session_id", "tool_name", "target_mcp_server_id", "ai_agent", "status", "latency_ms", "error_message") + __slots__ = ("common", "session_id", "tool_name", "target_mcp_server_id", "ai_agent", "status", "error_message") COMMON_FIELD_NUMBER: _ClassVar[int] SESSION_ID_FIELD_NUMBER: _ClassVar[int] TOOL_NAME_FIELD_NUMBER: _ClassVar[int] TARGET_MCP_SERVER_ID_FIELD_NUMBER: _ClassVar[int] AI_AGENT_FIELD_NUMBER: _ClassVar[int] STATUS_FIELD_NUMBER: _ClassVar[int] - LATENCY_MS_FIELD_NUMBER: _ClassVar[int] ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] common: Common session_id: str @@ -1715,12 +1740,11 @@ class AiMcpToolCall(_message.Message): target_mcp_server_id: str ai_agent: AiAgent status: AiInvocationStatus - latency_ms: int error_message: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., tool_name: _Optional[str] = ..., target_mcp_server_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., latency_ms: _Optional[int] = ..., error_message: _Optional[str] = ...) -> None: ... + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., tool_name: _Optional[str] = ..., target_mcp_server_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., error_message: _Optional[str] = ...) -> None: ... class AiDirectApiAccess(_message.Message): - __slots__ = ("common", "session_id", "target_api_id", "ai_agent", "http_method", "status", "response_status_code", "latency_ms") + __slots__ = ("common", "session_id", "target_api_id", "ai_agent", "http_method", "status", "response_status_code") COMMON_FIELD_NUMBER: _ClassVar[int] SESSION_ID_FIELD_NUMBER: _ClassVar[int] TARGET_API_ID_FIELD_NUMBER: _ClassVar[int] @@ -1728,7 +1752,6 @@ class AiDirectApiAccess(_message.Message): HTTP_METHOD_FIELD_NUMBER: _ClassVar[int] STATUS_FIELD_NUMBER: _ClassVar[int] RESPONSE_STATUS_CODE_FIELD_NUMBER: _ClassVar[int] - LATENCY_MS_FIELD_NUMBER: _ClassVar[int] common: Common session_id: str target_api_id: str @@ -1736,11 +1759,10 @@ class AiDirectApiAccess(_message.Message): http_method: str status: AiInvocationStatus response_status_code: int - latency_ms: int - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., target_api_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., http_method: _Optional[str] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., response_status_code: _Optional[int] = ..., latency_ms: _Optional[int] = ...) -> None: ... + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., target_api_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., http_method: _Optional[str] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., response_status_code: _Optional[int] = ...) -> None: ... class AiDataRetrieval(_message.Message): - __slots__ = ("common", "session_id", "data_source_id", "data_source_type", "retrieval_type", "results_count", "ai_agent", "latency_ms") + __slots__ = ("common", "session_id", "data_source_id", "data_source_type", "retrieval_type", "results_count", "ai_agent") COMMON_FIELD_NUMBER: _ClassVar[int] SESSION_ID_FIELD_NUMBER: _ClassVar[int] DATA_SOURCE_ID_FIELD_NUMBER: _ClassVar[int] @@ -1748,7 +1770,6 @@ class AiDataRetrieval(_message.Message): RETRIEVAL_TYPE_FIELD_NUMBER: _ClassVar[int] RESULTS_COUNT_FIELD_NUMBER: _ClassVar[int] AI_AGENT_FIELD_NUMBER: _ClassVar[int] - LATENCY_MS_FIELD_NUMBER: _ClassVar[int] common: Common session_id: str data_source_id: str @@ -1756,24 +1777,21 @@ class AiDataRetrieval(_message.Message): retrieval_type: AiRetrievalType results_count: int ai_agent: AiAgent - latency_ms: int - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., data_source_id: _Optional[str] = ..., data_source_type: _Optional[str] = ..., retrieval_type: _Optional[_Union[AiRetrievalType, str]] = ..., results_count: _Optional[int] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., latency_ms: _Optional[int] = ...) -> None: ... + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., data_source_id: _Optional[str] = ..., data_source_type: _Optional[str] = ..., retrieval_type: _Optional[_Union[AiRetrievalType, str]] = ..., results_count: _Optional[int] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ...) -> None: ... class AiResponseGenerated(_message.Message): - __slots__ = ("common", "session_id", "message_context", "ai_agent", "ai_model", "latency_ms") + __slots__ = ("common", "session_id", "message_context", "ai_agent", "ai_model") COMMON_FIELD_NUMBER: _ClassVar[int] SESSION_ID_FIELD_NUMBER: _ClassVar[int] MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] AI_AGENT_FIELD_NUMBER: _ClassVar[int] AI_MODEL_FIELD_NUMBER: _ClassVar[int] - LATENCY_MS_FIELD_NUMBER: _ClassVar[int] common: Common session_id: str message_context: AiMessageContext ai_agent: AiAgent ai_model: AiModel - latency_ms: int - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ..., latency_ms: _Optional[int] = ...) -> None: ... + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., ai_model: _Optional[_Union[AiModel, _Mapping]] = ...) -> None: ... class AiUserFeedback(_message.Message): __slots__ = ("common", "session_id", "feedback_rating", "feedback_score", "feedback_category", "feedback_comment", "message_uid") @@ -1918,3 +1936,65 @@ class AiUserInputRequested(_message.Message): ai_agent: AiAgent message_context: AiMessageContext def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., requested_from_user_id: _Optional[str] = ..., a2a_task_id: _Optional[str] = ..., a2a_context_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... + +class AiTurnStart(_message.Message): + __slots__ = ("common", "session_id", "turn_id", "turn_number", "ai_agent", "message_context") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + TURN_ID_FIELD_NUMBER: _ClassVar[int] + TURN_NUMBER_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + turn_id: str + turn_number: int + ai_agent: AiAgent + message_context: AiMessageContext + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., turn_id: _Optional[str] = ..., turn_number: _Optional[int] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ...) -> None: ... + +class AiTurnEnd(_message.Message): + __slots__ = ("common", "session_id", "turn_id", "turn_number", "status", "prompt_tokens", "completion_tokens", "total_tokens", "message_context", "error_message") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + TURN_ID_FIELD_NUMBER: _ClassVar[int] + TURN_NUMBER_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + PROMPT_TOKENS_FIELD_NUMBER: _ClassVar[int] + COMPLETION_TOKENS_FIELD_NUMBER: _ClassVar[int] + TOTAL_TOKENS_FIELD_NUMBER: _ClassVar[int] + MESSAGE_CONTEXT_FIELD_NUMBER: _ClassVar[int] + ERROR_MESSAGE_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + turn_id: str + turn_number: int + status: AiInvocationStatus + prompt_tokens: int + completion_tokens: int + total_tokens: int + message_context: AiMessageContext + error_message: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., turn_id: _Optional[str] = ..., turn_number: _Optional[int] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ..., prompt_tokens: _Optional[int] = ..., completion_tokens: _Optional[int] = ..., total_tokens: _Optional[int] = ..., message_context: _Optional[_Union[AiMessageContext, _Mapping]] = ..., error_message: _Optional[str] = ...) -> None: ... + +class AiMemoryAccess(_message.Message): + __slots__ = ("common", "session_id", "activity_type", "memory_scope", "memory_store_id", "ai_agent", "memory_key", "records_count", "status") + COMMON_FIELD_NUMBER: _ClassVar[int] + SESSION_ID_FIELD_NUMBER: _ClassVar[int] + ACTIVITY_TYPE_FIELD_NUMBER: _ClassVar[int] + MEMORY_SCOPE_FIELD_NUMBER: _ClassVar[int] + MEMORY_STORE_ID_FIELD_NUMBER: _ClassVar[int] + AI_AGENT_FIELD_NUMBER: _ClassVar[int] + MEMORY_KEY_FIELD_NUMBER: _ClassVar[int] + RECORDS_COUNT_FIELD_NUMBER: _ClassVar[int] + STATUS_FIELD_NUMBER: _ClassVar[int] + common: Common + session_id: str + activity_type: AiMemoryActivityType + memory_scope: AiMemoryScope + memory_store_id: str + ai_agent: AiAgent + memory_key: str + records_count: int + status: AiInvocationStatus + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., session_id: _Optional[str] = ..., activity_type: _Optional[_Union[AiMemoryActivityType, str]] = ..., memory_scope: _Optional[_Union[AiMemoryScope, str]] = ..., memory_store_id: _Optional[str] = ..., ai_agent: _Optional[_Union[AiAgent, _Mapping]] = ..., memory_key: _Optional[str] = ..., records_count: _Optional[int] = ..., status: _Optional[_Union[AiInvocationStatus, str]] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto index 7305ce7c..880945af 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto +++ b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto @@ -24,252 +24,6 @@ message TraceContext { optional string span_id = 2 [(buf.validate.field).string.pattern = "^[0-9a-f]{16}$"]; } -// ============================================================================ -// OCSF-Aligned AI Structures -// Based on OCSF 1.10.0-dev AI Operation Profile -// https://schema.ocsf.io/1.10.0-dev/profiles/ai_operation -// ============================================================================ - -// AI Role in a conversation or operation -// Aligned with OCSF ai_role_id enumeration -enum AiRole { - //@ShortText: "Unspecified" - AI_ROLE_UNSPECIFIED = 0; - //@ShortText: "User" - AI_ROLE_USER = 1; - //@ShortText: "Assistant" - AI_ROLE_ASSISTANT = 2; - //@ShortText: "Tool" - AI_ROLE_TOOL = 3; - //@ShortText: "Agent" - AI_ROLE_AGENT = 4; - //@ShortText: "Orchestrator" - AI_ROLE_ORCHESTRATOR = 5; - //@ShortText: "Retriever" - AI_ROLE_RETRIEVER = 6; - //@ShortText: "Other" - AI_ROLE_OTHER = 99; -} - -// AI Agent Type - normalized framework identifier -// Aligned with OCSF ai_agent.type_id -enum AiAgentType { - //@ShortText: "Unspecified" - AI_AGENT_TYPE_UNSPECIFIED = 0; - //@ShortText: "Conversational" - AI_AGENT_TYPE_CONVERSATIONAL = 1; - //@ShortText: "Autonomous" - AI_AGENT_TYPE_AUTONOMOUS = 2; - //@ShortText: "Retrieval" - AI_AGENT_TYPE_RETRIEVAL = 3; - //@ShortText: "Multi-Agent" - AI_AGENT_TYPE_MULTI_AGENT = 4; - //@ShortText: "Other" - AI_AGENT_TYPE_OTHER = 99; -} - -// AI Session End Reason -enum AiSessionEndReason { - //@ShortText: "Unspecified" - AI_SESSION_END_REASON_UNSPECIFIED = 0; - //@ShortText: "Normal" - AI_SESSION_END_REASON_NORMAL = 1; - //@ShortText: "Timeout" - AI_SESSION_END_REASON_TIMEOUT = 2; - //@ShortText: "User Terminated" - AI_SESSION_END_REASON_USER_TERMINATED = 3; - //@ShortText: "Error" - AI_SESSION_END_REASON_ERROR = 4; - //@ShortText: "Policy Violation" - AI_SESSION_END_REASON_POLICY_VIOLATION = 5; - //@ShortText: "Other" - AI_SESSION_END_REASON_OTHER = 99; -} - -// AI Guardrail Type -enum AiGuardrailType { - //@ShortText: "Unspecified" - AI_GUARDRAIL_TYPE_UNSPECIFIED = 0; - //@ShortText: "Input" - AI_GUARDRAIL_TYPE_INPUT = 1; - //@ShortText: "Output" - AI_GUARDRAIL_TYPE_OUTPUT = 2; - //@ShortText: "Content Policy" - AI_GUARDRAIL_TYPE_CONTENT_POLICY = 3; - //@ShortText: "Prompt Injection" - AI_GUARDRAIL_TYPE_PROMPT_INJECTION = 4; - //@ShortText: "PII Filter" - AI_GUARDRAIL_TYPE_PII_FILTER = 5; - //@ShortText: "Data Leakage" - AI_GUARDRAIL_TYPE_DATA_LEAKAGE = 6; - //@ShortText: "Hallucination Detection" - AI_GUARDRAIL_TYPE_HALLUCINATION = 7; - //@ShortText: "Other" - AI_GUARDRAIL_TYPE_OTHER = 99; -} - -// AI Guardrail Action -enum AiGuardrailAction { - //@ShortText: "Unspecified" - AI_GUARDRAIL_ACTION_UNSPECIFIED = 0; - //@ShortText: "Allow" - AI_GUARDRAIL_ACTION_ALLOW = 1; - //@ShortText: "Block" - AI_GUARDRAIL_ACTION_BLOCK = 2; - //@ShortText: "Modify" - AI_GUARDRAIL_ACTION_MODIFY = 3; - //@ShortText: "Warn" - AI_GUARDRAIL_ACTION_WARN = 4; - //@ShortText: "Log Only" - AI_GUARDRAIL_ACTION_LOG_ONLY = 5; - //@ShortText: "Other" - AI_GUARDRAIL_ACTION_OTHER = 99; -} - -// AI Invocation Status -enum AiInvocationStatus { - //@ShortText: "Unspecified" - AI_INVOCATION_STATUS_UNSPECIFIED = 0; - //@ShortText: "Success" - AI_INVOCATION_STATUS_SUCCESS = 1; - //@ShortText: "Failed" - AI_INVOCATION_STATUS_FAILED = 2; - //@ShortText: "Timeout" - AI_INVOCATION_STATUS_TIMEOUT = 3; - //@ShortText: "Rate Limited" - AI_INVOCATION_STATUS_RATE_LIMITED = 4; - //@ShortText: "Cancelled" - AI_INVOCATION_STATUS_CANCELLED = 5; - //@ShortText: "Pending" - AI_INVOCATION_STATUS_PENDING = 6; - //@ShortText: "Other" - AI_INVOCATION_STATUS_OTHER = 99; -} - -// AI Retrieval Type (for RAG and knowledge retrieval) -enum AiRetrievalType { - //@ShortText: "Unspecified" - AI_RETRIEVAL_TYPE_UNSPECIFIED = 0; - //@ShortText: "Vector Search" - AI_RETRIEVAL_TYPE_VECTOR_SEARCH = 1; - //@ShortText: "Keyword Search" - AI_RETRIEVAL_TYPE_KEYWORD_SEARCH = 2; - //@ShortText: "Hybrid Search" - AI_RETRIEVAL_TYPE_HYBRID_SEARCH = 3; - //@ShortText: "Knowledge Graph" - AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH = 4; - //@ShortText: "Memory Context" - AI_RETRIEVAL_TYPE_MEMORY_CONTEXT = 5; - //@ShortText: "Document Retrieval" - AI_RETRIEVAL_TYPE_DOCUMENT = 6; - //@ShortText: "Other" - AI_RETRIEVAL_TYPE_OTHER = 99; -} - -// AI Feedback Rating -enum AiFeedbackRating { - //@ShortText: "Unspecified" - AI_FEEDBACK_RATING_UNSPECIFIED = 0; - //@ShortText: "Positive" - AI_FEEDBACK_RATING_POSITIVE = 1; - //@ShortText: "Negative" - AI_FEEDBACK_RATING_NEGATIVE = 2; - //@ShortText: "Neutral" - AI_FEEDBACK_RATING_NEUTRAL = 3; - //@ShortText: "Correction" - AI_FEEDBACK_RATING_CORRECTION = 4; - //@ShortText: "Other" - AI_FEEDBACK_RATING_OTHER = 99; -} - -// AI Tool Call Disposition (for authorization decisions) -enum AiToolCallDisposition { - //@ShortText: "Unspecified" - AI_TOOL_CALL_DISPOSITION_UNSPECIFIED = 0; - //@ShortText: "Allowed" - AI_TOOL_CALL_DISPOSITION_ALLOWED = 1; - //@ShortText: "Denied" - AI_TOOL_CALL_DISPOSITION_DENIED = 2; - //@ShortText: "Modified" - AI_TOOL_CALL_DISPOSITION_MODIFIED = 3; - //@ShortText: "Pending Approval" - AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL = 4; - //@ShortText: "Other" - AI_TOOL_CALL_DISPOSITION_OTHER = 99; -} - -// AI Model identification -// Aligned with OCSF ai_model object -// https://schema.ocsf.io/1.10.0-dev/objects/ai_model -message AiModel { - // AI service provider or organization name (e.g., "SAP", "OpenAI", "Anthropic", "Google") - string ai_provider = 1 [(buf.validate.field).required = true]; - // Human-readable model name (e.g., "joule-v1", "gpt-4o", "claude-3-sonnet") - string name = 2; - // Model's unique identifier - string uid = 3; - // Model version identifier (e.g., "2024-05-13", "v2.1.0") - string version = 4; -} - -// AI Agent identification -// Aligned with OCSF ai_agent object -// https://schema.ocsf.io/1.10.0-dev/objects/ai_agent -message AiAgent { - // Stable logical identifier for the agent (e.g., ORD ID) - string uid = 1; - // Human-readable agent designation - string name = 2; - // Identifier for a specific running instance or session - string instance_uid = 3; - // Agent framework type (string representation) - string type = 4; - // Normalized framework identifier - AiAgentType type_id = 5; - // Agent's code or configuration revision number - string version = 6; - // The AI model backing this agent - AiModel ai_model = 7; -} - -// Message/Conversation context for AI interactions -// Aligned with OCSF message_context object -// https://schema.ocsf.io/1.10.0-dev/objects/message_context -message AiMessageContext { - // Unique identifier for message correlation (conversation ID) - string uid = 1; - // Conversation name, session name, or thread identifier - string name = 2; - // The AI's functional role in this interaction - AiRole ai_role_id = 3; - // Verbatim input instruction to the model (may contain sensitive data) - string prompt_text = 4; - // Model-generated response content (may contain sensitive data) - string response_text = 5; - // Input token count - int32 prompt_tokens = 6; - // Response/completion token count - int32 completion_tokens = 7; - // Combined token usage (prompt + completion) - int32 total_tokens = 8; -} - -// AI Delegation context for authorization tracking -// Aligned with OCSF delegation object -// Links events to authorization contexts under delegated authority -message AiDelegation { - // The delegating entity (user or agent that granted authority) - string delegator_id = 1; - // The entity receiving delegated authority - string delegate_id = 2; - // Scope or permissions of the delegation - repeated string scopes = 3; - // Expiration time of the delegation - google.protobuf.Timestamp expires_at = 4; - // Delegation chain (for multi-hop delegations) - repeated string delegation_chain = 5; -} - // Common Fields // contains information that are attached to all events. message Common { @@ -1520,6 +1274,248 @@ message CMKDetach { // Aligned with OCSF 1.10.0-dev AI Operation Profile. // ============================================================================ +// --- AI Enums and Shared Types --- + +// AI Role in a conversation or operation +// Aligned with OCSF ai_role_id enumeration +enum AiRole { + //@ShortText: "Unspecified" + AI_ROLE_UNSPECIFIED = 0; + //@ShortText: "User" + AI_ROLE_USER = 1; + //@ShortText: "Assistant" + AI_ROLE_ASSISTANT = 2; + //@ShortText: "Tool" + AI_ROLE_TOOL = 3; + //@ShortText: "Agent" + AI_ROLE_AGENT = 4; + //@ShortText: "Orchestrator" + AI_ROLE_ORCHESTRATOR = 5; + //@ShortText: "Retriever" + AI_ROLE_RETRIEVER = 6; + //@ShortText: "Other" + AI_ROLE_OTHER = 99; +} + +// AI Agent Type - normalized framework identifier +// Aligned with OCSF ai_agent.type_id +enum AiAgentType { + //@ShortText: "Unspecified" + AI_AGENT_TYPE_UNSPECIFIED = 0; + //@ShortText: "Conversational" + AI_AGENT_TYPE_CONVERSATIONAL = 1; + //@ShortText: "Autonomous" + AI_AGENT_TYPE_AUTONOMOUS = 2; + //@ShortText: "Retrieval" + AI_AGENT_TYPE_RETRIEVAL = 3; + //@ShortText: "Multi-Agent" + AI_AGENT_TYPE_MULTI_AGENT = 4; + //@ShortText: "Other" + AI_AGENT_TYPE_OTHER = 99; +} + +// AI Session End Reason +enum AiSessionEndReason { + //@ShortText: "Unspecified" + AI_SESSION_END_REASON_UNSPECIFIED = 0; + //@ShortText: "Normal" + AI_SESSION_END_REASON_NORMAL = 1; + //@ShortText: "Timeout" + AI_SESSION_END_REASON_TIMEOUT = 2; + //@ShortText: "User Terminated" + AI_SESSION_END_REASON_USER_TERMINATED = 3; + //@ShortText: "Error" + AI_SESSION_END_REASON_ERROR = 4; + //@ShortText: "Policy Violation" + AI_SESSION_END_REASON_POLICY_VIOLATION = 5; + //@ShortText: "Other" + AI_SESSION_END_REASON_OTHER = 99; +} + +// AI Guardrail Type +enum AiGuardrailType { + //@ShortText: "Unspecified" + AI_GUARDRAIL_TYPE_UNSPECIFIED = 0; + //@ShortText: "Input" + AI_GUARDRAIL_TYPE_INPUT = 1; + //@ShortText: "Output" + AI_GUARDRAIL_TYPE_OUTPUT = 2; + //@ShortText: "Content Policy" + AI_GUARDRAIL_TYPE_CONTENT_POLICY = 3; + //@ShortText: "Prompt Injection" + AI_GUARDRAIL_TYPE_PROMPT_INJECTION = 4; + //@ShortText: "PII Filter" + AI_GUARDRAIL_TYPE_PII_FILTER = 5; + //@ShortText: "Data Leakage" + AI_GUARDRAIL_TYPE_DATA_LEAKAGE = 6; + //@ShortText: "Hallucination Detection" + AI_GUARDRAIL_TYPE_HALLUCINATION = 7; + //@ShortText: "Other" + AI_GUARDRAIL_TYPE_OTHER = 99; +} + +// AI Guardrail Action +enum AiGuardrailAction { + //@ShortText: "Unspecified" + AI_GUARDRAIL_ACTION_UNSPECIFIED = 0; + //@ShortText: "Allow" + AI_GUARDRAIL_ACTION_ALLOW = 1; + //@ShortText: "Block" + AI_GUARDRAIL_ACTION_BLOCK = 2; + //@ShortText: "Modify" + AI_GUARDRAIL_ACTION_MODIFY = 3; + //@ShortText: "Warn" + AI_GUARDRAIL_ACTION_WARN = 4; + //@ShortText: "Log Only" + AI_GUARDRAIL_ACTION_LOG_ONLY = 5; + //@ShortText: "Other" + AI_GUARDRAIL_ACTION_OTHER = 99; +} + +// AI Invocation Status +enum AiInvocationStatus { + //@ShortText: "Unspecified" + AI_INVOCATION_STATUS_UNSPECIFIED = 0; + //@ShortText: "Success" + AI_INVOCATION_STATUS_SUCCESS = 1; + //@ShortText: "Failed" + AI_INVOCATION_STATUS_FAILED = 2; + //@ShortText: "Timeout" + AI_INVOCATION_STATUS_TIMEOUT = 3; + //@ShortText: "Rate Limited" + AI_INVOCATION_STATUS_RATE_LIMITED = 4; + //@ShortText: "Cancelled" + AI_INVOCATION_STATUS_CANCELLED = 5; + //@ShortText: "Pending" + AI_INVOCATION_STATUS_PENDING = 6; + //@ShortText: "Other" + AI_INVOCATION_STATUS_OTHER = 99; +} + +// AI Retrieval Type (for RAG and knowledge retrieval) +enum AiRetrievalType { + //@ShortText: "Unspecified" + AI_RETRIEVAL_TYPE_UNSPECIFIED = 0; + //@ShortText: "Vector Search" + AI_RETRIEVAL_TYPE_VECTOR_SEARCH = 1; + //@ShortText: "Keyword Search" + AI_RETRIEVAL_TYPE_KEYWORD_SEARCH = 2; + //@ShortText: "Hybrid Search" + AI_RETRIEVAL_TYPE_HYBRID_SEARCH = 3; + //@ShortText: "Knowledge Graph" + AI_RETRIEVAL_TYPE_KNOWLEDGE_GRAPH = 4; + //@ShortText: "Memory Context" + AI_RETRIEVAL_TYPE_MEMORY_CONTEXT = 5; + //@ShortText: "Document Retrieval" + AI_RETRIEVAL_TYPE_DOCUMENT = 6; + //@ShortText: "Other" + AI_RETRIEVAL_TYPE_OTHER = 99; +} + +// AI Feedback Rating +enum AiFeedbackRating { + //@ShortText: "Unspecified" + AI_FEEDBACK_RATING_UNSPECIFIED = 0; + //@ShortText: "Positive" + AI_FEEDBACK_RATING_POSITIVE = 1; + //@ShortText: "Negative" + AI_FEEDBACK_RATING_NEGATIVE = 2; + //@ShortText: "Neutral" + AI_FEEDBACK_RATING_NEUTRAL = 3; + //@ShortText: "Correction" + AI_FEEDBACK_RATING_CORRECTION = 4; + //@ShortText: "Other" + AI_FEEDBACK_RATING_OTHER = 99; +} + +// AI Tool Call Disposition (for authorization decisions) +enum AiToolCallDisposition { + //@ShortText: "Unspecified" + AI_TOOL_CALL_DISPOSITION_UNSPECIFIED = 0; + //@ShortText: "Allowed" + AI_TOOL_CALL_DISPOSITION_ALLOWED = 1; + //@ShortText: "Denied" + AI_TOOL_CALL_DISPOSITION_DENIED = 2; + //@ShortText: "Modified" + AI_TOOL_CALL_DISPOSITION_MODIFIED = 3; + //@ShortText: "Pending Approval" + AI_TOOL_CALL_DISPOSITION_PENDING_APPROVAL = 4; + //@ShortText: "Other" + AI_TOOL_CALL_DISPOSITION_OTHER = 99; +} + +// AI Model identification +// Aligned with OCSF ai_model object +// https://schema.ocsf.io/1.10.0-dev/objects/ai_model +message AiModel { + // AI service provider or organization name (e.g., "SAP", "OpenAI", "Anthropic", "Google") + string ai_provider = 1 [(buf.validate.field).required = true]; + // Human-readable model name (e.g., "joule-v1", "gpt-4o", "claude-3-sonnet") + string name = 2; + // Model's unique identifier + string uid = 3; + // Model version identifier (e.g., "2024-05-13", "v2.1.0") + string version = 4; +} + +// AI Agent identification +// Aligned with OCSF ai_agent object +// https://schema.ocsf.io/1.10.0-dev/objects/ai_agent +message AiAgent { + // Stable logical identifier for the agent (e.g., ORD ID) + string uid = 1 [(buf.validate.field).required = true]; + // Human-readable agent designation + string name = 2; + // Identifier for a specific running instance or session + string instance_uid = 3; + // Agent framework type (string representation) + string type = 4; + // Normalized framework identifier + AiAgentType type_id = 5; + // Agent's code or configuration revision number + string version = 6; + // The AI model backing this agent + AiModel ai_model = 7; +} + +// Message/Conversation context for AI interactions +// Aligned with OCSF message_context object +// https://schema.ocsf.io/1.10.0-dev/objects/message_context +message AiMessageContext { + // Unique identifier for message correlation (conversation ID) + string uid = 1; + // Conversation name, session name, or thread identifier + string name = 2; + // The AI's functional role in this interaction + AiRole ai_role_id = 3; + // Verbatim input instruction to the model (may contain sensitive data) + string prompt_text = 4; + // Model-generated response content (may contain sensitive data) + string response_text = 5; + // Input token count (must be non-negative) + int32 prompt_tokens = 6 [(buf.validate.field).int32.gte = 0]; + // Response/completion token count (must be non-negative) + int32 completion_tokens = 7 [(buf.validate.field).int32.gte = 0]; + // Combined token usage (prompt + completion, must be non-negative) + int32 total_tokens = 8 [(buf.validate.field).int32.gte = 0]; +} + +// AI Delegation context for authorization tracking +// Aligned with OCSF delegation object +// Links events to authorization contexts under delegated authority +message AiDelegation { + // The delegating entity (user or agent that granted authority) + string delegator_id = 1; + // The entity receiving delegated authority + string delegate_id = 2; + // Scope or permissions of the delegation + repeated string scopes = 3; + // Expiration time of the delegation + google.protobuf.Timestamp expires_at = 4; + // Delegation chain (for multi-hop delegations) + repeated string delegation_chain = 5; +} + // --- Session Events --- /* AiSessionStart @@ -1527,11 +1523,11 @@ message CMKDetach { * @EventCode: "AE-0087" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "AI session ${session_id} started for agent ${ai_agent.name}" - * @EventDocumentation: "An AI session has been initiated. This event marks the beginning of an interaction session with an AI system, capturing authentication context and the AI agent/model involved." + * @EventDocumentation: "An AI session has been initiated. This event marks the beginning of an interaction session with an AI system, capturing authentication context and the AI agent/model involved. A session represents a conversation (e.g., Joule open to close) and may contain multiple turns/roundtrips." */ message AiSessionStart { Common common = 1 [(buf.validate.field).required = true]; - // Unique identifier for this session + // Unique identifier for this session/conversation string session_id = 2 [(buf.validate.field).required = true]; // The AI agent handling this session AiAgent ai_agent = 3; @@ -1546,18 +1542,18 @@ message AiSessionStart { * @EventCode: "AE-0088" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "AI session ${session_id} ended (Reason: ${end_reason})" - * @EventDocumentation: "An AI session has been terminated. This event marks the end of an interaction session, capturing the reason for termination and final session metrics." + * @EventDocumentation: "An AI session has been terminated. This event marks the end of an interaction session (conversation), capturing the reason for termination and final session metrics." */ message AiSessionEnd { Common common = 1 [(buf.validate.field).required = true]; - // Unique identifier for this session + // Unique identifier for this session/conversation string session_id = 2 [(buf.validate.field).required = true]; // Reason for session termination AiSessionEndReason end_reason = 3; - // Total tokens consumed in this session - int32 total_tokens = 4; - // Session duration in milliseconds - int64 duration_ms = 5; + // Total tokens consumed in this session (must be non-negative) + int32 total_tokens = 4 [(buf.validate.field).int32.gte = 0]; + // Total number of turns in this session (must be non-negative) + int32 turn_count = 5 [(buf.validate.field).int32.gte = 0]; } // --- Prompt Events --- @@ -1571,8 +1567,8 @@ message AiSessionEnd { */ message AiPromptReceived { Common common = 1 [(buf.validate.field).required = true]; - // Session identifier - string session_id = 2; + // Session identifier for correlating events within the same conversation + string session_id = 2 [(buf.validate.field).required = true]; // Message context with prompt details AiMessageContext message_context = 3; // The AI agent receiving the prompt @@ -1609,7 +1605,7 @@ message AiGuardrailTriggered { * @EventCode: "AE-0091" * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" * @EventMessageText: "AI model ${ai_model.name} invoked by ${ai_agent.name}" - * @EventDocumentation: "An AI model has been invoked. This event captures LLM calls including the model identity, token usage, and latency metrics." + * @EventDocumentation: "An AI model has been invoked. This event captures LLM calls including the model identity and token usage." */ message AiModelInvocation { Common common = 1 [(buf.validate.field).required = true]; @@ -1621,12 +1617,10 @@ message AiModelInvocation { AiAgent ai_agent = 4; // Message context with token counts AiMessageContext message_context = 5; - // Invocation latency in milliseconds - int64 latency_ms = 6; // Model invocation status - AiInvocationStatus status = 7; + AiInvocationStatus status = 6; // Error message if status is failed - string error_message = 8; + string error_message = 7; } /* AiSkillSelected @@ -1644,8 +1638,11 @@ message AiSkillSelected { string skill_name = 3 [(buf.validate.field).required = true]; // Unique identifier of the skill string skill_id = 4; - // Confidence score for skill selection (0.0 to 1.0) - float confidence_score = 5; + // Confidence score for skill selection (0.0 to 1.0, where 1.0 is highest confidence) + float confidence_score = 5 [(buf.validate.field).float = { + gte: 0.0 + lte: 1.0 + }]; // The AI agent making the selection AiAgent ai_agent = 6; // Alternative skills that were considered @@ -1694,10 +1691,8 @@ message AiMcpToolCall { AiAgent ai_agent = 5; // Tool call status AiInvocationStatus status = 6; - // Latency in milliseconds - int64 latency_ms = 7; // Error message if failed - string error_message = 8; + string error_message = 7; } /* AiDirectApiAccess @@ -1719,10 +1714,11 @@ message AiDirectApiAccess { string http_method = 5; // API call status AiInvocationStatus status = 6; - // HTTP response status code - int32 response_status_code = 7; - // Latency in milliseconds - int64 latency_ms = 8; + // HTTP response status code (valid range: 100-599) + int32 response_status_code = 7 [(buf.validate.field).int32 = { + gte: 100 + lte: 599 + }]; } /* AiDataRetrieval @@ -1742,12 +1738,10 @@ message AiDataRetrieval { string data_source_type = 4; // Type of retrieval operation AiRetrievalType retrieval_type = 5; - // Number of results retrieved - int32 results_count = 6; + // Number of results retrieved (must be non-negative) + int32 results_count = 6 [(buf.validate.field).int32.gte = 0]; // The AI agent performing the retrieval AiAgent ai_agent = 7; - // Query latency in milliseconds - int64 latency_ms = 8; } // --- Response Events --- @@ -1761,16 +1755,14 @@ message AiDataRetrieval { */ message AiResponseGenerated { Common common = 1 [(buf.validate.field).required = true]; - // Session identifier - string session_id = 2; + // Session identifier for correlating events within the same conversation + string session_id = 2 [(buf.validate.field).required = true]; // Message context with response details and token counts AiMessageContext message_context = 3; // The AI agent that generated the response AiAgent ai_agent = 4; // The AI model that generated the response AiModel ai_model = 5; - // Total processing latency in milliseconds - int64 latency_ms = 6; } /* AiUserFeedback @@ -1786,8 +1778,8 @@ message AiUserFeedback { string session_id = 2; // Feedback rating (positive, negative, neutral) AiFeedbackRating feedback_rating = 3; - // Numeric score if applicable (e.g., 1-5 stars) - int32 feedback_score = 4; + // Numeric score if applicable (e.g., 1-5 stars, must be positive) + int32 feedback_score = 4 [(buf.validate.field).int32.gte = 0]; // Feedback category (accuracy, helpfulness, safety, etc.) string feedback_category = 5; // Free-text feedback comment @@ -1893,8 +1885,11 @@ message AiPushNotificationSent { string a2a_context_id = 4; // The AI agent sending the notification AiAgent ai_agent = 5; - // HTTP response status code from the endpoint - int32 response_status = 6; + // HTTP response status code from the endpoint (valid range: 100-599) + int32 response_status = 6 [(buf.validate.field).int32 = { + gte: 100 + lte: 599 + }]; } // --- Human-in-the-Loop Events --- @@ -1908,10 +1903,15 @@ message AiPushNotificationSent { */ message UserImpersonationRequested { Common common = 1 [(buf.validate.field).required = true]; + // The user ID of the entity requesting impersonation string user_initiator_id = 2 [(buf.validate.field).required = true]; + // Type of the initiating user UserType user_initiator_type = 3; + // The user ID of the user to be impersonated string user_impersonated_id = 4 [(buf.validate.field).required = true]; + // Type of the impersonated user UserType user_impersonated_type = 5; + // Reason or justification for the impersonation request (e.g., "Support ticket #12345", "Delegated approval workflow") string context = 6 [(buf.validate.field).string.min_len = 1]; // The AI agent requesting impersonation AiAgent ai_agent = 7; @@ -1926,10 +1926,15 @@ message UserImpersonationRequested { */ message UserImpersonationDeclined { Common common = 1 [(buf.validate.field).required = true]; + // The user ID of the entity whose impersonation request was declined string user_initiator_id = 2 [(buf.validate.field).required = true]; + // Type of the initiating user UserType user_initiator_type = 3; + // The user ID of the user who was to be impersonated string user_impersonated_id = 4 [(buf.validate.field).required = true]; + // Type of the impersonated user UserType user_impersonated_type = 5; + // Reason or justification that was provided for the impersonation request string context = 6 [(buf.validate.field).string.min_len = 1]; // The AI agent whose request was declined AiAgent ai_agent = 7; @@ -1956,6 +1961,119 @@ message AiUserInputRequested { AiMessageContext message_context = 6; } +// --- Turn Events --- +// A turn represents a single question/response roundtrip within a session. +// Each turn gets its own trace_id for distributed tracing correlation. + +/* AiTurnStart + * @EventShortText: "AI turn started" + * @EventCode: "AE-0107" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI turn ${turn_id} started in session ${session_id}" + * @EventDocumentation: "A new turn (question/response roundtrip) has started within an AI session. Each turn represents a single user question and the resulting AI response. The turn's trace_id (in common.trace_context) correlates all operations within this roundtrip." + */ +message AiTurnStart { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier (links to AiSessionStart) + string session_id = 2 [(buf.validate.field).required = true]; + // Unique identifier for this turn within the session + string turn_id = 3 [(buf.validate.field).required = true]; + // Sequential turn number within the session (1, 2, 3, ..., must be positive) + int32 turn_number = 4 [(buf.validate.field).int32.gte = 1]; + // The AI agent handling this turn + AiAgent ai_agent = 5; + // Message context with the user's input + AiMessageContext message_context = 6; +} + +/* AiTurnEnd + * @EventShortText: "AI turn ended" + * @EventCode: "AE-0108" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "AI turn ${turn_id} ended in session ${session_id}" + * @EventDocumentation: "A turn (question/response roundtrip) has completed within an AI session. This event captures the turn outcome and token usage." + */ +message AiTurnEnd { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier (links to AiSessionStart) + string session_id = 2 [(buf.validate.field).required = true]; + // Unique identifier for this turn (must match AiTurnStart) + string turn_id = 3 [(buf.validate.field).required = true]; + // Sequential turn number within the session (must be positive) + int32 turn_number = 4 [(buf.validate.field).int32.gte = 1]; + // Invocation status of the turn + AiInvocationStatus status = 5; + // Tokens used for the prompt in this turn (must be non-negative) + int32 prompt_tokens = 6 [(buf.validate.field).int32.gte = 0]; + // Tokens used for the completion in this turn (must be non-negative) + int32 completion_tokens = 7 [(buf.validate.field).int32.gte = 0]; + // Total tokens consumed in this turn (must be non-negative) + int32 total_tokens = 8 [(buf.validate.field).int32.gte = 0]; + // Message context with the AI's response + AiMessageContext message_context = 9; + // Error message if status indicates failure + string error_message = 10; +} + +// --- Memory Events --- + +// Memory activity type (aligned with OCSF Datastore Activity activity_id) +enum AiMemoryActivityType { + //@ShortText: "Unspecified" + AI_MEMORY_ACTIVITY_TYPE_UNSPECIFIED = 0; + //@ShortText: "Read" + AI_MEMORY_ACTIVITY_TYPE_READ = 1; + //@ShortText: "Update" + AI_MEMORY_ACTIVITY_TYPE_UPDATE = 2; + //@ShortText: "Query" + AI_MEMORY_ACTIVITY_TYPE_QUERY = 4; + //@ShortText: "Write" + AI_MEMORY_ACTIVITY_TYPE_WRITE = 5; + //@ShortText: "Delete" + AI_MEMORY_ACTIVITY_TYPE_DELETE = 7; +} + +// Scope of the agent memory +enum AiMemoryScope { + //@ShortText: "Unspecified" + AI_MEMORY_SCOPE_UNSPECIFIED = 0; + //@ShortText: "Session" + AI_MEMORY_SCOPE_SESSION = 1; + //@ShortText: "User" + AI_MEMORY_SCOPE_USER = 2; + //@ShortText: "Agent" + AI_MEMORY_SCOPE_AGENT = 3; + //@ShortText: "Global" + AI_MEMORY_SCOPE_GLOBAL = 4; +} + +/* AiMemoryAccess + * @EventShortText: "AI agent memory accessed" + * @EventCode: "AE-0109" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "AI memory ${activity_type} on ${memory_store_id} (Scope: ${memory_scope})" + * @EventDocumentation: "An AI agent has accessed persistent memory storage (Central Agent Memory). This event tracks read, write, update, query, and delete operations on agent memory. Aligned with OCSF Datastore Activity (6005)." + */ +message AiMemoryAccess { + Common common = 1 [(buf.validate.field).required = true]; + // Session identifier + string session_id = 2; + // Type of memory operation + AiMemoryActivityType activity_type = 3 [(buf.validate.field).required = true]; + // Scope of the memory being accessed + AiMemoryScope memory_scope = 4; + // Identifier of the memory store + string memory_store_id = 5 [(buf.validate.field).required = true]; + // The AI agent accessing the memory + AiAgent ai_agent = 6; + // Memory key or query (may be redacted for privacy) + string memory_key = 7; + // Number of records affected (must be non-negative) + int32 records_count = 8 [(buf.validate.field).int32.gte = 0]; + // Operation status + AiInvocationStatus status = 9; +} + enum CredentialType { //@ShortText: "Unspecified" CREDENTIAL_TYPE_UNSPECIFIED = 0; From 0673aa1f81d0da742d51cda9e5a4ba02642da95a Mon Sep 17 00:00:00 2001 From: Miroslav Tsvetanov Date: Tue, 29 Sep 2026 18:43:32 +0300 Subject: [PATCH 3/4] chore: bump version to 0.57.0 --- pyproject.toml | 2 +- uv.lock | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 53e8ea16..c682ddbb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "sap-cloud-sdk" -version = "0.56.0" +version = "0.57.0" description = "SAP Cloud SDK for Python" readme = "README.md" license = "Apache-2.0" diff --git a/uv.lock b/uv.lock index 19e2ef24..dc99fe5d 100644 --- a/uv.lock +++ b/uv.lock @@ -4349,7 +4349,7 @@ wheels = [ [[package]] name = "sap-cloud-sdk" -version = "0.56.0" +version = "0.57.0" source = { editable = "." } dependencies = [ { name = "cryptography" }, From b184f48809312ba552e7201c73116bbd6c136a4a Mon Sep 17 00:00:00 2001 From: Miroslav Tsvetanov Date: Tue, 29 Sep 2026 18:59:11 +0300 Subject: [PATCH 4/4] chore: remove buf/validate generated files not present on main --- .../core/auditlog_ng/gen/buf/__init__.py | 0 .../auditlog_ng/gen/buf/validate/__init__.py | 0 .../gen/buf/validate/validate_pb2.py | 469 ------------- .../gen/buf/validate/validate_pb2.pyi | 654 ------------------ 4 files changed, 1123 deletions(-) delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py deleted file mode 100644 index 33311353..00000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.py +++ /dev/null @@ -1,469 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: buf/validate/validate.proto -# Protobuf Python Version: 6.33.5 -"""Generated protocol buffer code.""" -from google.protobuf import descriptor as _descriptor -from google.protobuf import descriptor_pool as _descriptor_pool -from google.protobuf import runtime_version as _runtime_version -from google.protobuf import symbol_database as _symbol_database -from google.protobuf.internal import builder as _builder -_runtime_version.ValidateProtobufRuntimeVersion( - _runtime_version.Domain.PUBLIC, - 6, - 33, - 5, - '', - 'buf/validate/validate.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 -from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2 -from google.protobuf import field_mask_pb2 as google_dot_protobuf_dot_field__mask__pb2 -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x1b\x62uf/validate/validate.proto\x12\x0c\x62uf.validate\x1a google/protobuf/descriptor.proto\x1a\x1egoogle/protobuf/duration.proto\x1a google/protobuf/field_mask.proto\x1a\x1fgoogle/protobuf/timestamp.proto\"P\n\x04Rule\x12\x0e\n\x02id\x18\x01 \x01(\tR\x02id\x12\x18\n\x07message\x18\x02 \x01(\tR\x07message\x12\x1e\n\nexpression\x18\x03 \x01(\tR\nexpression\"\xa1\x01\n\x0cMessageRules\x12%\n\x0e\x63\x65l_expression\x18\x05 \x03(\tR\rcelExpression\x12$\n\x03\x63\x65l\x18\x03 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x34\n\x05oneof\x18\x04 \x03(\x0b\x32\x1e.buf.validate.MessageOneofRuleR\x05oneofJ\x04\x08\x01\x10\x02R\x08\x64isabled\"F\n\x10MessageOneofRule\x12\x16\n\x06\x66ields\x18\x01 \x03(\tR\x06\x66ields\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\"(\n\nOneofRules\x12\x1a\n\x08required\x18\x01 \x01(\x08R\x08required\"\xe3\n\n\nFieldRules\x12%\n\x0e\x63\x65l_expression\x18\x1d \x03(\tR\rcelExpression\x12$\n\x03\x63\x65l\x18\x17 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65l\x12\x1a\n\x08required\x18\x19 \x01(\x08R\x08required\x12,\n\x06ignore\x18\x1b \x01(\x0e\x32\x14.buf.validate.IgnoreR\x06ignore\x12\x30\n\x05\x66loat\x18\x01 \x01(\x0b\x32\x18.buf.validate.FloatRulesH\x00R\x05\x66loat\x12\x33\n\x06\x64ouble\x18\x02 \x01(\x0b\x32\x19.buf.validate.DoubleRulesH\x00R\x06\x64ouble\x12\x30\n\x05int32\x18\x03 \x01(\x0b\x32\x18.buf.validate.Int32RulesH\x00R\x05int32\x12\x30\n\x05int64\x18\x04 \x01(\x0b\x32\x18.buf.validate.Int64RulesH\x00R\x05int64\x12\x33\n\x06uint32\x18\x05 \x01(\x0b\x32\x19.buf.validate.UInt32RulesH\x00R\x06uint32\x12\x33\n\x06uint64\x18\x06 \x01(\x0b\x32\x19.buf.validate.UInt64RulesH\x00R\x06uint64\x12\x33\n\x06sint32\x18\x07 \x01(\x0b\x32\x19.buf.validate.SInt32RulesH\x00R\x06sint32\x12\x33\n\x06sint64\x18\x08 \x01(\x0b\x32\x19.buf.validate.SInt64RulesH\x00R\x06sint64\x12\x36\n\x07\x66ixed32\x18\t \x01(\x0b\x32\x1a.buf.validate.Fixed32RulesH\x00R\x07\x66ixed32\x12\x36\n\x07\x66ixed64\x18\n \x01(\x0b\x32\x1a.buf.validate.Fixed64RulesH\x00R\x07\x66ixed64\x12\x39\n\x08sfixed32\x18\x0b \x01(\x0b\x32\x1b.buf.validate.SFixed32RulesH\x00R\x08sfixed32\x12\x39\n\x08sfixed64\x18\x0c \x01(\x0b\x32\x1b.buf.validate.SFixed64RulesH\x00R\x08sfixed64\x12-\n\x04\x62ool\x18\r \x01(\x0b\x32\x17.buf.validate.BoolRulesH\x00R\x04\x62ool\x12\x33\n\x06string\x18\x0e \x01(\x0b\x32\x19.buf.validate.StringRulesH\x00R\x06string\x12\x30\n\x05\x62ytes\x18\x0f \x01(\x0b\x32\x18.buf.validate.BytesRulesH\x00R\x05\x62ytes\x12-\n\x04\x65num\x18\x10 \x01(\x0b\x32\x17.buf.validate.EnumRulesH\x00R\x04\x65num\x12\x39\n\x08repeated\x18\x12 \x01(\x0b\x32\x1b.buf.validate.RepeatedRulesH\x00R\x08repeated\x12*\n\x03map\x18\x13 \x01(\x0b\x32\x16.buf.validate.MapRulesH\x00R\x03map\x12*\n\x03\x61ny\x18\x14 \x01(\x0b\x32\x16.buf.validate.AnyRulesH\x00R\x03\x61ny\x12\x39\n\x08\x64uration\x18\x15 \x01(\x0b\x32\x1b.buf.validate.DurationRulesH\x00R\x08\x64uration\x12=\n\nfield_mask\x18\x1c \x01(\x0b\x32\x1c.buf.validate.FieldMaskRulesH\x00R\tfieldMask\x12<\n\ttimestamp\x18\x16 \x01(\x0b\x32\x1c.buf.validate.TimestampRulesH\x00R\ttimestampB\x06\n\x04typeJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"Z\n\x0fPredefinedRules\x12$\n\x03\x63\x65l\x18\x01 \x03(\x0b\x32\x12.buf.validate.RuleR\x03\x63\x65lJ\x04\x08\x18\x10\x19J\x04\x08\x1a\x10\x1bR\x07skippedR\x0cignore_empty\"\xae\x17\n\nFloatRules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42n\xc2Hk\ni\n\x0b\x66loat.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x9d\x01\n\x02lt\x18\x02 \x01(\x02\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x08\x66loat.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xae\x01\n\x03lte\x18\x03 \x01(\x02\x42\x99\x01\xc2H\x95\x01\n\x92\x01\n\tfloat.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd4\x07\n\x02gt\x18\x04 \x01(\x02\x42\xc1\x07\xc2H\xbd\x07\n\x86\x01\n\x08\x66loat.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbd\x01\n\x0b\x66loat.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x0c\x66loat.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd7\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa1\x08\n\x03gte\x18\x05 \x01(\x02\x42\x8c\x08\xc2H\x88\x08\n\x95\x01\n\tfloat.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcc\x01\n\x0c\x66loat.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\rfloat.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe6\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x02\x42m\xc2Hj\nh\n\x08\x66loat.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x02\x42`\xc2H]\n[\n\x0c\x66loat.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12w\n\x06\x66inite\x18\x08 \x01(\x08\x42_\xc2H\\\nZ\n\x0c\x66loat.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x34\n\x07\x65xample\x18\t \x03(\x02\x42\x1a\xc2H\x17\n\x15\n\rfloat.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xc0\x17\n\x0b\x44oubleRules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42o\xc2Hl\nj\n\x0c\x64ouble.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x9e\x01\n\x02lt\x18\x02 \x01(\x01\x42\x8b\x01\xc2H\x87\x01\n\x84\x01\n\tdouble.lt\x1aw!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xaf\x01\n\x03lte\x18\x03 \x01(\x01\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\ndouble.lte\x1a\x84\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xd9\x07\n\x02gt\x18\x04 \x01(\x01\x42\xc6\x07\xc2H\xc2\x07\n\x87\x01\n\tdouble.gt\x1az!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xbe\x01\n\x0c\x64ouble.gt_lt\x1a\xad\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc8\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xad\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\rdouble.gt_lte\x1a\xbc\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xd8\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xbc\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xa6\x08\n\x03gte\x18\x05 \x01(\x01\x42\x91\x08\xc2H\x8d\x08\n\x96\x01\n\ndouble.gte\x1a\x87\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xcd\x01\n\rdouble.gte_lt\x1a\xbb\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd7\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xbb\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x0e\x64ouble.gte_lte\x1a\xca\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xe7\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xca\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x01\x42n\xc2Hk\ni\n\tdouble.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x01\x42\x61\xc2H^\n\\\n\rdouble.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12x\n\x06\x66inite\x18\x08 \x01(\x08\x42`\xc2H]\n[\n\rdouble.finite\x1aJrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'R\x06\x66inite\x12\x35\n\x07\x65xample\x18\t \x03(\x01\x42\x1b\xc2H\x18\n\x16\n\x0e\x64ouble.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt32Rules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42n\xc2Hk\ni\n\x0bint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x88\x01\n\x02lt\x18\x02 \x01(\x05\x42v\xc2Hs\nq\n\x08int32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x05\x42\x85\x01\xc2H\x81\x01\n\x7f\n\tint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x05\x42\xea\x06\xc2H\xe6\x06\nt\n\x08int32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x05\x42\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x05\x42m\xc2Hj\nh\n\x08int32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x05\x42`\xc2H]\n[\n\x0cint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\x08 \x03(\x05\x42\x1a\xc2H\x17\n\x15\n\rint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xde\x14\n\nInt64Rules\x12\x84\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42n\xc2Hk\ni\n\x0bint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x88\x01\n\x02lt\x18\x02 \x01(\x03\x42v\xc2Hs\nq\n\x08int64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9a\x01\n\x03lte\x18\x03 \x01(\x03\x42\x85\x01\xc2H\x81\x01\n\x7f\n\tint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xfd\x06\n\x02gt\x18\x04 \x01(\x03\x42\xea\x06\xc2H\xe6\x06\nt\n\x08int64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xad\x01\n\x0bint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb5\x01\n\x15int64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x0cint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc5\x01\n\x16int64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xca\x07\n\x03gte\x18\x05 \x01(\x03\x42\xb5\x07\xc2H\xb1\x07\n\x82\x01\n\tint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbc\x01\n\x0cint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc4\x01\n\x16int64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\rint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd4\x01\n\x17int64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12}\n\x02in\x18\x06 \x03(\x03\x42m\xc2Hj\nh\n\x08int64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\x07 \x03(\x03\x42`\xc2H]\n[\n\x0cint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x34\n\x07\x65xample\x18\t \x03(\x03\x42\x1a\xc2H\x17\n\x15\n\rint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt32Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\rBo\xc2Hl\nj\n\x0cuint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\rBw\xc2Ht\nr\n\tuint32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\rB\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\rB\xef\x06\xc2H\xeb\x06\nu\n\tuint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\rB\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\rBn\xc2Hk\ni\n\tuint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\rBa\xc2H^\n\\\n\ruint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\rB\x1b\xc2H\x18\n\x16\n\x0euint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bUInt64Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42o\xc2Hl\nj\n\x0cuint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x04\x42w\xc2Ht\nr\n\tuint64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nuint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x04\x42\xef\x06\xc2H\xeb\x06\nu\n\tuint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0cuint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16uint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\ruint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17uint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x04\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nuint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\ruint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17uint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0euint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18uint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x04\x42n\xc2Hk\ni\n\tuint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x04\x42\x61\xc2H^\n\\\n\ruint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x04\x42\x1b\xc2H\x18\n\x16\n\x0euint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt32Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42o\xc2Hl\nj\n\x0csint32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x11\x42w\xc2Ht\nr\n\tsint32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x11\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x11\x42\xef\x06\xc2H\xeb\x06\nu\n\tsint32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x11\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x11\x42n\xc2Hk\ni\n\tsint32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x11\x42\x61\xc2H^\n\\\n\rsint32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x11\x42\x1b\xc2H\x18\n\x16\n\x0esint32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xf0\x14\n\x0bSInt64Rules\x12\x85\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42o\xc2Hl\nj\n\x0csint64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x89\x01\n\x02lt\x18\x02 \x01(\x12\x42w\xc2Ht\nr\n\tsint64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9c\x01\n\x03lte\x18\x03 \x01(\x12\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\nsint64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x82\x07\n\x02gt\x18\x04 \x01(\x12\x42\xef\x06\xc2H\xeb\x06\nu\n\tsint64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xae\x01\n\x0csint64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb6\x01\n\x16sint64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\rsint64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc6\x01\n\x17sint64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xcf\x07\n\x03gte\x18\x05 \x01(\x12\x42\xba\x07\xc2H\xb6\x07\n\x83\x01\n\nsint64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbd\x01\n\rsint64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc5\x01\n\x17sint64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x0esint64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd5\x01\n\x18sint64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12~\n\x02in\x18\x06 \x03(\x12\x42n\xc2Hk\ni\n\tsint64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x07 \x03(\x12\x42\x61\xc2H^\n\\\n\rsint64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x35\n\x07\x65xample\x18\x08 \x03(\x12\x42\x1b\xc2H\x18\n\x16\n\x0esint64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0c\x46ixed32Rules\x12\x86\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42p\xc2Hm\nk\n\rfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x07\x42x\xc2Hu\ns\n\nfixed32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x07\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0b\x66ixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x07\x42\xf4\x06\xc2H\xf0\x06\nv\n\nfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0e\x66ixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x07\x42\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0b\x66ixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0e\x66ixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0f\x66ixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x07\x42o\xc2Hl\nj\n\nfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x07\x42\x62\xc2H_\n]\n\x0e\x66ixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x07\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x81\x15\n\x0c\x46ixed64Rules\x12\x86\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42p\xc2Hm\nk\n\rfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8a\x01\n\x02lt\x18\x02 \x01(\x06\x42x\xc2Hu\ns\n\nfixed64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9d\x01\n\x03lte\x18\x03 \x01(\x06\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x0b\x66ixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x87\x07\n\x02gt\x18\x04 \x01(\x06\x42\xf4\x06\xc2H\xf0\x06\nv\n\nfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xaf\x01\n\rfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb7\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x0e\x66ixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc7\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd4\x07\n\x03gte\x18\x05 \x01(\x06\x42\xbf\x07\xc2H\xbb\x07\n\x84\x01\n\x0b\x66ixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbe\x01\n\x0e\x66ixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc6\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x0f\x66ixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd6\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x7f\n\x02in\x18\x06 \x03(\x06\x42o\xc2Hl\nj\n\nfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12y\n\x06not_in\x18\x07 \x03(\x06\x42\x62\xc2H_\n]\n\x0e\x66ixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x36\n\x07\x65xample\x18\x08 \x03(\x06\x42\x1c\xc2H\x19\n\x17\n\x0f\x66ixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed32Rules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42q\xc2Hn\nl\n\x0esfixed32.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x0f\x42y\xc2Hv\nt\n\x0bsfixed32.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed32.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x0f\x42\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed32.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed32.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed32.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed32.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed32.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed32.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed32.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x0f\x42p\xc2Hm\nk\n\x0bsfixed32.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x0f\x42\x63\xc2H`\n^\n\x0fsfixed32.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x0f\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed32.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x93\x15\n\rSFixed64Rules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42q\xc2Hn\nl\n\x0esfixed64.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8b\x01\n\x02lt\x18\x02 \x01(\x10\x42y\xc2Hv\nt\n\x0bsfixed64.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\x9e\x01\n\x03lte\x18\x03 \x01(\x10\x42\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0csfixed64.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x8c\x07\n\x02gt\x18\x04 \x01(\x10\x42\xf9\x06\xc2H\xf5\x06\nw\n\x0bsfixed64.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0esfixed64.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18sfixed64.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0fsfixed64.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xd9\x07\n\x03gte\x18\x05 \x01(\x10\x42\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0csfixed64.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0fsfixed64.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10sfixed64.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x80\x01\n\x02in\x18\x06 \x03(\x10\x42p\xc2Hm\nk\n\x0bsfixed64.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12z\n\x06not_in\x18\x07 \x03(\x10\x42\x63\xc2H`\n^\n\x0fsfixed64.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x37\n\x07\x65xample\x18\x08 \x03(\x10\x42\x1d\xc2H\x1a\n\x18\n\x10sfixed64.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\xd1\x01\n\tBoolRules\x12\x83\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42m\xc2Hj\nh\n\nbool.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x33\n\x07\x65xample\x18\x02 \x03(\x08\x42\x19\xc2H\x16\n\x14\n\x0c\x62ool.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xcf?\n\x0bStringRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\tBq\xc2Hn\nl\n\x0cstring.const\x1a\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12v\n\x03len\x18\x13 \x01(\x04\x42\x64\xc2Ha\n_\n\nstring.len\x1aQuint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\x91\x01\n\x07min_len\x18\x02 \x01(\x04\x42x\xc2Hu\ns\n\x0estring.min_len\x1a\x61uint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\x0estring.max_len\x1a`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x95\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42x\xc2Hu\ns\n\x10string.len_bytes\x1a_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\x9e\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x80\x01\xc2H}\n{\n\x10string.min_bytes\x1aguint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\x9c\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x7f\xc2H|\nz\n\x10string.max_bytes\x1a\x66uint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x90\x01\n\x07pattern\x18\x06 \x01(\tBv\xc2Hs\nq\n\x0estring.pattern\x1a_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x86\x01\n\x06prefix\x18\x07 \x01(\tBn\xc2Hk\ni\n\rstring.prefix\x1aX!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x84\x01\n\x06suffix\x18\x08 \x01(\tBl\xc2Hi\ng\n\rstring.suffix\x1aV!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x94\x01\n\x08\x63ontains\x18\t \x01(\tBx\xc2Hu\ns\n\x0fstring.contains\x1a`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\x9e\x01\n\x0cnot_contains\x18\x17 \x01(\tB{\xc2Hx\nv\n\x13string.not_contains\x1a_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12~\n\x02in\x18\n \x03(\tBn\xc2Hk\ni\n\tstring.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12x\n\x06not_in\x18\x0b \x03(\tBa\xc2H^\n\\\n\rstring.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe0\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xc7\x01\xc2H\xc3\x01\n[\n\x0cstring.email\x12\x1dmust be a valid email address\x1a,!rules.email || this == \'\' || this.isEmail()\nd\n\x12string.email_empty\x12\x32value is empty, which is not a valid email address\x1a\x1a!rules.email || this != \'\'H\x00R\x05\x65mail\x12\xeb\x01\n\x08hostname\x18\r \x01(\x08\x42\xcc\x01\xc2H\xc8\x01\n_\n\x0fstring.hostname\x12\x18must be a valid hostname\x1a\x32!rules.hostname || this == \'\' || this.isHostname()\ne\n\x15string.hostname_empty\x12-value is empty, which is not a valid hostname\x1a\x1d!rules.hostname || this != \'\'H\x00R\x08hostname\x12\xc5\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb2\x01\xc2H\xae\x01\nO\n\tstring.ip\x12\x1amust be a valid IP address\x1a&!rules.ip || this == \'\' || this.isIp()\n[\n\x0fstring.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x17!rules.ip || this != \'\'H\x00R\x02ip\x12\xd6\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv4\x12\x1cmust be a valid IPv4 address\x1a)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\x11string.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x19!rules.ipv4 || this != \'\'H\x00R\x04ipv4\x12\xd6\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xbf\x01\xc2H\xbb\x01\nV\n\x0bstring.ipv6\x12\x1cmust be a valid IPv6 address\x1a)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\x11string.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x19!rules.ipv6 || this != \'\'H\x00R\x04ipv6\x12\xbe\x01\n\x03uri\x18\x11 \x01(\x08\x42\xa9\x01\xc2H\xa5\x01\nK\n\nstring.uri\x12\x13must be a valid URI\x1a(!rules.uri || this == \'\' || this.isUri()\nV\n\x10string.uri_empty\x12(value is empty, which is not a valid URI\x1a\x18!rules.uri || this != \'\'H\x00R\x03uri\x12r\n\x07uri_ref\x18\x12 \x01(\x08\x42W\xc2HT\nR\n\x0estring.uri_ref\x12\x1dmust be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x92\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xf5\x01\xc2H\xf1\x01\n{\n\x0estring.address\x12\'must be a valid hostname, or ip address\x1a@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\x14string.address_empty\x12!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\x92\x01\n string.ipv4_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv4 address with prefix length\x1a(!rules.ipv4_with_prefixlen || this != \'\'H\x00R\x11ipv4WithPrefixlen\x12\xdc\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xa9\x02\xc2H\xa5\x02\n\x8d\x01\n\x1astring.ipv6_with_prefixlen\x12/must be a valid IPv6 address with prefix length\x1a>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\x92\x01\n string.ipv6_with_prefixlen_empty\x12\x44value is empty, which is not a valid IPv6 address with prefix length\x1a(!rules.ipv6_with_prefixlen || this != \'\'H\x00R\x11ipv6WithPrefixlen\x12\xf6\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xd6\x01\xc2H\xd2\x01\nf\n\x10string.ip_prefix\x12\x19must be a valid IP prefix\x1a\x37!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\x16string.ip_prefix_empty\x12.value is empty, which is not a valid IP prefix\x1a\x1e!rules.ip_prefix || this != \'\'H\x00R\x08ipPrefix\x12\x89\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xe5\x01\xc2H\xe1\x01\no\n\x12string.ipv4_prefix\x12\x1bmust be a valid IPv4 prefix\x1a!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\x1astring.host_and_port_empty\x12\x37value is empty, which is not a valid host and port pair\x1a\"!rules.host_and_port || this != \'\'H\x00R\x0bhostAndPort\x12\xf4\x01\n\x04ulid\x18# \x01(\x08\x42\xdd\x01\xc2H\xd9\x01\n|\n\x0bstring.ulid\x12\x14must be a valid ULID\x1aW!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\x11string.ulid_empty\x12)value is empty, which is not a valid ULID\x1a\x19!rules.ulid || this != \'\'H\x00R\x04ulid\x12\xe1\x02\n\x0cprotobuf_fqn\x18% \x01(\x08\x42\xbb\x02\xc2H\xb7\x02\n\xaf\x01\n\x13string.protobuf_fqn\x12-must be a valid fully-qualified Protobuf name\x1ai!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x82\x01\n\x19string.protobuf_fqn_empty\x12\x42value is empty, which is not a valid fully-qualified Protobuf name\x1a!!rules.protobuf_fqn || this != \'\'H\x00R\x0bprotobufFqn\x12\xa1\x03\n\x10protobuf_dot_fqn\x18& \x01(\x08\x42\xf4\x02\xc2H\xf0\x02\n\xcd\x01\n\x17string.protobuf_dot_fqn\x12@must be a valid fully-qualified Protobuf name with a leading dot\x1ap!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\x9d\x01\n\x1dstring.protobuf_dot_fqn_empty\x12Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\x1a%!rules.protobuf_dot_fqn || this != \'\'H\x00R\x0eprotobufDotFqn\x12\xac\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xe5\x04\xc2H\xe1\x04\n\xea\x01\n#string.well_known_regex.header_name\x12 must be a valid HTTP header name\x1a\xa0\x01rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\x8d\x01\n)string.well_known_regex.header_name_empty\x12\x35value is empty, which is not a valid HTTP header name\x1a)rules.well_known_regex != 1 || this != \'\'\n\xe1\x01\n$string.well_known_regex.header_value\x12!must be a valid HTTP header value\x1a\x95\x01rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')H\x00R\x0ewellKnownRegex\x12\x16\n\x06strict\x18\x19 \x01(\x08R\x06strict\x12\x35\n\x07\x65xample\x18\" \x03(\tB\x1b\xc2H\x18\n\x16\n\x0estring.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xca\x12\n\nBytesRules\x12\x81\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42k\xc2Hh\nf\n\x0b\x62ytes.const\x1aWthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12p\n\x03len\x18\r \x01(\x04\x42^\xc2H[\nY\n\tbytes.len\x1aLuint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x8b\x01\n\x07min_len\x18\x02 \x01(\x04\x42r\xc2Ho\nm\n\rbytes.min_len\x1a\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x8a\x01\n\x07max_len\x18\x03 \x01(\x04\x42q\xc2Hn\nl\n\rbytes.max_len\x1a[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x93\x01\n\x07pattern\x18\x04 \x01(\tBy\xc2Hv\nt\n\rbytes.pattern\x1a\x63!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x83\x01\n\x06prefix\x18\x05 \x01(\x0c\x42k\xc2Hh\nf\n\x0c\x62ytes.prefix\x1aV!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x81\x01\n\x06suffix\x18\x06 \x01(\x0c\x42i\xc2Hf\nd\n\x0c\x62ytes.suffix\x1aT!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x87\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42k\xc2Hh\nf\n\x0e\x62ytes.contains\x1aT!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x02in\x18\x08 \x03(\x0c\x42\x94\x01\xc2H\x90\x01\n\x8d\x01\n\x08\x62ytes.in\x1a\x80\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12w\n\x06not_in\x18\t \x03(\x0c\x42`\xc2H]\n[\n\x0c\x62ytes.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe9\x01\n\x02ip\x18\n \x01(\x08\x42\xd6\x01\xc2H\xd2\x01\nn\n\x08\x62ytes.ip\x12\x1amust be a valid IP address\x1a\x46!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\x0e\x62ytes.ip_empty\x12/value is empty, which is not a valid IP address\x1a\x1d!rules.ip || this.size() != 0H\x00R\x02ip\x12\xe4\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\n_\n\nbytes.ipv4\x12\x1cmust be a valid IPv4 address\x1a\x33!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\x10\x62ytes.ipv4_empty\x12\x31value is empty, which is not a valid IPv4 address\x1a\x1f!rules.ipv4 || this.size() != 0H\x00R\x04ipv4\x12\xe5\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xce\x01\xc2H\xca\x01\n`\n\nbytes.ipv6\x12\x1cmust be a valid IPv6 address\x1a\x34!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\x10\x62ytes.ipv6_empty\x12\x31value is empty, which is not a valid IPv6 address\x1a\x1f!rules.ipv6 || this.size() != 0H\x00R\x04ipv6\x12\xd5\x01\n\x04uuid\x18\x0f \x01(\x08\x42\xbe\x01\xc2H\xba\x01\nX\n\nbytes.uuid\x12\x14must be a valid UUID\x1a\x34!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\x10\x62ytes.uuid_empty\x12)value is empty, which is not a valid UUID\x1a\x1f!rules.uuid || this.size() != 0H\x00R\x04uuid\x12\x34\n\x07\x65xample\x18\x0e \x03(\x0c\x42\x1a\xc2H\x17\n\x15\n\rbytes.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0c\n\nwell_known\"\xea\x03\n\tEnumRules\x12\x83\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42m\xc2Hj\nh\n\nenum.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12!\n\x0c\x64\x65\x66ined_only\x18\x02 \x01(\x08R\x0b\x64\x65\x66inedOnly\x12|\n\x02in\x18\x03 \x03(\x05\x42l\xc2Hi\ng\n\x07\x65num.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12v\n\x06not_in\x18\x04 \x03(\x05\x42_\xc2H\\\nZ\n\x0b\x65num.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\x33\n\x07\x65xample\x18\x05 \x03(\x05\x42\x19\xc2H\x16\n\x14\n\x0c\x65num.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\x90\x04\n\rRepeatedRules\x12\xa0\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x82\x01\xc2H\x7f\n}\n\x12repeated.min_items\x1aguint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xa6\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x88\x01\xc2H\x84\x01\n\x81\x01\n\x12repeated.max_items\x1akuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'R\x08maxItems\x12x\n\x06unique\x18\x03 \x01(\x08\x42`\xc2H]\n[\n\x0frepeated.unique\x12(repeated value must contain unique items\x1a\x1e!rules.unique || this.unique()R\x06unique\x12.\n\x05items\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05items*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xac\x03\n\x08MapRules\x12\x99\x01\n\tmin_pairs\x18\x01 \x01(\x04\x42|\xc2Hy\nw\n\rmap.min_pairs\x1a\x66uint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'R\x08minPairs\x12\x98\x01\n\tmax_pairs\x18\x02 \x01(\x04\x42{\xc2Hx\nv\n\rmap.max_pairs\x1a\x65uint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'R\x08maxPairs\x12,\n\x04keys\x18\x04 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x04keys\x12\x30\n\x06values\x18\x05 \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x06values*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"1\n\x08\x41nyRules\x12\x0e\n\x02in\x18\x02 \x03(\tR\x02in\x12\x15\n\x06not_in\x18\x03 \x03(\tR\x05notIn\"\xec\x16\n\rDurationRules\x12\xa2\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBq\xc2Hn\nl\n\x0e\x64uration.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa6\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationBy\xc2Hv\nt\n\x0b\x64uration.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb9\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x89\x01\xc2H\x85\x01\n\x82\x01\n\x0c\x64uration.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa7\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\xf9\x06\xc2H\xf5\x06\nw\n\x0b\x64uration.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb0\x01\n\x0e\x64uration.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb8\x01\n\x18\x64uration.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc0\x01\n\x0f\x64uration.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc8\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf4\x07\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xc4\x07\xc2H\xc0\x07\n\x85\x01\n\x0c\x64uration.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xbf\x01\n\x0f\x64uration.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc7\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcf\x01\n\x10\x64uration.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd7\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x9b\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBp\xc2Hm\nk\n\x0b\x64uration.in\x1a\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x95\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBc\xc2H`\n^\n\x0f\x64uration.not_in\x1aKthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12R\n\x07\x65xample\x18\t \x03(\x0b\x32\x19.google.protobuf.DurationB\x1d\xc2H\x1a\n\x18\n\x10\x64uration.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"\x86\x06\n\x0e\x46ieldMaskRules\x12\xc0\x01\n\x05\x63onst\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\x10\x66ield_mask.const\x1arthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05\x63onst\x12\xd7\x01\n\x02in\x18\x02 \x03(\tB\xc6\x01\xc2H\xc2\x01\n\xbf\x01\n\rfield_mask.in\x1a\xad\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xf4\x01\n\x06not_in\x18\x03 \x03(\tB\xdc\x01\xc2H\xd8\x01\n\xd5\x01\n\x11\x66ield_mask.not_in\x1a\xbf\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'R\x05notIn\x12U\n\x07\x65xample\x18\x04 \x03(\x0b\x32\x1a.google.protobuf.FieldMaskB\x1f\xc2H\x1c\n\x1a\n\x12\x66ield_mask.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\"\xe8\x17\n\x0eTimestampRules\x12\xa4\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBr\xc2Ho\nm\n\x0ftimestamp.const\x1aZthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa8\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampBz\xc2Hw\nu\n\x0ctimestamp.lt\x1a\x65!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbb\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x8a\x01\xc2H\x86\x01\n\x83\x01\n\rtimestamp.lte\x1ar!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12m\n\x06lt_now\x18\x07 \x01(\x08\x42T\xc2HQ\nO\n\x10timestamp.lt_now\x1a;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'H\x00R\x05ltNow\x12\xad\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xfe\x06\xc2H\xfa\x06\nx\n\x0ctimestamp.gt\x1ah!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\xb1\x01\n\x0ftimestamp.gt_lt\x1a\x9d\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xb9\x01\n\x19timestamp.gt_lt_exclusive\x1a\x9b\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc1\x01\n\x10timestamp.gt_lte\x1a\xac\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xc9\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xaa\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xfa\x07\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xc9\x07\xc2H\xc5\x07\n\x86\x01\n\rtimestamp.gte\x1au!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc0\x01\n\x10timestamp.gte_lt\x1a\xab\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xc8\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xa9\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd0\x01\n\x11timestamp.gte_lte\x1a\xba\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xd8\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xb8\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12p\n\x06gt_now\x18\x08 \x01(\x08\x42W\xc2HT\nR\n\x10timestamp.gt_now\x1a>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xb9\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x85\x01\xc2H\x81\x01\n\x7f\n\x10timestamp.within\x1akthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'R\x06within\x12T\n\x07\x65xample\x18\n \x03(\x0b\x32\x1a.google.protobuf.TimestampB\x1e\xc2H\x1b\n\x19\n\x11timestamp.example\x1a\x04trueR\x07\x65xample*\t\x08\xe8\x07\x10\x80\x80\x80\x80\x02\x42\x0b\n\tless_thanB\x0e\n\x0cgreater_than\"E\n\nViolations\x12\x37\n\nviolations\x18\x01 \x03(\x0b\x32\x17.buf.validate.ViolationR\nviolations\"\xc5\x01\n\tViolation\x12-\n\x05\x66ield\x18\x05 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x05\x66ield\x12+\n\x04rule\x18\x06 \x01(\x0b\x32\x17.buf.validate.FieldPathR\x04rule\x12\x17\n\x07rule_id\x18\x02 \x01(\tR\x06ruleId\x12\x18\n\x07message\x18\x03 \x01(\tR\x07message\x12\x17\n\x07\x66or_key\x18\x04 \x01(\x08R\x06\x66orKeyJ\x04\x08\x01\x10\x02R\nfield_path\"G\n\tFieldPath\x12:\n\x08\x65lements\x18\x01 \x03(\x0b\x32\x1e.buf.validate.FieldPathElementR\x08\x65lements\"\xcc\x03\n\x10\x46ieldPathElement\x12!\n\x0c\x66ield_number\x18\x01 \x01(\x05R\x0b\x66ieldNumber\x12\x1d\n\nfield_name\x18\x02 \x01(\tR\tfieldName\x12I\n\nfield_type\x18\x03 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tfieldType\x12\x45\n\x08key_type\x18\x04 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\x07keyType\x12I\n\nvalue_type\x18\x05 \x01(\x0e\x32*.google.protobuf.FieldDescriptorProto.TypeR\tvalueType\x12\x16\n\x05index\x18\x06 \x01(\x04H\x00R\x05index\x12\x1b\n\x08\x62ool_key\x18\x07 \x01(\x08H\x00R\x07\x62oolKey\x12\x19\n\x07int_key\x18\x08 \x01(\x03H\x00R\x06intKey\x12\x1b\n\x08uint_key\x18\t \x01(\x04H\x00R\x07uintKey\x12\x1f\n\nstring_key\x18\n \x01(\tH\x00R\tstringKeyB\x0b\n\tsubscript*\xa1\x01\n\x06Ignore\x12\x16\n\x12IGNORE_UNSPECIFIED\x10\x00\x12\x18\n\x14IGNORE_IF_ZERO_VALUE\x10\x01\x12\x11\n\rIGNORE_ALWAYS\x10\x03\"\x04\x08\x02\x10\x02*\x0cIGNORE_EMPTY*\x0eIGNORE_DEFAULT*\x17IGNORE_IF_DEFAULT_VALUE*\x15IGNORE_IF_UNPOPULATED*n\n\nKnownRegex\x12\x1b\n\x17KNOWN_REGEX_UNSPECIFIED\x10\x00\x12 \n\x1cKNOWN_REGEX_HTTP_HEADER_NAME\x10\x01\x12!\n\x1dKNOWN_REGEX_HTTP_HEADER_VALUE\x10\x02:V\n\x07message\x12\x1f.google.protobuf.MessageOptions\x18\x87\t \x01(\x0b\x32\x1a.buf.validate.MessageRulesR\x07message:N\n\x05oneof\x12\x1d.google.protobuf.OneofOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.OneofRulesR\x05oneof:N\n\x05\x66ield\x12\x1d.google.protobuf.FieldOptions\x18\x87\t \x01(\x0b\x32\x18.buf.validate.FieldRulesR\x05\x66ield:]\n\npredefined\x12\x1d.google.protobuf.FieldOptions\x18\x88\t \x01(\x0b\x32\x1d.buf.validate.PredefinedRulesR\npredefinedBn\n\x12\x62uild.buf.validateB\rValidateProtoP\x01ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'buf.validate.validate_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'\n\022build.buf.validateB\rValidateProtoP\001ZGbuf.build/gen/go/bufbuild/protovalidate/protocolbuffers/go/buf/validate' - _globals['_FLOATRULES'].fields_by_name['const']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013float.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['lt']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['lt']._serialized_options = b'\302H\206\001\n\203\001\n\010float.lt\032w!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['lte']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['lte']._serialized_options = b'\302H\225\001\n\222\001\n\tfloat.lte\032\204\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['gt']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['gt']._serialized_options = b'\302H\275\007\n\206\001\n\010float.gt\032z!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\275\001\n\013float.gt_lt\032\255\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\025float.gt_lt_exclusive\032\255\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\014float.gt_lte\032\274\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\327\001\n\026float.gt_lte_exclusive\032\274\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['gte']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['gte']._serialized_options = b'\302H\210\010\n\225\001\n\tfloat.gte\032\207\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\314\001\n\014float.gte_lt\032\273\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\026float.gte_lt_exclusive\032\273\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\rfloat.gte_lte\032\312\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\346\001\n\027float.gte_lte_exclusive\032\312\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['in']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010float.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014float.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_FLOATRULES'].fields_by_name['finite']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['finite']._serialized_options = b'\302H\\\nZ\n\014float.finite\032Jrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'' - _globals['_FLOATRULES'].fields_by_name['example']._loaded_options = None - _globals['_FLOATRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rfloat.example\032\004true' - _globals['_DOUBLERULES'].fields_by_name['const']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014double.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['lt']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['lt']._serialized_options = b'\302H\207\001\n\204\001\n\tdouble.lt\032w!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['lte']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['lte']._serialized_options = b'\302H\226\001\n\223\001\n\ndouble.lte\032\204\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['gt']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['gt']._serialized_options = b'\302H\302\007\n\207\001\n\tdouble.gt\032z!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\276\001\n\014double.gt_lt\032\255\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\310\001\n\026double.gt_lt_exclusive\032\255\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\rdouble.gt_lte\032\274\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\330\001\n\027double.gt_lte_exclusive\032\274\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['gte']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['gte']._serialized_options = b'\302H\215\010\n\226\001\n\ndouble.gte\032\207\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\315\001\n\rdouble.gte_lt\032\273\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\327\001\n\027double.gte_lt_exclusive\032\273\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\016double.gte_lte\032\312\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\347\001\n\030double.gte_lte_exclusive\032\312\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['in']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tdouble.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['not_in']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rdouble.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_DOUBLERULES'].fields_by_name['finite']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['finite']._serialized_options = b'\302H]\n[\n\rdouble.finite\032Jrules.finite ? (this.isNan() || this.isInf() ? \'must be finite\' : \'\') : \'\'' - _globals['_DOUBLERULES'].fields_by_name['example']._loaded_options = None - _globals['_DOUBLERULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016double.example\032\004true' - _globals['_INT32RULES'].fields_by_name['const']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013int32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_INT32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['lt']._serialized_options = b'\302Hs\nq\n\010int32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_INT32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\201\001\n\177\n\tint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_INT32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\346\006\nt\n\010int32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\255\001\n\013int32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\265\001\n\025int32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\014int32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\305\001\n\026int32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_INT32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\261\007\n\202\001\n\tint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\274\001\n\014int32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\304\001\n\026int32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\rint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\324\001\n\027int32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_INT32RULES'].fields_by_name['in']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010int32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_INT32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014int32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_INT32RULES'].fields_by_name['example']._loaded_options = None - _globals['_INT32RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint32.example\032\004true' - _globals['_INT64RULES'].fields_by_name['const']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['const']._serialized_options = b'\302Hk\ni\n\013int64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_INT64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['lt']._serialized_options = b'\302Hs\nq\n\010int64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_INT64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\201\001\n\177\n\tint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_INT64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\346\006\nt\n\010int64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\255\001\n\013int64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\265\001\n\025int64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\014int64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\305\001\n\026int64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_INT64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\261\007\n\202\001\n\tint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\274\001\n\014int64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\304\001\n\026int64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\rint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\324\001\n\027int64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_INT64RULES'].fields_by_name['in']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['in']._serialized_options = b'\302Hj\nh\n\010int64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_INT64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014int64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_INT64RULES'].fields_by_name['example']._loaded_options = None - _globals['_INT64RULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rint64.example\032\004true' - _globals['_UINT32RULES'].fields_by_name['const']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014uint32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tuint32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nuint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tuint32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014uint32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026uint32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\ruint32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027uint32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nuint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\ruint32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027uint32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016uint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030uint32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['in']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tuint32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\ruint32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_UINT32RULES'].fields_by_name['example']._loaded_options = None - _globals['_UINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint32.example\032\004true' - _globals['_UINT64RULES'].fields_by_name['const']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014uint64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tuint64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nuint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tuint64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014uint64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026uint64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\ruint64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027uint64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nuint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\ruint64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027uint64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016uint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030uint64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['in']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tuint64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\ruint64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_UINT64RULES'].fields_by_name['example']._loaded_options = None - _globals['_UINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016uint64.example\032\004true' - _globals['_SINT32RULES'].fields_by_name['const']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014sint32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tsint32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nsint32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tsint32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014sint32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026sint32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\rsint32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027sint32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nsint32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\rsint32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027sint32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016sint32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030sint32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['in']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tsint32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rsint32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SINT32RULES'].fields_by_name['example']._loaded_options = None - _globals['_SINT32RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint32.example\032\004true' - _globals['_SINT64RULES'].fields_by_name['const']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['const']._serialized_options = b'\302Hl\nj\n\014sint64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['lt']._serialized_options = b'\302Ht\nr\n\tsint64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['lte']._serialized_options = b'\302H\203\001\n\200\001\n\nsint64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['gt']._serialized_options = b'\302H\353\006\nu\n\tsint64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\256\001\n\014sint64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\266\001\n\026sint64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\rsint64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\306\001\n\027sint64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['gte']._serialized_options = b'\302H\266\007\n\203\001\n\nsint64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\275\001\n\rsint64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\305\001\n\027sint64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\016sint64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\325\001\n\030sint64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['in']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tsint64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rsint64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SINT64RULES'].fields_by_name['example']._loaded_options = None - _globals['_SINT64RULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016sint64.example\032\004true' - _globals['_FIXED32RULES'].fields_by_name['const']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hm\nk\n\rfixed32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302Hu\ns\n\nfixed32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\204\001\n\201\001\n\013fixed32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\360\006\nv\n\nfixed32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\257\001\n\rfixed32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\267\001\n\027fixed32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\016fixed32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\307\001\n\030fixed32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\273\007\n\204\001\n\013fixed32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\276\001\n\016fixed32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\306\001\n\030fixed32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\017fixed32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\326\001\n\031fixed32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['in']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hl\nj\n\nfixed32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302H_\n]\n\016fixed32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_FIXED32RULES'].fields_by_name['example']._loaded_options = None - _globals['_FIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed32.example\032\004true' - _globals['_FIXED64RULES'].fields_by_name['const']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hm\nk\n\rfixed64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302Hu\ns\n\nfixed64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\204\001\n\201\001\n\013fixed64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\360\006\nv\n\nfixed64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\257\001\n\rfixed64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\267\001\n\027fixed64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\016fixed64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\307\001\n\030fixed64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\273\007\n\204\001\n\013fixed64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\276\001\n\016fixed64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\306\001\n\030fixed64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\017fixed64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\326\001\n\031fixed64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['in']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hl\nj\n\nfixed64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302H_\n]\n\016fixed64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_FIXED64RULES'].fields_by_name['example']._loaded_options = None - _globals['_FIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\031\n\027\n\017fixed64.example\032\004true' - _globals['_SFIXED32RULES'].fields_by_name['const']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016sfixed32.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013sfixed32.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014sfixed32.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013sfixed32.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016sfixed32.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030sfixed32.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017sfixed32.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031sfixed32.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014sfixed32.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017sfixed32.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031sfixed32.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020sfixed32.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032sfixed32.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['in']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013sfixed32.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017sfixed32.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SFIXED32RULES'].fields_by_name['example']._loaded_options = None - _globals['_SFIXED32RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed32.example\032\004true' - _globals['_SFIXED64RULES'].fields_by_name['const']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016sfixed64.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['lt']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013sfixed64.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['lte']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014sfixed64.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['gt']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013sfixed64.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016sfixed64.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030sfixed64.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017sfixed64.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031sfixed64.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['gte']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014sfixed64.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017sfixed64.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031sfixed64.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020sfixed64.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032sfixed64.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['in']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013sfixed64.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['not_in']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017sfixed64.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_SFIXED64RULES'].fields_by_name['example']._loaded_options = None - _globals['_SFIXED64RULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020sfixed64.example\032\004true' - _globals['_BOOLRULES'].fields_by_name['const']._loaded_options = None - _globals['_BOOLRULES'].fields_by_name['const']._serialized_options = b'\302Hj\nh\n\nbool.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_BOOLRULES'].fields_by_name['example']._loaded_options = None - _globals['_BOOLRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014bool.example\032\004true' - _globals['_STRINGRULES'].fields_by_name['const']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\014string.const\032\\this != getField(rules, \'const\') ? \'must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['len']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['len']._serialized_options = b'\302Ha\n_\n\nstring.len\032Quint(this.size()) != rules.len ? \'must be %s characters\'.format([rules.len]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['min_len']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['min_len']._serialized_options = b'\302Hu\ns\n\016string.min_len\032auint(this.size()) < rules.min_len ? \'must be at least %s characters\'.format([rules.min_len]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['max_len']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['max_len']._serialized_options = b'\302Ht\nr\n\016string.max_len\032`uint(this.size()) > rules.max_len ? \'must be at most %s characters\'.format([rules.max_len]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['len_bytes']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['len_bytes']._serialized_options = b'\302Hu\ns\n\020string.len_bytes\032_uint(bytes(this).size()) != rules.len_bytes ? \'must be %s bytes\'.format([rules.len_bytes]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['min_bytes']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['min_bytes']._serialized_options = b'\302H}\n{\n\020string.min_bytes\032guint(bytes(this).size()) < rules.min_bytes ? \'must be at least %s bytes\'.format([rules.min_bytes]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['max_bytes']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['max_bytes']._serialized_options = b'\302H|\nz\n\020string.max_bytes\032fuint(bytes(this).size()) > rules.max_bytes ? \'must be at most %s bytes\'.format([rules.max_bytes]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['pattern']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['pattern']._serialized_options = b'\302Hs\nq\n\016string.pattern\032_!this.matches(rules.pattern) ? \'does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['prefix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['prefix']._serialized_options = b'\302Hk\ni\n\rstring.prefix\032X!this.startsWith(rules.prefix) ? \'does not have prefix `%s`\'.format([rules.prefix]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['suffix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['suffix']._serialized_options = b'\302Hi\ng\n\rstring.suffix\032V!this.endsWith(rules.suffix) ? \'does not have suffix `%s`\'.format([rules.suffix]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['contains']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['contains']._serialized_options = b'\302Hu\ns\n\017string.contains\032`!this.contains(rules.contains) ? \'does not contain substring `%s`\'.format([rules.contains]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['not_contains']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['not_contains']._serialized_options = b'\302Hx\nv\n\023string.not_contains\032_this.contains(rules.not_contains) ? \'contains substring `%s`\'.format([rules.not_contains]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['in']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['in']._serialized_options = b'\302Hk\ni\n\tstring.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['not_in']._serialized_options = b'\302H^\n\\\n\rstring.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_STRINGRULES'].fields_by_name['email']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['email']._serialized_options = b'\302H\303\001\n[\n\014string.email\022\035must be a valid email address\032,!rules.email || this == \'\' || this.isEmail()\nd\n\022string.email_empty\0222value is empty, which is not a valid email address\032\032!rules.email || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['hostname']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['hostname']._serialized_options = b'\302H\310\001\n_\n\017string.hostname\022\030must be a valid hostname\0322!rules.hostname || this == \'\' || this.isHostname()\ne\n\025string.hostname_empty\022-value is empty, which is not a valid hostname\032\035!rules.hostname || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ip']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ip']._serialized_options = b'\302H\256\001\nO\n\tstring.ip\022\032must be a valid IP address\032&!rules.ip || this == \'\' || this.isIp()\n[\n\017string.ip_empty\022/value is empty, which is not a valid IP address\032\027!rules.ip || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv4']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\273\001\nV\n\013string.ipv4\022\034must be a valid IPv4 address\032)!rules.ipv4 || this == \'\' || this.isIp(4)\na\n\021string.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\031!rules.ipv4 || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv6']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\273\001\nV\n\013string.ipv6\022\034must be a valid IPv6 address\032)!rules.ipv6 || this == \'\' || this.isIp(6)\na\n\021string.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\031!rules.ipv6 || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['uri']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['uri']._serialized_options = b'\302H\245\001\nK\n\nstring.uri\022\023must be a valid URI\032(!rules.uri || this == \'\' || this.isUri()\nV\n\020string.uri_empty\022(value is empty, which is not a valid URI\032\030!rules.uri || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['uri_ref']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['uri_ref']._serialized_options = b'\302HT\nR\n\016string.uri_ref\022\035must be a valid URI Reference\032!!rules.uri_ref || this.isUriRef()' - _globals['_STRINGRULES'].fields_by_name['address']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['address']._serialized_options = b'\302H\361\001\n{\n\016string.address\022\'must be a valid hostname, or ip address\032@!rules.address || this == \'\' || this.isHostname() || this.isIp()\nr\n\024string.address_empty\022!rules.ipv4_with_prefixlen || this == \'\' || this.isIpPrefix(4)\n\222\001\n string.ipv4_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv4 address with prefix length\032(!rules.ipv4_with_prefixlen || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv6_with_prefixlen']._serialized_options = b'\302H\245\002\n\215\001\n\032string.ipv6_with_prefixlen\022/must be a valid IPv6 address with prefix length\032>!rules.ipv6_with_prefixlen || this == \'\' || this.isIpPrefix(6)\n\222\001\n string.ipv6_with_prefixlen_empty\022Dvalue is empty, which is not a valid IPv6 address with prefix length\032(!rules.ipv6_with_prefixlen || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ip_prefix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ip_prefix']._serialized_options = b'\302H\322\001\nf\n\020string.ip_prefix\022\031must be a valid IP prefix\0327!rules.ip_prefix || this == \'\' || this.isIpPrefix(true)\nh\n\026string.ip_prefix_empty\022.value is empty, which is not a valid IP prefix\032\036!rules.ip_prefix || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ipv4_prefix']._serialized_options = b'\302H\341\001\no\n\022string.ipv4_prefix\022\033must be a valid IPv4 prefix\032!rules.host_and_port || this == \'\' || this.isHostAndPort(true)\ny\n\032string.host_and_port_empty\0227value is empty, which is not a valid host and port pair\032\"!rules.host_and_port || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['ulid']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['ulid']._serialized_options = b'\302H\331\001\n|\n\013string.ulid\022\024must be a valid ULID\032W!rules.ulid || this == \'\' || this.matches(\'^[0-7][0-9A-HJKMNP-TV-Za-hjkmnp-tv-z]{25}$\')\nY\n\021string.ulid_empty\022)value is empty, which is not a valid ULID\032\031!rules.ulid || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['protobuf_fqn']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['protobuf_fqn']._serialized_options = b'\302H\267\002\n\257\001\n\023string.protobuf_fqn\022-must be a valid fully-qualified Protobuf name\032i!rules.protobuf_fqn || this == \'\' || this.matches(\'^[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\202\001\n\031string.protobuf_fqn_empty\022Bvalue is empty, which is not a valid fully-qualified Protobuf name\032!!rules.protobuf_fqn || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['protobuf_dot_fqn']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['protobuf_dot_fqn']._serialized_options = b'\302H\360\002\n\315\001\n\027string.protobuf_dot_fqn\022@must be a valid fully-qualified Protobuf name with a leading dot\032p!rules.protobuf_dot_fqn || this == \'\' || this.matches(\'^\\\\.[A-Za-z_][A-Za-z_0-9]*(\\\\.[A-Za-z_][A-Za-z_0-9]*)*$\')\n\235\001\n\035string.protobuf_dot_fqn_empty\022Uvalue is empty, which is not a valid fully-qualified Protobuf name with a leading dot\032%!rules.protobuf_dot_fqn || this != \'\'' - _globals['_STRINGRULES'].fields_by_name['well_known_regex']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\341\004\n\352\001\n#string.well_known_regex.header_name\022 must be a valid HTTP header name\032\240\001rules.well_known_regex != 1 || this == \'\' || this.matches(!has(rules.strict) || rules.strict ?\'^:?[0-9a-zA-Z!#$%&\\\'*+-.^_|~\\x60]+$\' :\'^[^\\u0000\\u000A\\u000D]+$\')\n\215\001\n)string.well_known_regex.header_name_empty\0225value is empty, which is not a valid HTTP header name\032)rules.well_known_regex != 1 || this != \'\'\n\341\001\n$string.well_known_regex.header_value\022!must be a valid HTTP header value\032\225\001rules.well_known_regex != 2 || this.matches(!has(rules.strict) || rules.strict ?\'^[^\\u0000-\\u0008\\u000A-\\u001F\\u007F]*$\' :\'^[^\\u0000\\u000A\\u000D]*$\')' - _globals['_STRINGRULES'].fields_by_name['example']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['example']._serialized_options = b'\302H\030\n\026\n\016string.example\032\004true' - _globals['_BYTESRULES'].fields_by_name['const']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['const']._serialized_options = b'\302Hh\nf\n\013bytes.const\032Wthis != getField(rules, \'const\') ? \'must be %x\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['len']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['len']._serialized_options = b'\302H[\nY\n\tbytes.len\032Luint(this.size()) != rules.len ? \'must be %s bytes\'.format([rules.len]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['min_len']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['min_len']._serialized_options = b'\302Ho\nm\n\rbytes.min_len\032\\uint(this.size()) < rules.min_len ? \'must be at least %s bytes\'.format([rules.min_len]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['max_len']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['max_len']._serialized_options = b'\302Hn\nl\n\rbytes.max_len\032[uint(this.size()) > rules.max_len ? \'must be at most %s bytes\'.format([rules.max_len]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['pattern']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['pattern']._serialized_options = b'\302Hv\nt\n\rbytes.pattern\032c!string(this).matches(rules.pattern) ? \'must match regex pattern `%s`\'.format([rules.pattern]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['prefix']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['prefix']._serialized_options = b'\302Hh\nf\n\014bytes.prefix\032V!this.startsWith(rules.prefix) ? \'does not have prefix %x\'.format([rules.prefix]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['suffix']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['suffix']._serialized_options = b'\302Hf\nd\n\014bytes.suffix\032T!this.endsWith(rules.suffix) ? \'does not have suffix %x\'.format([rules.suffix]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['contains']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['contains']._serialized_options = b'\302Hh\nf\n\016bytes.contains\032T!this.contains(rules.contains) ? \'does not contain %x\'.format([rules.contains]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['in']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['in']._serialized_options = b'\302H\220\001\n\215\001\n\010bytes.in\032\200\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['not_in']._serialized_options = b'\302H]\n[\n\014bytes.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_BYTESRULES'].fields_by_name['ip']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['ip']._serialized_options = b'\302H\322\001\nn\n\010bytes.ip\022\032must be a valid IP address\032F!rules.ip || this.size() == 0 || this.size() == 4 || this.size() == 16\n`\n\016bytes.ip_empty\022/value is empty, which is not a valid IP address\032\035!rules.ip || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['ipv4']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['ipv4']._serialized_options = b'\302H\311\001\n_\n\nbytes.ipv4\022\034must be a valid IPv4 address\0323!rules.ipv4 || this.size() == 0 || this.size() == 4\nf\n\020bytes.ipv4_empty\0221value is empty, which is not a valid IPv4 address\032\037!rules.ipv4 || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['ipv6']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['ipv6']._serialized_options = b'\302H\312\001\n`\n\nbytes.ipv6\022\034must be a valid IPv6 address\0324!rules.ipv6 || this.size() == 0 || this.size() == 16\nf\n\020bytes.ipv6_empty\0221value is empty, which is not a valid IPv6 address\032\037!rules.ipv6 || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['uuid']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['uuid']._serialized_options = b'\302H\272\001\nX\n\nbytes.uuid\022\024must be a valid UUID\0324!rules.uuid || this.size() == 0 || this.size() == 16\n^\n\020bytes.uuid_empty\022)value is empty, which is not a valid UUID\032\037!rules.uuid || this.size() != 0' - _globals['_BYTESRULES'].fields_by_name['example']._loaded_options = None - _globals['_BYTESRULES'].fields_by_name['example']._serialized_options = b'\302H\027\n\025\n\rbytes.example\032\004true' - _globals['_ENUMRULES'].fields_by_name['const']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['const']._serialized_options = b'\302Hj\nh\n\nenum.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_ENUMRULES'].fields_by_name['in']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['in']._serialized_options = b'\302Hi\ng\n\007enum.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_ENUMRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['not_in']._serialized_options = b'\302H\\\nZ\n\013enum.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_ENUMRULES'].fields_by_name['example']._loaded_options = None - _globals['_ENUMRULES'].fields_by_name['example']._serialized_options = b'\302H\026\n\024\n\014enum.example\032\004true' - _globals['_REPEATEDRULES'].fields_by_name['min_items']._loaded_options = None - _globals['_REPEATEDRULES'].fields_by_name['min_items']._serialized_options = b'\302H\177\n}\n\022repeated.min_items\032guint(this.size()) < rules.min_items ? \'must contain at least %d item(s)\'.format([rules.min_items]) : \'\'' - _globals['_REPEATEDRULES'].fields_by_name['max_items']._loaded_options = None - _globals['_REPEATEDRULES'].fields_by_name['max_items']._serialized_options = b'\302H\204\001\n\201\001\n\022repeated.max_items\032kuint(this.size()) > rules.max_items ? \'must contain no more than %s item(s)\'.format([rules.max_items]) : \'\'' - _globals['_REPEATEDRULES'].fields_by_name['unique']._loaded_options = None - _globals['_REPEATEDRULES'].fields_by_name['unique']._serialized_options = b'\302H]\n[\n\017repeated.unique\022(repeated value must contain unique items\032\036!rules.unique || this.unique()' - _globals['_MAPRULES'].fields_by_name['min_pairs']._loaded_options = None - _globals['_MAPRULES'].fields_by_name['min_pairs']._serialized_options = b'\302Hy\nw\n\rmap.min_pairs\032fuint(this.size()) < rules.min_pairs ? \'map must be at least %d entries\'.format([rules.min_pairs]) : \'\'' - _globals['_MAPRULES'].fields_by_name['max_pairs']._loaded_options = None - _globals['_MAPRULES'].fields_by_name['max_pairs']._serialized_options = b'\302Hx\nv\n\rmap.max_pairs\032euint(this.size()) > rules.max_pairs ? \'map must be at most %d entries\'.format([rules.max_pairs]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['const']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['const']._serialized_options = b'\302Hn\nl\n\016duration.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['lt']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['lt']._serialized_options = b'\302Hv\nt\n\013duration.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['lte']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['lte']._serialized_options = b'\302H\205\001\n\202\001\n\014duration.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['gt']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['gt']._serialized_options = b'\302H\365\006\nw\n\013duration.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\260\001\n\016duration.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\270\001\n\030duration.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\300\001\n\017duration.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\310\001\n\031duration.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['gte']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['gte']._serialized_options = b'\302H\300\007\n\205\001\n\014duration.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\277\001\n\017duration.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\307\001\n\031duration.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\317\001\n\020duration.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\327\001\n\032duration.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['in']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['in']._serialized_options = b'\302Hm\nk\n\013duration.in\032\\!(this in getField(rules, \'in\')) ? \'must be in list %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['not_in']._serialized_options = b'\302H`\n^\n\017duration.not_in\032Kthis in rules.not_in ? \'must not be in list %s\'.format([rules.not_in]) : \'\'' - _globals['_DURATIONRULES'].fields_by_name['example']._loaded_options = None - _globals['_DURATIONRULES'].fields_by_name['example']._serialized_options = b'\302H\032\n\030\n\020duration.example\032\004true' - _globals['_FIELDMASKRULES'].fields_by_name['const']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['const']._serialized_options = b'\302H\211\001\n\206\001\n\020field_mask.const\032rthis.paths != getField(rules, \'const\').paths ? \'must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'' - _globals['_FIELDMASKRULES'].fields_by_name['in']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['in']._serialized_options = b'\302H\302\001\n\277\001\n\rfield_mask.in\032\255\001!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'' - _globals['_FIELDMASKRULES'].fields_by_name['not_in']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['not_in']._serialized_options = b'\302H\330\001\n\325\001\n\021field_mask.not_in\032\277\001!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'must not contain any paths in %s\'.format([getField(rules, \'not_in\')]) : \'\'' - _globals['_FIELDMASKRULES'].fields_by_name['example']._loaded_options = None - _globals['_FIELDMASKRULES'].fields_by_name['example']._serialized_options = b'\302H\034\n\032\n\022field_mask.example\032\004true' - _globals['_TIMESTAMPRULES'].fields_by_name['const']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['const']._serialized_options = b'\302Ho\nm\n\017timestamp.const\032Zthis != getField(rules, \'const\') ? \'must equal %s\'.format([getField(rules, \'const\')]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['lt']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['lt']._serialized_options = b'\302Hw\nu\n\014timestamp.lt\032e!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'must be less than %s\'.format([rules.lt]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['lte']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['lte']._serialized_options = b'\302H\206\001\n\203\001\n\rtimestamp.lte\032r!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'must be less than or equal to %s\'.format([rules.lte]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['lt_now']._serialized_options = b'\302HQ\nO\n\020timestamp.lt_now\032;(rules.lt_now && this > now) ? \'must be less than now\' : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\372\006\nx\n\014timestamp.gt\032h!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'must be greater than %s\'.format([rules.gt]) : \'\'\n\261\001\n\017timestamp.gt_lt\032\235\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\271\001\n\031timestamp.gt_lt_exclusive\032\233\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\301\001\n\020timestamp.gt_lte\032\254\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\311\001\n\032timestamp.gt_lte_exclusive\032\252\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gte']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gte']._serialized_options = b'\302H\305\007\n\206\001\n\rtimestamp.gte\032u!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\300\001\n\020timestamp.gte_lt\032\253\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\310\001\n\032timestamp.gte_lt_exclusive\032\251\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\320\001\n\021timestamp.gte_lte\032\272\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\330\001\n\033timestamp.gte_lte_exclusive\032\270\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gt_now']._serialized_options = b'\302HT\nR\n\020timestamp.gt_now\032>(rules.gt_now && this < now) ? \'must be greater than now\' : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\201\001\n\177\n\020timestamp.within\032kthis < now-rules.within || this > now+rules.within ? \'must be within %s of now\'.format([rules.within]) : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['example']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['example']._serialized_options = b'\302H\033\n\031\n\021timestamp.example\032\004true' - _globals['_IGNORE']._serialized_start=54642 - _globals['_IGNORE']._serialized_end=54803 - _globals['_KNOWNREGEX']._serialized_start=54805 - _globals['_KNOWNREGEX']._serialized_end=54915 - _globals['_RULE']._serialized_start=178 - _globals['_RULE']._serialized_end=258 - _globals['_MESSAGERULES']._serialized_start=261 - _globals['_MESSAGERULES']._serialized_end=422 - _globals['_MESSAGEONEOFRULE']._serialized_start=424 - _globals['_MESSAGEONEOFRULE']._serialized_end=494 - _globals['_ONEOFRULES']._serialized_start=496 - _globals['_ONEOFRULES']._serialized_end=536 - _globals['_FIELDRULES']._serialized_start=539 - _globals['_FIELDRULES']._serialized_end=1918 - _globals['_PREDEFINEDRULES']._serialized_start=1920 - _globals['_PREDEFINEDRULES']._serialized_end=2010 - _globals['_FLOATRULES']._serialized_start=2013 - _globals['_FLOATRULES']._serialized_end=5003 - _globals['_DOUBLERULES']._serialized_start=5006 - _globals['_DOUBLERULES']._serialized_end=8014 - _globals['_INT32RULES']._serialized_start=8017 - _globals['_INT32RULES']._serialized_end=10671 - _globals['_INT64RULES']._serialized_start=10674 - _globals['_INT64RULES']._serialized_end=13328 - _globals['_UINT32RULES']._serialized_start=13331 - _globals['_UINT32RULES']._serialized_end=16003 - _globals['_UINT64RULES']._serialized_start=16006 - _globals['_UINT64RULES']._serialized_end=18678 - _globals['_SINT32RULES']._serialized_start=18681 - _globals['_SINT32RULES']._serialized_end=21353 - _globals['_SINT64RULES']._serialized_start=21356 - _globals['_SINT64RULES']._serialized_end=24028 - _globals['_FIXED32RULES']._serialized_start=24031 - _globals['_FIXED32RULES']._serialized_end=26720 - _globals['_FIXED64RULES']._serialized_start=26723 - _globals['_FIXED64RULES']._serialized_end=29412 - _globals['_SFIXED32RULES']._serialized_start=29415 - _globals['_SFIXED32RULES']._serialized_end=32122 - _globals['_SFIXED64RULES']._serialized_start=32125 - _globals['_SFIXED64RULES']._serialized_end=34832 - _globals['_BOOLRULES']._serialized_start=34835 - _globals['_BOOLRULES']._serialized_end=35044 - _globals['_STRINGRULES']._serialized_start=35047 - _globals['_STRINGRULES']._serialized_end=43190 - _globals['_BYTESRULES']._serialized_start=43193 - _globals['_BYTESRULES']._serialized_end=45571 - _globals['_ENUMRULES']._serialized_start=45574 - _globals['_ENUMRULES']._serialized_end=46064 - _globals['_REPEATEDRULES']._serialized_start=46067 - _globals['_REPEATEDRULES']._serialized_end=46595 - _globals['_MAPRULES']._serialized_start=46598 - _globals['_MAPRULES']._serialized_end=47026 - _globals['_ANYRULES']._serialized_start=47028 - _globals['_ANYRULES']._serialized_end=47077 - _globals['_DURATIONRULES']._serialized_start=47080 - _globals['_DURATIONRULES']._serialized_end=50004 - _globals['_FIELDMASKRULES']._serialized_start=50007 - _globals['_FIELDMASKRULES']._serialized_end=50781 - _globals['_TIMESTAMPRULES']._serialized_start=50784 - _globals['_TIMESTAMPRULES']._serialized_end=53832 - _globals['_VIOLATIONS']._serialized_start=53834 - _globals['_VIOLATIONS']._serialized_end=53903 - _globals['_VIOLATION']._serialized_start=53906 - _globals['_VIOLATION']._serialized_end=54103 - _globals['_FIELDPATH']._serialized_start=54105 - _globals['_FIELDPATH']._serialized_end=54176 - _globals['_FIELDPATHELEMENT']._serialized_start=54179 - _globals['_FIELDPATHELEMENT']._serialized_end=54639 -# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi deleted file mode 100644 index 4c4c3770..00000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/buf/validate/validate_pb2.pyi +++ /dev/null @@ -1,654 +0,0 @@ -import datetime - -from google.protobuf import descriptor_pb2 as _descriptor_pb2 -from google.protobuf import duration_pb2 as _duration_pb2 -from google.protobuf import field_mask_pb2 as _field_mask_pb2 -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -from google.protobuf.internal import python_message as _python_message -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from collections.abc import Iterable as _Iterable, Mapping as _Mapping -from typing import ClassVar as _ClassVar, Optional as _Optional, Union as _Union - -DESCRIPTOR: _descriptor.FileDescriptor - -class Ignore(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - IGNORE_UNSPECIFIED: _ClassVar[Ignore] - IGNORE_IF_ZERO_VALUE: _ClassVar[Ignore] - IGNORE_ALWAYS: _ClassVar[Ignore] - -class KnownRegex(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - KNOWN_REGEX_UNSPECIFIED: _ClassVar[KnownRegex] - KNOWN_REGEX_HTTP_HEADER_NAME: _ClassVar[KnownRegex] - KNOWN_REGEX_HTTP_HEADER_VALUE: _ClassVar[KnownRegex] -IGNORE_UNSPECIFIED: Ignore -IGNORE_IF_ZERO_VALUE: Ignore -IGNORE_ALWAYS: Ignore -KNOWN_REGEX_UNSPECIFIED: KnownRegex -KNOWN_REGEX_HTTP_HEADER_NAME: KnownRegex -KNOWN_REGEX_HTTP_HEADER_VALUE: KnownRegex -MESSAGE_FIELD_NUMBER: _ClassVar[int] -message: _descriptor.FieldDescriptor -ONEOF_FIELD_NUMBER: _ClassVar[int] -oneof: _descriptor.FieldDescriptor -FIELD_FIELD_NUMBER: _ClassVar[int] -field: _descriptor.FieldDescriptor -PREDEFINED_FIELD_NUMBER: _ClassVar[int] -predefined: _descriptor.FieldDescriptor - -class Rule(_message.Message): - __slots__ = ("id", "message", "expression") - ID_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - EXPRESSION_FIELD_NUMBER: _ClassVar[int] - id: str - message: str - expression: str - def __init__(self, id: _Optional[str] = ..., message: _Optional[str] = ..., expression: _Optional[str] = ...) -> None: ... - -class MessageRules(_message.Message): - __slots__ = ("cel_expression", "cel", "oneof") - CEL_EXPRESSION_FIELD_NUMBER: _ClassVar[int] - CEL_FIELD_NUMBER: _ClassVar[int] - ONEOF_FIELD_NUMBER: _ClassVar[int] - cel_expression: _containers.RepeatedScalarFieldContainer[str] - cel: _containers.RepeatedCompositeFieldContainer[Rule] - oneof: _containers.RepeatedCompositeFieldContainer[MessageOneofRule] - def __init__(self, cel_expression: _Optional[_Iterable[str]] = ..., cel: _Optional[_Iterable[_Union[Rule, _Mapping]]] = ..., oneof: _Optional[_Iterable[_Union[MessageOneofRule, _Mapping]]] = ...) -> None: ... - -class MessageOneofRule(_message.Message): - __slots__ = ("fields", "required") - FIELDS_FIELD_NUMBER: _ClassVar[int] - REQUIRED_FIELD_NUMBER: _ClassVar[int] - fields: _containers.RepeatedScalarFieldContainer[str] - required: bool - def __init__(self, fields: _Optional[_Iterable[str]] = ..., required: _Optional[bool] = ...) -> None: ... - -class OneofRules(_message.Message): - __slots__ = ("required",) - REQUIRED_FIELD_NUMBER: _ClassVar[int] - required: bool - def __init__(self, required: _Optional[bool] = ...) -> None: ... - -class FieldRules(_message.Message): - __slots__ = ("cel_expression", "cel", "required", "ignore", "float", "double", "int32", "int64", "uint32", "uint64", "sint32", "sint64", "fixed32", "fixed64", "sfixed32", "sfixed64", "bool", "string", "bytes", "enum", "repeated", "map", "any", "duration", "field_mask", "timestamp") - CEL_EXPRESSION_FIELD_NUMBER: _ClassVar[int] - CEL_FIELD_NUMBER: _ClassVar[int] - REQUIRED_FIELD_NUMBER: _ClassVar[int] - IGNORE_FIELD_NUMBER: _ClassVar[int] - FLOAT_FIELD_NUMBER: _ClassVar[int] - DOUBLE_FIELD_NUMBER: _ClassVar[int] - INT32_FIELD_NUMBER: _ClassVar[int] - INT64_FIELD_NUMBER: _ClassVar[int] - UINT32_FIELD_NUMBER: _ClassVar[int] - UINT64_FIELD_NUMBER: _ClassVar[int] - SINT32_FIELD_NUMBER: _ClassVar[int] - SINT64_FIELD_NUMBER: _ClassVar[int] - FIXED32_FIELD_NUMBER: _ClassVar[int] - FIXED64_FIELD_NUMBER: _ClassVar[int] - SFIXED32_FIELD_NUMBER: _ClassVar[int] - SFIXED64_FIELD_NUMBER: _ClassVar[int] - BOOL_FIELD_NUMBER: _ClassVar[int] - STRING_FIELD_NUMBER: _ClassVar[int] - BYTES_FIELD_NUMBER: _ClassVar[int] - ENUM_FIELD_NUMBER: _ClassVar[int] - REPEATED_FIELD_NUMBER: _ClassVar[int] - MAP_FIELD_NUMBER: _ClassVar[int] - ANY_FIELD_NUMBER: _ClassVar[int] - DURATION_FIELD_NUMBER: _ClassVar[int] - FIELD_MASK_FIELD_NUMBER: _ClassVar[int] - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - cel_expression: _containers.RepeatedScalarFieldContainer[str] - cel: _containers.RepeatedCompositeFieldContainer[Rule] - required: bool - ignore: Ignore - float: FloatRules - double: DoubleRules - int32: Int32Rules - int64: Int64Rules - uint32: UInt32Rules - uint64: UInt64Rules - sint32: SInt32Rules - sint64: SInt64Rules - fixed32: Fixed32Rules - fixed64: Fixed64Rules - sfixed32: SFixed32Rules - sfixed64: SFixed64Rules - bool: BoolRules - string: StringRules - bytes: BytesRules - enum: EnumRules - repeated: RepeatedRules - map: MapRules - any: AnyRules - duration: DurationRules - field_mask: FieldMaskRules - timestamp: TimestampRules - def __init__(self, cel_expression: _Optional[_Iterable[str]] = ..., cel: _Optional[_Iterable[_Union[Rule, _Mapping]]] = ..., required: _Optional[bool] = ..., ignore: _Optional[_Union[Ignore, str]] = ..., float: _Optional[_Union[FloatRules, _Mapping]] = ..., double: _Optional[_Union[DoubleRules, _Mapping]] = ..., int32: _Optional[_Union[Int32Rules, _Mapping]] = ..., int64: _Optional[_Union[Int64Rules, _Mapping]] = ..., uint32: _Optional[_Union[UInt32Rules, _Mapping]] = ..., uint64: _Optional[_Union[UInt64Rules, _Mapping]] = ..., sint32: _Optional[_Union[SInt32Rules, _Mapping]] = ..., sint64: _Optional[_Union[SInt64Rules, _Mapping]] = ..., fixed32: _Optional[_Union[Fixed32Rules, _Mapping]] = ..., fixed64: _Optional[_Union[Fixed64Rules, _Mapping]] = ..., sfixed32: _Optional[_Union[SFixed32Rules, _Mapping]] = ..., sfixed64: _Optional[_Union[SFixed64Rules, _Mapping]] = ..., bool: _Optional[_Union[BoolRules, _Mapping]] = ..., string: _Optional[_Union[StringRules, _Mapping]] = ..., bytes: _Optional[_Union[BytesRules, _Mapping]] = ..., enum: _Optional[_Union[EnumRules, _Mapping]] = ..., repeated: _Optional[_Union[RepeatedRules, _Mapping]] = ..., map: _Optional[_Union[MapRules, _Mapping]] = ..., any: _Optional[_Union[AnyRules, _Mapping]] = ..., duration: _Optional[_Union[DurationRules, _Mapping]] = ..., field_mask: _Optional[_Union[FieldMaskRules, _Mapping]] = ..., timestamp: _Optional[_Union[TimestampRules, _Mapping]] = ...) -> None: ... - -class PredefinedRules(_message.Message): - __slots__ = ("cel",) - CEL_FIELD_NUMBER: _ClassVar[int] - cel: _containers.RepeatedCompositeFieldContainer[Rule] - def __init__(self, cel: _Optional[_Iterable[_Union[Rule, _Mapping]]] = ...) -> None: ... - -class FloatRules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "finite", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - FINITE_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: float - lt: float - lte: float - gt: float - gte: float - not_in: _containers.RepeatedScalarFieldContainer[float] - finite: bool - example: _containers.RepeatedScalarFieldContainer[float] - def __init__(self, const: _Optional[float] = ..., lt: _Optional[float] = ..., lte: _Optional[float] = ..., gt: _Optional[float] = ..., gte: _Optional[float] = ..., not_in: _Optional[_Iterable[float]] = ..., finite: _Optional[bool] = ..., example: _Optional[_Iterable[float]] = ..., **kwargs) -> None: ... - -class DoubleRules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "finite", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - FINITE_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: float - lt: float - lte: float - gt: float - gte: float - not_in: _containers.RepeatedScalarFieldContainer[float] - finite: bool - example: _containers.RepeatedScalarFieldContainer[float] - def __init__(self, const: _Optional[float] = ..., lt: _Optional[float] = ..., lte: _Optional[float] = ..., gt: _Optional[float] = ..., gte: _Optional[float] = ..., not_in: _Optional[_Iterable[float]] = ..., finite: _Optional[bool] = ..., example: _Optional[_Iterable[float]] = ..., **kwargs) -> None: ... - -class Int32Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class Int64Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class UInt32Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class UInt64Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class SInt32Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class SInt64Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class Fixed32Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class Fixed64Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class SFixed32Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class SFixed64Rules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - lt: int - lte: int - gt: int - gte: int - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., lt: _Optional[int] = ..., lte: _Optional[int] = ..., gt: _Optional[int] = ..., gte: _Optional[int] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class BoolRules(_message.Message): - __slots__ = ("const", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: bool - example: _containers.RepeatedScalarFieldContainer[bool] - def __init__(self, const: _Optional[bool] = ..., example: _Optional[_Iterable[bool]] = ...) -> None: ... - -class StringRules(_message.Message): - __slots__ = ("const", "len", "min_len", "max_len", "len_bytes", "min_bytes", "max_bytes", "pattern", "prefix", "suffix", "contains", "not_contains", "not_in", "email", "hostname", "ip", "ipv4", "ipv6", "uri", "uri_ref", "address", "uuid", "tuuid", "ip_with_prefixlen", "ipv4_with_prefixlen", "ipv6_with_prefixlen", "ip_prefix", "ipv4_prefix", "ipv6_prefix", "host_and_port", "ulid", "protobuf_fqn", "protobuf_dot_fqn", "well_known_regex", "strict", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LEN_FIELD_NUMBER: _ClassVar[int] - MIN_LEN_FIELD_NUMBER: _ClassVar[int] - MAX_LEN_FIELD_NUMBER: _ClassVar[int] - LEN_BYTES_FIELD_NUMBER: _ClassVar[int] - MIN_BYTES_FIELD_NUMBER: _ClassVar[int] - MAX_BYTES_FIELD_NUMBER: _ClassVar[int] - PATTERN_FIELD_NUMBER: _ClassVar[int] - PREFIX_FIELD_NUMBER: _ClassVar[int] - SUFFIX_FIELD_NUMBER: _ClassVar[int] - CONTAINS_FIELD_NUMBER: _ClassVar[int] - NOT_CONTAINS_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EMAIL_FIELD_NUMBER: _ClassVar[int] - HOSTNAME_FIELD_NUMBER: _ClassVar[int] - IP_FIELD_NUMBER: _ClassVar[int] - IPV4_FIELD_NUMBER: _ClassVar[int] - IPV6_FIELD_NUMBER: _ClassVar[int] - URI_FIELD_NUMBER: _ClassVar[int] - URI_REF_FIELD_NUMBER: _ClassVar[int] - ADDRESS_FIELD_NUMBER: _ClassVar[int] - UUID_FIELD_NUMBER: _ClassVar[int] - TUUID_FIELD_NUMBER: _ClassVar[int] - IP_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] - IPV4_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] - IPV6_WITH_PREFIXLEN_FIELD_NUMBER: _ClassVar[int] - IP_PREFIX_FIELD_NUMBER: _ClassVar[int] - IPV4_PREFIX_FIELD_NUMBER: _ClassVar[int] - IPV6_PREFIX_FIELD_NUMBER: _ClassVar[int] - HOST_AND_PORT_FIELD_NUMBER: _ClassVar[int] - ULID_FIELD_NUMBER: _ClassVar[int] - PROTOBUF_FQN_FIELD_NUMBER: _ClassVar[int] - PROTOBUF_DOT_FQN_FIELD_NUMBER: _ClassVar[int] - WELL_KNOWN_REGEX_FIELD_NUMBER: _ClassVar[int] - STRICT_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: str - len: int - min_len: int - max_len: int - len_bytes: int - min_bytes: int - max_bytes: int - pattern: str - prefix: str - suffix: str - contains: str - not_contains: str - not_in: _containers.RepeatedScalarFieldContainer[str] - email: bool - hostname: bool - ip: bool - ipv4: bool - ipv6: bool - uri: bool - uri_ref: bool - address: bool - uuid: bool - tuuid: bool - ip_with_prefixlen: bool - ipv4_with_prefixlen: bool - ipv6_with_prefixlen: bool - ip_prefix: bool - ipv4_prefix: bool - ipv6_prefix: bool - host_and_port: bool - ulid: bool - protobuf_fqn: bool - protobuf_dot_fqn: bool - well_known_regex: KnownRegex - strict: bool - example: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, const: _Optional[str] = ..., len: _Optional[int] = ..., min_len: _Optional[int] = ..., max_len: _Optional[int] = ..., len_bytes: _Optional[int] = ..., min_bytes: _Optional[int] = ..., max_bytes: _Optional[int] = ..., pattern: _Optional[str] = ..., prefix: _Optional[str] = ..., suffix: _Optional[str] = ..., contains: _Optional[str] = ..., not_contains: _Optional[str] = ..., not_in: _Optional[_Iterable[str]] = ..., email: _Optional[bool] = ..., hostname: _Optional[bool] = ..., ip: _Optional[bool] = ..., ipv4: _Optional[bool] = ..., ipv6: _Optional[bool] = ..., uri: _Optional[bool] = ..., uri_ref: _Optional[bool] = ..., address: _Optional[bool] = ..., uuid: _Optional[bool] = ..., tuuid: _Optional[bool] = ..., ip_with_prefixlen: _Optional[bool] = ..., ipv4_with_prefixlen: _Optional[bool] = ..., ipv6_with_prefixlen: _Optional[bool] = ..., ip_prefix: _Optional[bool] = ..., ipv4_prefix: _Optional[bool] = ..., ipv6_prefix: _Optional[bool] = ..., host_and_port: _Optional[bool] = ..., ulid: _Optional[bool] = ..., protobuf_fqn: _Optional[bool] = ..., protobuf_dot_fqn: _Optional[bool] = ..., well_known_regex: _Optional[_Union[KnownRegex, str]] = ..., strict: _Optional[bool] = ..., example: _Optional[_Iterable[str]] = ..., **kwargs) -> None: ... - -class BytesRules(_message.Message): - __slots__ = ("const", "len", "min_len", "max_len", "pattern", "prefix", "suffix", "contains", "not_in", "ip", "ipv4", "ipv6", "uuid", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LEN_FIELD_NUMBER: _ClassVar[int] - MIN_LEN_FIELD_NUMBER: _ClassVar[int] - MAX_LEN_FIELD_NUMBER: _ClassVar[int] - PATTERN_FIELD_NUMBER: _ClassVar[int] - PREFIX_FIELD_NUMBER: _ClassVar[int] - SUFFIX_FIELD_NUMBER: _ClassVar[int] - CONTAINS_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - IP_FIELD_NUMBER: _ClassVar[int] - IPV4_FIELD_NUMBER: _ClassVar[int] - IPV6_FIELD_NUMBER: _ClassVar[int] - UUID_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: bytes - len: int - min_len: int - max_len: int - pattern: str - prefix: bytes - suffix: bytes - contains: bytes - not_in: _containers.RepeatedScalarFieldContainer[bytes] - ip: bool - ipv4: bool - ipv6: bool - uuid: bool - example: _containers.RepeatedScalarFieldContainer[bytes] - def __init__(self, const: _Optional[bytes] = ..., len: _Optional[int] = ..., min_len: _Optional[int] = ..., max_len: _Optional[int] = ..., pattern: _Optional[str] = ..., prefix: _Optional[bytes] = ..., suffix: _Optional[bytes] = ..., contains: _Optional[bytes] = ..., not_in: _Optional[_Iterable[bytes]] = ..., ip: _Optional[bool] = ..., ipv4: _Optional[bool] = ..., ipv6: _Optional[bool] = ..., uuid: _Optional[bool] = ..., example: _Optional[_Iterable[bytes]] = ..., **kwargs) -> None: ... - -class EnumRules(_message.Message): - __slots__ = ("const", "defined_only", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - DEFINED_ONLY_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: int - defined_only: bool - not_in: _containers.RepeatedScalarFieldContainer[int] - example: _containers.RepeatedScalarFieldContainer[int] - def __init__(self, const: _Optional[int] = ..., defined_only: _Optional[bool] = ..., not_in: _Optional[_Iterable[int]] = ..., example: _Optional[_Iterable[int]] = ..., **kwargs) -> None: ... - -class RepeatedRules(_message.Message): - __slots__ = ("min_items", "max_items", "unique", "items") - Extensions: _python_message._ExtensionDict - MIN_ITEMS_FIELD_NUMBER: _ClassVar[int] - MAX_ITEMS_FIELD_NUMBER: _ClassVar[int] - UNIQUE_FIELD_NUMBER: _ClassVar[int] - ITEMS_FIELD_NUMBER: _ClassVar[int] - min_items: int - max_items: int - unique: bool - items: FieldRules - def __init__(self, min_items: _Optional[int] = ..., max_items: _Optional[int] = ..., unique: _Optional[bool] = ..., items: _Optional[_Union[FieldRules, _Mapping]] = ...) -> None: ... - -class MapRules(_message.Message): - __slots__ = ("min_pairs", "max_pairs", "keys", "values") - Extensions: _python_message._ExtensionDict - MIN_PAIRS_FIELD_NUMBER: _ClassVar[int] - MAX_PAIRS_FIELD_NUMBER: _ClassVar[int] - KEYS_FIELD_NUMBER: _ClassVar[int] - VALUES_FIELD_NUMBER: _ClassVar[int] - min_pairs: int - max_pairs: int - keys: FieldRules - values: FieldRules - def __init__(self, min_pairs: _Optional[int] = ..., max_pairs: _Optional[int] = ..., keys: _Optional[_Union[FieldRules, _Mapping]] = ..., values: _Optional[_Union[FieldRules, _Mapping]] = ...) -> None: ... - -class AnyRules(_message.Message): - __slots__ = ("not_in",) - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - not_in: _containers.RepeatedScalarFieldContainer[str] - def __init__(self, not_in: _Optional[_Iterable[str]] = ..., **kwargs) -> None: ... - -class DurationRules(_message.Message): - __slots__ = ("const", "lt", "lte", "gt", "gte", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: _duration_pb2.Duration - lt: _duration_pb2.Duration - lte: _duration_pb2.Duration - gt: _duration_pb2.Duration - gte: _duration_pb2.Duration - not_in: _containers.RepeatedCompositeFieldContainer[_duration_pb2.Duration] - example: _containers.RepeatedCompositeFieldContainer[_duration_pb2.Duration] - def __init__(self, const: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., lt: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., lte: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., gt: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., gte: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., not_in: _Optional[_Iterable[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]]] = ..., example: _Optional[_Iterable[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]]] = ..., **kwargs) -> None: ... - -class FieldMaskRules(_message.Message): - __slots__ = ("const", "not_in", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - IN_FIELD_NUMBER: _ClassVar[int] - NOT_IN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: _field_mask_pb2.FieldMask - not_in: _containers.RepeatedScalarFieldContainer[str] - example: _containers.RepeatedCompositeFieldContainer[_field_mask_pb2.FieldMask] - def __init__(self, const: _Optional[_Union[_field_mask_pb2.FieldMask, _Mapping]] = ..., not_in: _Optional[_Iterable[str]] = ..., example: _Optional[_Iterable[_Union[_field_mask_pb2.FieldMask, _Mapping]]] = ..., **kwargs) -> None: ... - -class TimestampRules(_message.Message): - __slots__ = ("const", "lt", "lte", "lt_now", "gt", "gte", "gt_now", "within", "example") - Extensions: _python_message._ExtensionDict - CONST_FIELD_NUMBER: _ClassVar[int] - LT_FIELD_NUMBER: _ClassVar[int] - LTE_FIELD_NUMBER: _ClassVar[int] - LT_NOW_FIELD_NUMBER: _ClassVar[int] - GT_FIELD_NUMBER: _ClassVar[int] - GTE_FIELD_NUMBER: _ClassVar[int] - GT_NOW_FIELD_NUMBER: _ClassVar[int] - WITHIN_FIELD_NUMBER: _ClassVar[int] - EXAMPLE_FIELD_NUMBER: _ClassVar[int] - const: _timestamp_pb2.Timestamp - lt: _timestamp_pb2.Timestamp - lte: _timestamp_pb2.Timestamp - lt_now: bool - gt: _timestamp_pb2.Timestamp - gte: _timestamp_pb2.Timestamp - gt_now: bool - within: _duration_pb2.Duration - example: _containers.RepeatedCompositeFieldContainer[_timestamp_pb2.Timestamp] - def __init__(self, const: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., lt: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., lte: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., lt_now: _Optional[bool] = ..., gt: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., gte: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ..., gt_now: _Optional[bool] = ..., within: _Optional[_Union[datetime.timedelta, _duration_pb2.Duration, _Mapping]] = ..., example: _Optional[_Iterable[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]]] = ...) -> None: ... - -class Violations(_message.Message): - __slots__ = ("violations",) - VIOLATIONS_FIELD_NUMBER: _ClassVar[int] - violations: _containers.RepeatedCompositeFieldContainer[Violation] - def __init__(self, violations: _Optional[_Iterable[_Union[Violation, _Mapping]]] = ...) -> None: ... - -class Violation(_message.Message): - __slots__ = ("field", "rule", "rule_id", "message", "for_key") - FIELD_FIELD_NUMBER: _ClassVar[int] - RULE_FIELD_NUMBER: _ClassVar[int] - RULE_ID_FIELD_NUMBER: _ClassVar[int] - MESSAGE_FIELD_NUMBER: _ClassVar[int] - FOR_KEY_FIELD_NUMBER: _ClassVar[int] - field: FieldPath - rule: FieldPath - rule_id: str - message: str - for_key: bool - def __init__(self, field: _Optional[_Union[FieldPath, _Mapping]] = ..., rule: _Optional[_Union[FieldPath, _Mapping]] = ..., rule_id: _Optional[str] = ..., message: _Optional[str] = ..., for_key: _Optional[bool] = ...) -> None: ... - -class FieldPath(_message.Message): - __slots__ = ("elements",) - ELEMENTS_FIELD_NUMBER: _ClassVar[int] - elements: _containers.RepeatedCompositeFieldContainer[FieldPathElement] - def __init__(self, elements: _Optional[_Iterable[_Union[FieldPathElement, _Mapping]]] = ...) -> None: ... - -class FieldPathElement(_message.Message): - __slots__ = ("field_number", "field_name", "field_type", "key_type", "value_type", "index", "bool_key", "int_key", "uint_key", "string_key") - FIELD_NUMBER_FIELD_NUMBER: _ClassVar[int] - FIELD_NAME_FIELD_NUMBER: _ClassVar[int] - FIELD_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - VALUE_TYPE_FIELD_NUMBER: _ClassVar[int] - INDEX_FIELD_NUMBER: _ClassVar[int] - BOOL_KEY_FIELD_NUMBER: _ClassVar[int] - INT_KEY_FIELD_NUMBER: _ClassVar[int] - UINT_KEY_FIELD_NUMBER: _ClassVar[int] - STRING_KEY_FIELD_NUMBER: _ClassVar[int] - field_number: int - field_name: str - field_type: _descriptor_pb2.FieldDescriptorProto.Type - key_type: _descriptor_pb2.FieldDescriptorProto.Type - value_type: _descriptor_pb2.FieldDescriptorProto.Type - index: int - bool_key: bool - int_key: int - uint_key: int - string_key: str - def __init__(self, field_number: _Optional[int] = ..., field_name: _Optional[str] = ..., field_type: _Optional[_Union[_descriptor_pb2.FieldDescriptorProto.Type, str]] = ..., key_type: _Optional[_Union[_descriptor_pb2.FieldDescriptorProto.Type, str]] = ..., value_type: _Optional[_Union[_descriptor_pb2.FieldDescriptorProto.Type, str]] = ..., index: _Optional[int] = ..., bool_key: _Optional[bool] = ..., int_key: _Optional[int] = ..., uint_key: _Optional[int] = ..., string_key: _Optional[str] = ...) -> None: ...