From fcc36e1f26beeab7e20e91309d7dec0d9faa221d Mon Sep 17 00:00:00 2001 From: I583880 Date: Tue, 7 Apr 2026 17:03:22 +0300 Subject: [PATCH 01/20] Implement Auditlog NG client --- pyproject.toml | 7 +- src/buf/__init__.py | 0 src/buf/validate/__init__.py | 0 src/buf/validate/validate_pb2.py | 465 ++++++ src/buf/validate/validate_pb2.pyi | 650 ++++++++ .../core/auditlog_ng/__init__.py | 126 ++ src/sap_cloud_sdk/core/auditlog_ng/client.py | 238 +++ src/sap_cloud_sdk/core/auditlog_ng/config.py | 71 + .../core/auditlog_ng/example_send_event.py | 295 ++++ .../core/auditlog_ng/exceptions.py | 25 + .../core/auditlog_ng/gen/__init__.py | 0 .../core/auditlog_ng/gen/protoc/__init__.py | 0 .../auditlog_ng/gen/protoc/gen/__init__.py | 0 .../gen/protoc/gen/jsonschema/__init__.py | 0 .../gen/protoc/gen/jsonschema/v1/__init__.py | 0 .../protoc/gen/jsonschema/v1/options_pb2.py | 38 + .../protoc/gen/jsonschema/v1/options_pb2.pyi | 22 + .../core/auditlog_ng/gen/sap/__init__.py | 0 .../auditlog_ng/gen/sap/auditlog/__init__.py | 0 .../gen/sap/auditlog/auditevent/__init__.py | 0 .../sap/auditlog/auditevent/v1/__init__.py | 0 .../auditlog/auditevent/v1/auditevent_pb2.py | 641 ++++++++ .../auditlog/auditevent/v1/auditevent_pb2.pyi | 1093 ++++++++++++++ .../sap/auditlog/auditevent/v2/__init__.py | 0 .../auditlog/auditevent/v2/auditevent_pb2.py | 464 ++++++ .../auditlog/auditevent/v2/auditevent_pb2.pyi | 1319 +++++++++++++++++ .../core/auditlog_ng/requirements-client.txt | 8 + .../auditlog_ng/setup-python-environment.sh | 16 + .../core/auditlog_ng/user-guide.md | 246 +++ tests/core/unit/auditlog_ng/__init__.py | 0 tests/core/unit/auditlog_ng/unit/__init__.py | 0 .../core/unit/auditlog_ng/unit/test_client.py | 216 +++ .../core/unit/auditlog_ng/unit/test_config.py | 108 ++ .../auditlog_ng/unit/test_create_client.py | 105 ++ .../unit/auditlog_ng/unit/test_exceptions.py | 48 + 35 files changed, 6200 insertions(+), 1 deletion(-) create mode 100644 src/buf/__init__.py create mode 100644 src/buf/validate/__init__.py create mode 100644 src/buf/validate/validate_pb2.py create mode 100644 src/buf/validate/validate_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/client.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/config.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/exceptions.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt create mode 100755 src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/user-guide.md create mode 100644 tests/core/unit/auditlog_ng/__init__.py create mode 100644 tests/core/unit/auditlog_ng/unit/__init__.py create mode 100644 tests/core/unit/auditlog_ng/unit/test_client.py create mode 100644 tests/core/unit/auditlog_ng/unit/test_config.py create mode 100644 tests/core/unit/auditlog_ng/unit/test_create_client.py create mode 100644 tests/core/unit/auditlog_ng/unit/test_exceptions.py diff --git a/pyproject.toml b/pyproject.toml index 808bbe7..748a87e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -20,6 +20,11 @@ dependencies = [ "opentelemetry-processor-baggage~=0.61b0", "traceloop-sdk~=0.52.0", "PyJWT~=2.10.1", + "protobuf>=4.25.0", + "protovalidate>=0.13.0", + "grpcio>=1.60.0", + "opentelemetry-api>=1.28.0", + "opentelemetry-sdk>=1.28.0", ] [build-system] @@ -27,7 +32,7 @@ requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] -packages = ["src/sap_cloud_sdk"] +packages = ["src/sap_cloud_sdk", "src/buf"] [dependency-groups] dev = [ diff --git a/src/buf/__init__.py b/src/buf/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/buf/validate/__init__.py b/src/buf/validate/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/buf/validate/validate_pb2.py b/src/buf/validate/validate_pb2.py new file mode 100644 index 0000000..3a2a360 --- /dev/null +++ b/src/buf/validate/validate_pb2.py @@ -0,0 +1,465 @@ +# -*- 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\"\x90\x18\n\nFloatRules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42t\xc2Hq\no\n\x0b\x66loat.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa3\x01\n\x02lt\x18\x02 \x01(\x02\x42\x90\x01\xc2H\x8c\x01\n\x89\x01\n\x08\x66loat.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb4\x01\n\x03lte\x18\x03 \x01(\x02\x42\x9f\x01\xc2H\x9b\x01\n\x98\x01\n\tfloat.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf3\x07\n\x02gt\x18\x04 \x01(\x02\x42\xe0\x07\xc2H\xdc\x07\n\x8d\x01\n\x08\x66loat.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc3\x01\n\x0b\x66loat.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd3\x01\n\x0c\x66loat.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xdd\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xbf\x08\n\x03gte\x18\x05 \x01(\x02\x42\xaa\x08\xc2H\xa6\x08\n\x9b\x01\n\tfloat.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd2\x01\n\x0c\x66loat.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe2\x01\n\rfloat.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xec\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x02\x42s\xc2Hp\nn\n\x08\x66loat.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x02\x42\x66\xc2Hc\na\n\x0c\x66loat.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12}\n\x06\x66inite\x18\x08 \x01(\x08\x42\x65\xc2Hb\n`\n\x0c\x66loat.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value 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\"\xa2\x18\n\x0b\x44oubleRules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42u\xc2Hr\np\n\x0c\x64ouble.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa4\x01\n\x02lt\x18\x02 \x01(\x01\x42\x91\x01\xc2H\x8d\x01\n\x8a\x01\n\tdouble.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb5\x01\n\x03lte\x18\x03 \x01(\x01\x42\xa0\x01\xc2H\x9c\x01\n\x99\x01\n\ndouble.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf8\x07\n\x02gt\x18\x04 \x01(\x01\x42\xe5\x07\xc2H\xe1\x07\n\x8e\x01\n\tdouble.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc4\x01\n\x0c\x64ouble.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd4\x01\n\rdouble.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xde\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xc4\x08\n\x03gte\x18\x05 \x01(\x01\x42\xaf\x08\xc2H\xab\x08\n\x9c\x01\n\ndouble.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd3\x01\n\rdouble.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe3\x01\n\x0e\x64ouble.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xed\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x01\x42t\xc2Hq\no\n\tdouble.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x01\x42g\xc2Hd\nb\n\rdouble.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12~\n\x06\x66inite\x18\x08 \x01(\x08\x42\x66\xc2Hc\na\n\rdouble.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value 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\"\xba\x15\n\nInt32Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42t\xc2Hq\no\n\x0bint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x05\x42|\xc2Hy\nw\n\x08int32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x05\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x05\x42\x88\x07\xc2H\x84\x07\nz\n\x08int32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x05\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x05\x42s\xc2Hp\nn\n\x08int32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x05\x42\x66\xc2Hc\na\n\x0cint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xba\x15\n\nInt64Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42t\xc2Hq\no\n\x0bint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x03\x42|\xc2Hy\nw\n\x08int64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x03\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x03\x42\x88\x07\xc2H\x84\x07\nz\n\x08int64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x03\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x03\x42s\xc2Hp\nn\n\x08int64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x03\x42\x66\xc2Hc\na\n\x0cint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bUInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\rBu\xc2Hr\np\n\x0cuint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\rB}\xc2Hz\nx\n\tuint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\rB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\rB\x8d\x07\xc2H\x89\x07\n{\n\tuint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\rB\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\rBt\xc2Hq\no\n\tuint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\rBg\xc2Hd\nb\n\ruint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bUInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42u\xc2Hr\np\n\x0cuint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x04\x42}\xc2Hz\nx\n\tuint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x04\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x04\x42\x8d\x07\xc2H\x89\x07\n{\n\tuint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x04\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x04\x42t\xc2Hq\no\n\tuint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x04\x42g\xc2Hd\nb\n\ruint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bSInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42u\xc2Hr\np\n\x0csint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x11\x42}\xc2Hz\nx\n\tsint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x11\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x11\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x11\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x11\x42t\xc2Hq\no\n\tsint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x11\x42g\xc2Hd\nb\n\rsint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bSInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42u\xc2Hr\np\n\x0csint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x12\x42}\xc2Hz\nx\n\tsint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x12\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x12\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x12\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x12\x42t\xc2Hq\no\n\tsint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x12\x42g\xc2Hd\nb\n\rsint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xdc\x15\n\x0c\x46ixed32Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42v\xc2Hs\nq\n\rfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x07\x42~\xc2H{\ny\n\nfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x07\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x07\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x07\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x07\x42u\xc2Hr\np\n\nfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x07\x42h\xc2He\nc\n\x0e\x66ixed32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xdc\x15\n\x0c\x46ixed64Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42v\xc2Hs\nq\n\rfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x06\x42~\xc2H{\ny\n\nfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x06\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x06\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x06\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x06\x42u\xc2Hr\np\n\nfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x06\x42h\xc2He\nc\n\x0e\x66ixed64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xee\x15\n\rSFixed32Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42w\xc2Ht\nr\n\x0esfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x0f\x42\x7f\xc2H|\nz\n\x0bsfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x0f\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x0f\x42v\xc2Hs\nq\n\x0bsfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x0f\x42i\xc2Hf\nd\n\x0fsfixed32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xee\x15\n\rSFixed64Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42w\xc2Ht\nr\n\x0esfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x10\x42\x7f\xc2H|\nz\n\x0bsfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x10\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x10\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x10\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x10\x42v\xc2Hs\nq\n\x0bsfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x10\x42i\xc2Hf\nd\n\x0fsfixed64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xd7\x01\n\tBoolRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42s\xc2Hp\nn\n\nbool.const\x1a`this != getField(rules, \'const\') ? \'value 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\x8d\x01\n\x05\x63onst\x18\x01 \x01(\tBw\xc2Ht\nr\n\x0cstring.const\x1a\x62this != getField(rules, \'const\') ? \'value must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x83\x01\n\x03len\x18\x13 \x01(\x04\x42q\xc2Hn\nl\n\nstring.len\x1a^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\xa1\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x0estring.min_len\x1anuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x9f\x01\n\x07max_len\x18\x03 \x01(\x04\x42\x85\x01\xc2H\x81\x01\n\x7f\n\x0estring.max_len\x1amuint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\xa5\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x10string.len_bytes\x1aluint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\xad\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x10string.min_bytes\x1atuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\xac\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x10string.max_bytes\x1asuint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x96\x01\n\x07pattern\x18\x06 \x01(\tB|\xc2Hy\nw\n\x0estring.pattern\x1a\x65!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x8c\x01\n\x06prefix\x18\x07 \x01(\tBt\xc2Hq\no\n\rstring.prefix\x1a^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x8a\x01\n\x06suffix\x18\x08 \x01(\tBr\xc2Ho\nm\n\rstring.suffix\x1a\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x9a\x01\n\x08\x63ontains\x18\t \x01(\tB~\xc2H{\ny\n\x0fstring.contains\x1a\x66!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x0cnot_contains\x18\x17 \x01(\tB\x81\x01\xc2H~\n|\n\x13string.not_contains\x1a\x65this.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12\x84\x01\n\x02in\x18\n \x03(\tBt\xc2Hq\no\n\tstring.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x0b \x03(\tBg\xc2Hd\nb\n\rstring.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe6\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\na\n\x0cstring.email\x12#value must 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\xf1\x01\n\x08hostname\x18\r \x01(\x08\x42\xd2\x01\xc2H\xce\x01\ne\n\x0fstring.hostname\x12\x1evalue must 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\xcb\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb8\x01\xc2H\xb4\x01\nU\n\tstring.ip\x12 value must 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\xdc\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv4\x12\"value must 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\xdc\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv6\x12\"value must 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\xc4\x01\n\x03uri\x18\x11 \x01(\x08\x42\xaf\x01\xc2H\xab\x01\nQ\n\nstring.uri\x12\x19value must 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\x12x\n\x07uri_ref\x18\x12 \x01(\x08\x42]\xc2HZ\nX\n\x0estring.uri_ref\x12#value must be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x99\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xfc\x01\xc2H\xf8\x01\n\x81\x01\n\x0estring.address\x12-value 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\xe2\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xaf\x02\xc2H\xab\x02\n\x93\x01\n\x1astring.ipv6_with_prefixlen\x12\x35value 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\xfc\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nl\n\x10string.ip_prefix\x12\x1fvalue must 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\x8f\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xeb\x01\xc2H\xe7\x01\nu\n\x12string.ipv4_prefix\x12!value must 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\xfb\x01\n\x04ulid\x18# \x01(\x08\x42\xe4\x01\xc2H\xe0\x01\n\x82\x01\n\x0bstring.ulid\x12\x1avalue must 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\xb8\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xf1\x04\xc2H\xed\x04\n\xf0\x01\n#string.well_known_regex.header_name\x12&value 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\xe7\x01\n$string.well_known_regex.header_value\x12\'value 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\"\xac\x13\n\nBytesRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42q\xc2Hn\nl\n\x0b\x62ytes.const\x1a]this != getField(rules, \'const\') ? \'value must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12}\n\x03len\x18\r \x01(\x04\x42k\xc2Hh\nf\n\tbytes.len\x1aYuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x98\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x7f\xc2H|\nz\n\rbytes.min_len\x1aiuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\rbytes.max_len\x1a\x61uint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x99\x01\n\x07pattern\x18\x04 \x01(\tB\x7f\xc2H|\nz\n\rbytes.pattern\x1ai!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x89\x01\n\x06prefix\x18\x05 \x01(\x0c\x42q\xc2Hn\nl\n\x0c\x62ytes.prefix\x1a\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x87\x01\n\x06suffix\x18\x06 \x01(\x0c\x42o\xc2Hl\nj\n\x0c\x62ytes.suffix\x1aZ!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x8d\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42q\xc2Hn\nl\n\x0e\x62ytes.contains\x1aZ!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xab\x01\n\x02in\x18\x08 \x03(\x0c\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\x08\x62ytes.in\x1a\x86\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\t \x03(\x0c\x42\x66\xc2Hc\na\n\x0c\x62ytes.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xef\x01\n\x02ip\x18\n \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nt\n\x08\x62ytes.ip\x12 value must 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\xea\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xd3\x01\xc2H\xcf\x01\ne\n\nbytes.ipv4\x12\"value must 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\xeb\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xd4\x01\xc2H\xd0\x01\nf\n\nbytes.ipv6\x12\"value must 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\xdb\x01\n\x04uuid\x18\x0f \x01(\x08\x42\xc4\x01\xc2H\xc0\x01\n^\n\nbytes.uuid\x12\x1avalue must 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\"\xfd\x03\n\tEnumRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42s\xc2Hp\nn\n\nenum.const\x1a`this != getField(rules, \'const\') ? \'value 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\x82\x01\n\x02in\x18\x03 \x03(\x05\x42r\xc2Ho\nm\n\x07\x65num.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12|\n\x06not_in\x18\x04 \x03(\x05\x42\x65\xc2Hb\n`\n\x0b\x65num.not_in\x1aQthis in rules.not_in ? \'value 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\"\x9e\x04\n\rRepeatedRules\x12\xa8\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x12repeated.min_items\x1amuint(this.size()) < rules.min_items ? \'value must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xac\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x12repeated.max_items\x1aquint(this.size()) > rules.max_items ? \'value 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\"\xc6\x17\n\rDurationRules\x12\xa8\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBw\xc2Ht\nr\n\x0e\x64uration.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xac\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x7f\xc2H|\nz\n\x0b\x64uration.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbf\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0c\x64uration.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xc5\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x97\x07\xc2H\x93\x07\n}\n\x0b\x64uration.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0e\x64uration.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18\x64uration.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0f\x64uration.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x92\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0c\x64uration.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0f\x64uration.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10\x64uration.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\xa1\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBv\xc2Hs\nq\n\x0b\x64uration.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x9b\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBi\xc2Hf\nd\n\x0f\x64uration.not_in\x1aQthis in rules.not_in ? \'value 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\"\x98\x06\n\x0e\x46ieldMaskRules\x12\xc6\x01\n\x05\x63onst\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x93\x01\xc2H\x8f\x01\n\x8c\x01\n\x10\x66ield_mask.const\x1axthis.paths != getField(rules, \'const\').paths ? \'value must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05\x63onst\x12\xdd\x01\n\x02in\x18\x02 \x03(\tB\xcc\x01\xc2H\xc8\x01\n\xc5\x01\n\rfield_mask.in\x1a\xb3\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'value must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xfa\x01\n\x06not_in\x18\x03 \x03(\tB\xe2\x01\xc2H\xde\x01\n\xdb\x01\n\x11\x66ield_mask.not_in\x1a\xc5\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'value 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\"\xca\x18\n\x0eTimestampRules\x12\xaa\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBx\xc2Hu\ns\n\x0ftimestamp.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xaf\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x80\x01\xc2H}\n{\n\x0ctimestamp.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xc1\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x90\x01\xc2H\x8c\x01\n\x89\x01\n\rtimestamp.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12s\n\x06lt_now\x18\x07 \x01(\x08\x42Z\xc2HW\nU\n\x10timestamp.lt_now\x1a\x41(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'H\x00R\x05ltNow\x12\xcb\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x9c\x07\xc2H\x98\x07\n~\n\x0ctimestamp.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb7\x01\n\x0ftimestamp.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x19timestamp.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x10timestamp.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcf\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x98\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xe7\x07\xc2H\xe3\x07\n\x8c\x01\n\rtimestamp.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc6\x01\n\x10timestamp.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x11timestamp.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xde\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12v\n\x06gt_now\x18\x08 \x01(\x08\x42]\xc2HZ\nX\n\x10timestamp.gt_now\x1a\x44(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xc0\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x8c\x01\xc2H\x88\x01\n\x85\x01\n\x10timestamp.within\x1aqthis < now-rules.within || this > now+rules.within ? \'value 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'\302Hq\no\n\013float.const\032`this != getField(rules, \'const\') ? \'value 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\214\001\n\211\001\n\010float.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value 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\233\001\n\230\001\n\tfloat.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value 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\334\007\n\215\001\n\010float.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\303\001\n\013float.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\025float.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\323\001\n\014float.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\335\001\n\026float.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value 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\246\010\n\233\001\n\tfloat.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\322\001\n\014float.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\026float.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\342\001\n\rfloat.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\354\001\n\027float.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value 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'\302Hp\nn\n\010float.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014float.not_in\032Qthis in rules.not_in ? \'value 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'\302Hb\n`\n\014float.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value 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'\302Hr\np\n\014double.const\032`this != getField(rules, \'const\') ? \'value 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\215\001\n\212\001\n\tdouble.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value 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\234\001\n\231\001\n\ndouble.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value 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\341\007\n\216\001\n\tdouble.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\304\001\n\014double.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\026double.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\324\001\n\rdouble.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\336\001\n\027double.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value 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\253\010\n\234\001\n\ndouble.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\323\001\n\rdouble.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\027double.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\343\001\n\016double.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\355\001\n\030double.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value 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'\302Hq\no\n\tdouble.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rdouble.not_in\032Qthis in rules.not_in ? \'value 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'\302Hc\na\n\rdouble.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value 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'\302Hq\no\n\013int32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hy\nw\n\010int32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\210\001\n\205\001\n\tint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\204\007\nz\n\010int32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\317\007\n\210\001\n\tint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hp\nn\n\010int32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014int32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hq\no\n\013int64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hy\nw\n\010int64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\204\007\nz\n\010int64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\317\007\n\210\001\n\tint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hp\nn\n\010int64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014int64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014uint32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tuint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nuint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tuint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tuint32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\ruint32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014uint64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tuint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nuint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tuint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tuint64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\ruint64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014sint32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tsint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nsint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tsint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tsint32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rsint32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014sint64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tsint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nsint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tsint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nsint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tsint64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rsint64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hs\nq\n\rfixed32.const\032`this != getField(rules, \'const\') ? \'value 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'\302H{\ny\n\nfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\212\001\n\207\001\n\013fixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\216\007\n|\n\nfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hr\np\n\nfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302He\nc\n\016fixed32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hs\nq\n\rfixed64.const\032`this != getField(rules, \'const\') ? \'value 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'\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\212\001\n\207\001\n\013fixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\216\007\n|\n\nfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\331\007\n\212\001\n\013fixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hr\np\n\nfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302He\nc\n\016fixed64.not_in\032Qthis in rules.not_in ? \'value 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'\302Ht\nr\n\016sfixed32.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013sfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014sfixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013sfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014sfixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013sfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017sfixed32.not_in\032Qthis in rules.not_in ? \'value 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'\302Ht\nr\n\016sfixed64.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013sfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014sfixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013sfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017sfixed64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hp\nn\n\nbool.const\032`this != getField(rules, \'const\') ? \'value 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'\302Ht\nr\n\014string.const\032bthis != getField(rules, \'const\') ? \'value 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'\302Hn\nl\n\nstring.len\032^uint(this.size()) != rules.len ? \'value length 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'\302H\203\001\n\200\001\n\016string.min_len\032nuint(this.size()) < rules.min_len ? \'value length 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'\302H\201\001\n\177\n\016string.max_len\032muint(this.size()) > rules.max_len ? \'value length 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'\302H\203\001\n\200\001\n\020string.len_bytes\032luint(bytes(this).size()) != rules.len_bytes ? \'value length 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\213\001\n\210\001\n\020string.min_bytes\032tuint(bytes(this).size()) < rules.min_bytes ? \'value length 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\212\001\n\207\001\n\020string.max_bytes\032suint(bytes(this).size()) > rules.max_bytes ? \'value length 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'\302Hy\nw\n\016string.pattern\032e!this.matches(rules.pattern) ? \'value 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'\302Hq\no\n\rstring.prefix\032^!this.startsWith(rules.prefix) ? \'value 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'\302Ho\nm\n\rstring.suffix\032\\!this.endsWith(rules.suffix) ? \'value 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'\302H{\ny\n\017string.contains\032f!this.contains(rules.contains) ? \'value 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'\302H~\n|\n\023string.not_contains\032ethis.contains(rules.not_contains) ? \'value 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'\302Hq\no\n\tstring.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rstring.not_in\032Qthis in rules.not_in ? \'value 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\311\001\na\n\014string.email\022#value must 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\316\001\ne\n\017string.hostname\022\036value must 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\264\001\nU\n\tstring.ip\022 value must 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\301\001\n\\\n\013string.ipv4\022\"value must 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\301\001\n\\\n\013string.ipv6\022\"value must 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\253\001\nQ\n\nstring.uri\022\031value must 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'\302HZ\nX\n\016string.uri_ref\022#value must 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\370\001\n\201\001\n\016string.address\022-value 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\253\002\n\223\001\n\032string.ipv6_with_prefixlen\0225value 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\330\001\nl\n\020string.ip_prefix\022\037value must 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\347\001\nu\n\022string.ipv4_prefix\022!value must 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\340\001\n\202\001\n\013string.ulid\022\032value must 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['well_known_regex']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\355\004\n\360\001\n#string.well_known_regex.header_name\022&value 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\347\001\n$string.well_known_regex.header_value\022\'value 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'\302Hn\nl\n\013bytes.const\032]this != getField(rules, \'const\') ? \'value 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'\302Hh\nf\n\tbytes.len\032Yuint(this.size()) != rules.len ? \'value length 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'\302H|\nz\n\rbytes.min_len\032iuint(this.size()) < rules.min_len ? \'value length 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'\302Ht\nr\n\rbytes.max_len\032auint(this.size()) > rules.max_len ? \'value 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'\302H|\nz\n\rbytes.pattern\032i!string(this).matches(rules.pattern) ? \'value 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'\302Hn\nl\n\014bytes.prefix\032\\!this.startsWith(rules.prefix) ? \'value 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'\302Hl\nj\n\014bytes.suffix\032Z!this.endsWith(rules.suffix) ? \'value 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'\302Hn\nl\n\016bytes.contains\032Z!this.contains(rules.contains) ? \'value 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\226\001\n\223\001\n\010bytes.in\032\206\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014bytes.not_in\032Qthis in rules.not_in ? \'value 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\330\001\nt\n\010bytes.ip\022 value must 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\317\001\ne\n\nbytes.ipv4\022\"value must 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\320\001\nf\n\nbytes.ipv6\022\"value must 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\300\001\n^\n\nbytes.uuid\022\032value must 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'\302Hp\nn\n\nenum.const\032`this != getField(rules, \'const\') ? \'value 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'\302Ho\nm\n\007enum.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hb\n`\n\013enum.not_in\032Qthis in rules.not_in ? \'value 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\206\001\n\203\001\n\022repeated.min_items\032muint(this.size()) < rules.min_items ? \'value 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\212\001\n\207\001\n\022repeated.max_items\032quint(this.size()) > rules.max_items ? \'value 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'\302Ht\nr\n\016duration.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013duration.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014duration.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013duration.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016duration.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031duration.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014duration.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020duration.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032duration.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013duration.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017duration.not_in\032Qthis in rules.not_in ? \'value 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\217\001\n\214\001\n\020field_mask.const\032xthis.paths != getField(rules, \'const\').paths ? \'value 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\310\001\n\305\001\n\rfield_mask.in\032\263\001!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'value 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\336\001\n\333\001\n\021field_mask.not_in\032\305\001!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'value 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'\302Hu\ns\n\017timestamp.const\032`this != getField(rules, \'const\') ? \'value 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'\302H}\n{\n\014timestamp.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\214\001\n\211\001\n\rtimestamp.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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'\302HW\nU\n\020timestamp.lt_now\032A(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\230\007\n~\n\014timestamp.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\031timestamp.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\317\001\n\032timestamp.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\343\007\n\214\001\n\rtimestamp.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\306\001\n\020timestamp.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\032timestamp.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\336\001\n\033timestamp.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302HZ\nX\n\020timestamp.gt_now\032D(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\210\001\n\205\001\n\020timestamp.within\032qthis < now-rules.within || this > now+rules.within ? \'value 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=55581 + _globals['_IGNORE']._serialized_end=55742 + _globals['_KNOWNREGEX']._serialized_start=55744 + _globals['_KNOWNREGEX']._serialized_end=55854 + _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=5101 + _globals['_DOUBLERULES']._serialized_start=5104 + _globals['_DOUBLERULES']._serialized_end=8210 + _globals['_INT32RULES']._serialized_start=8213 + _globals['_INT32RULES']._serialized_end=10959 + _globals['_INT64RULES']._serialized_start=10962 + _globals['_INT64RULES']._serialized_end=13708 + _globals['_UINT32RULES']._serialized_start=13711 + _globals['_UINT32RULES']._serialized_end=16474 + _globals['_UINT64RULES']._serialized_start=16477 + _globals['_UINT64RULES']._serialized_end=19240 + _globals['_SINT32RULES']._serialized_start=19243 + _globals['_SINT32RULES']._serialized_end=22006 + _globals['_SINT64RULES']._serialized_start=22009 + _globals['_SINT64RULES']._serialized_end=24772 + _globals['_FIXED32RULES']._serialized_start=24775 + _globals['_FIXED32RULES']._serialized_end=27555 + _globals['_FIXED64RULES']._serialized_start=27558 + _globals['_FIXED64RULES']._serialized_end=30338 + _globals['_SFIXED32RULES']._serialized_start=30341 + _globals['_SFIXED32RULES']._serialized_end=33139 + _globals['_SFIXED64RULES']._serialized_start=33142 + _globals['_SFIXED64RULES']._serialized_end=35940 + _globals['_BOOLRULES']._serialized_start=35943 + _globals['_BOOLRULES']._serialized_end=36158 + _globals['_STRINGRULES']._serialized_start=36161 + _globals['_STRINGRULES']._serialized_end=43792 + _globals['_BYTESRULES']._serialized_start=43795 + _globals['_BYTESRULES']._serialized_end=46271 + _globals['_ENUMRULES']._serialized_start=46274 + _globals['_ENUMRULES']._serialized_end=46783 + _globals['_REPEATEDRULES']._serialized_start=46786 + _globals['_REPEATEDRULES']._serialized_end=47328 + _globals['_MAPRULES']._serialized_start=47331 + _globals['_MAPRULES']._serialized_end=47759 + _globals['_ANYRULES']._serialized_start=47761 + _globals['_ANYRULES']._serialized_end=47810 + _globals['_DURATIONRULES']._serialized_start=47813 + _globals['_DURATIONRULES']._serialized_end=50827 + _globals['_FIELDMASKRULES']._serialized_start=50830 + _globals['_FIELDMASKRULES']._serialized_end=51622 + _globals['_TIMESTAMPRULES']._serialized_start=51625 + _globals['_TIMESTAMPRULES']._serialized_end=54771 + _globals['_VIOLATIONS']._serialized_start=54773 + _globals['_VIOLATIONS']._serialized_end=54842 + _globals['_VIOLATION']._serialized_start=54845 + _globals['_VIOLATION']._serialized_end=55042 + _globals['_FIELDPATH']._serialized_start=55044 + _globals['_FIELDPATH']._serialized_end=55115 + _globals['_FIELDPATHELEMENT']._serialized_start=55118 + _globals['_FIELDPATHELEMENT']._serialized_end=55578 +# @@protoc_insertion_point(module_scope) diff --git a/src/buf/validate/validate_pb2.pyi b/src/buf/validate/validate_pb2.pyi new file mode 100644 index 0000000..6b2091f --- /dev/null +++ b/src/buf/validate/validate_pb2.pyi @@ -0,0 +1,650 @@ +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", "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] + 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 + 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] = ..., 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/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py new file mode 100644 index 0000000..ccf9c72 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py @@ -0,0 +1,126 @@ +"""SAP Cloud SDK for Python - Audit Log NG (OTLP/gRPC) module + +Sends audit log events as OpenTelemetry LogRecords over gRPC. +Supports mTLS (client certificates) and insecure (no-auth) modes. + +The create_client() function accepts an AuditLogNGConfig and returns a +ready-to-use AuditClient. + +Usage: + from sap_cloud_sdk.core.auditlog_ng import create_client, AuditLogNGConfig + + config = AuditLogNGConfig( + endpoint="audit.example.com:443", + deployment_id="my-deployment", + namespace="namespace-123", + cert_file="client.pem", + key_file="client.key", + ) + client = create_client(config=config) + + # Send an audit event (protobuf message) + event_id = client.send(event, "DataAccess") + client.close() +""" + +from typing import Optional + +from sap_cloud_sdk.core.auditlog_ng.client import AuditClient +from sap_cloud_sdk.core.auditlog_ng.config import ( + AuditLogNGConfig, + SCHEMA_URL, + validate_source_arg, +) +from sap_cloud_sdk.core.auditlog_ng.exceptions import ( + AuditLogNGError, + ClientCreationError, + TransportError, + ValidationError, +) + + +def create_client( + *, + config: Optional[AuditLogNGConfig] = None, + endpoint: Optional[str] = None, + deployment_id: Optional[str] = None, + namespace: Optional[str] = None, + cert_file: Optional[str] = None, + key_file: Optional[str] = None, + ca_file: Optional[str] = None, + insecure: bool = False, + service_name: str = "audit-client", + batch: bool = False, + compression: bool = True, + schema_url: str = SCHEMA_URL, +) -> AuditClient: + """Create an AuditClient for sending audit events over OTLP/gRPC. + + Either pass a pre-built ``config`` **or** the individual keyword arguments. + When ``config`` is provided the remaining keyword arguments are ignored. + + Args: + config: Optional explicit configuration. If provided, all other + keyword arguments are ignored. + endpoint: OTLP gRPC endpoint (``host:port``). + deployment_id: Deployment identifier. + namespace: Namespace identifier. + cert_file: Path to client certificate (PEM) for mTLS. + key_file: Path to client private key (PEM) for mTLS. + ca_file: Path to CA certificate (PEM) for server verification. + insecure: Use insecure connection (no TLS). + service_name: OpenTelemetry ``service.name`` resource attribute. + batch: Use batch processing (better throughput, slight delay). + compression: Enable gzip compression. + schema_url: OpenTelemetry schema URL for the logger. + + Returns: + AuditClient: Configured client ready for audit operations. + + Raises: + ClientCreationError: If client creation fails. + ValueError: If required parameters are missing. + """ + try: + if config is None: + if not endpoint or not deployment_id or not namespace: + raise ValueError( + "endpoint, deployment_id, and namespace are required " + "when config is not provided" + ) + config = AuditLogNGConfig( + endpoint=endpoint, + deployment_id=deployment_id, + namespace=namespace, + cert_file=cert_file, + key_file=key_file, + ca_file=ca_file, + insecure=insecure, + service_name=service_name, + batch=batch, + compression=compression, + schema_url=schema_url, + ) + + return AuditClient(config) + + except (ValueError, ValidationError) as e: + raise e + except Exception as e: + raise ClientCreationError(f"Failed to create audit log NG client: {e}") from e + + +__all__ = [ + # Factory function + "create_client", + # Client + "AuditClient", + # Configuration + "AuditLogNGConfig", + "SCHEMA_URL", + # Exceptions + "AuditLogNGError", + "ClientCreationError", + "TransportError", + "ValidationError", +] diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py new file mode 100644 index 0000000..58cc3ac --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -0,0 +1,238 @@ +"""Audit Log OTLP Client. + +Sends audit log events as OpenTelemetry LogRecords over gRPC. +Supports mTLS (client certificates) and insecure (no-auth) modes. +""" + +import json +import uuid +from typing import Optional + +import protovalidate +from protovalidate import ValidationError as ProtoValidationError + +import grpc +from google.protobuf.message import Message +from google.protobuf.json_format import MessageToDict +from opentelemetry.sdk._logs import LoggerProvider +from opentelemetry.sdk._logs.export import ( + SimpleLogRecordProcessor, + BatchLogRecordProcessor, +) +from opentelemetry.sdk.resources import Resource +from opentelemetry.exporter.otlp.proto.grpc._log_exporter import OTLPLogExporter +from opentelemetry._logs.severity import SeverityNumber + +from sap_cloud_sdk.core.auditlog_ng.config import ( + AuditLogNGConfig, + validate_source_arg, +) +from sap_cloud_sdk.core.auditlog_ng.exceptions import ( + TransportError, + ValidationError, +) +from sap_cloud_sdk.core.telemetry import Module, Operation, record_metrics + + +class AuditClient: + """OTLP-based audit log client. + + Wraps protobuf audit events in OpenTelemetry LogRecords and sends + them over gRPC to an OTLP-compatible endpoint. + + Note: + Do not instantiate this class directly. Use the + :func:`~sap_cloud_sdk.core.auditlog_ng.create_client` factory function + instead, which handles proper configuration. + + Example:: + + from sap_cloud_sdk.core.auditlog_ng import create_client + + client = create_client(config=AuditLogNGConfig( + endpoint="audit.example.com:443", + deployment_id="my-deployment", + namespace="namespace-123", + cert_file="client.pem", + key_file="client.key", + )) + + event_id = client.send(event, "DataAccess") + client.close() + """ + + def __init__(self, config: AuditLogNGConfig, _telemetry_source: Optional[Module] = None) -> None: + """Initialize the audit client from a config object. + + Args: + config: Fully-validated :class:`AuditLogNGConfig`. + """ + self._config = config + self._telemetry_source = _telemetry_source + self._closed = False + + # Build gRPC credentials + credentials = self._build_credentials(config) + + # Create OTLP exporter + self._exporter = OTLPLogExporter( + endpoint=config.endpoint, + insecure=config.insecure, + credentials=credentials, + compression=( + grpc.Compression.Gzip + if config.compression + else grpc.Compression.NoCompression + ), + ) + + # Create logger provider + self._provider = LoggerProvider( + resource=Resource.create( + { + "service.name": config.service_name, + "sap.ucl.deployment_id": config.deployment_id, + "sap.ucl.system_namespace": config.namespace, + } + ) + ) + + # Add processor + processor = ( + BatchLogRecordProcessor(self._exporter) + if config.batch + else SimpleLogRecordProcessor(self._exporter) + ) + self._provider.add_log_record_processor(processor) + + self._logger = self._provider.get_logger( + "auditlog", + schema_url=config.schema_url, + ) + + # ------------------------------------------------------------------ + # Public API + # ------------------------------------------------------------------ + + def send( + self, + event: Message, + event_type: Optional[str] = None, + format: str = "protobuf-binary", + ) -> str: + """Send an audit log event. + + Args: + event: Protobuf message (audit event). + event_type: Event type name (defaults to message type name). + format: Serialization format (``"protobuf-binary"`` or ``"json"``). + + Returns: + Generated event ID (UUID). + + Raises: + RuntimeError: If the client has already been closed. + ValueError: If *format* is not a supported value. + ValidationError: If the protobuf event fails validation. + """ + if self._closed: + raise RuntimeError("Client is closed") + + if format not in {"protobuf-binary", "json"}: + raise ValueError("format must be 'protobuf-binary' or 'json'") + + try: + protovalidate.validate(event) + except ProtoValidationError as e: + raise ValidationError(f"Audit event validation failed: {e}") from e + + tenant_id = event.common.tenant_id + validate_source_arg(tenant_id, "tenant_id") + + event_id = str(uuid.uuid4()) + + # Determine event type from message descriptor if not provided + if event_type is None: + event_type = event.DESCRIPTOR.name + + event_type = f"sap.als.AuditEvent.{event_type}.v2" + + if format == "json": + mime_type = "application/json" + event_dict = MessageToDict(event, preserving_proto_field_name=False) + body = json.dumps(event_dict) + else: + mime_type = "application/protobuf" + body = event.SerializeToString() + + # Emit log record + self._logger.emit( + severity_number=SeverityNumber.INFO, + event_name=event_type, + body=body, + attributes={ + "cloudevents.event_id": event_id, + "sap.tenancy.tenant_id": tenant_id, + "sap.auditlogging.mime_type": mime_type, + }, + ) + + return event_id + + def send_json(self, event: Message, event_type: Optional[str] = None) -> str: + """Send event in JSON format.""" + return self.send(event, event_type, format="json") + + def flush(self) -> None: + """Flush pending events (for batch mode).""" + if not self._closed: + self._provider.force_flush() + + def close(self) -> None: + """Shutdown the client and flush pending events.""" + if not self._closed: + self._provider.shutdown() + self._closed = True + + # ------------------------------------------------------------------ + # Context manager + # ------------------------------------------------------------------ + + def __enter__(self) -> "AuditClient": + return self + + def __exit__(self, exc_type, exc_val, exc_tb) -> bool: + self.close() + return False + + # ------------------------------------------------------------------ + # Internal helpers + # ------------------------------------------------------------------ + + @staticmethod + def _build_credentials( + config: AuditLogNGConfig, + ) -> Optional[grpc.ChannelCredentials]: + """Build gRPC channel credentials from config.""" + if config.insecure: + return None + + root_certs = None + private_key = None + cert_chain = None + + if config.ca_file: + with open(config.ca_file, "rb") as f: + root_certs = f.read() + + if config.cert_file and config.key_file: + with open(config.key_file, "rb") as f: + private_key = f.read() + with open(config.cert_file, "rb") as f: + cert_chain = f.read() + + return grpc.ssl_channel_credentials( + root_certificates=root_certs, + private_key=private_key, + certificate_chain=cert_chain, + ) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/config.py b/src/sap_cloud_sdk/core/auditlog_ng/config.py new file mode 100644 index 0000000..cf21145 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/config.py @@ -0,0 +1,71 @@ +"""Configuration and validation for SAP Audit Log NG (OTLP/gRPC) Service. + +This module handles configuration dataclasses and input validation +for the OTLP-based audit log client. +""" + +import re +from dataclasses import dataclass +from typing import Optional + +SCHEMA_URL = "https://github.tools.sap/wg-observability/telemetry-semantic-conventions/blob/audit_event_catalog_v2.1.2/payload-specifications/audit-logging/sap/auditlog/auditevent/v2/auditevent.proto" + +_SOURCE_ARG_PATTERN = re.compile(r"[a-zA-Z0-9._/~-]+") + + +def validate_source_arg(value: str, name: str) -> None: + """Validate that *value* only contains characters in ``[a-zA-Z0-9._-/~]``. + + Args: + value: The string to validate. + name: Human-readable parameter name (used in the error message). + + Raises: + ValueError: If the value contains invalid characters. + """ + if not _SOURCE_ARG_PATTERN.fullmatch(value): + raise ValueError( + f"{name} must only contain characters from [a-zA-Z0-9._-/~]. " + f"Invalid value: {value}" + ) + + +@dataclass +class AuditLogNGConfig: + """Audit Log NG client configuration. + + Groups every knob accepted by :class:`AuditClient` so that callers can + build a configuration object independently of the client instantiation. + + Args: + endpoint: OTLP gRPC endpoint (``host:port``). + deployment_id: Deployment identifier (validated against allowed character set). + namespace: Namespace identifier (validated against allowed character set). + cert_file: Path to client certificate (PEM) for mTLS. + key_file: Path to client private key (PEM) for mTLS. + ca_file: Path to CA certificate (PEM) for server verification. + insecure: Use insecure connection (no TLS) — for local testing. + service_name: OpenTelemetry ``service.name`` resource attribute. + batch: Use batch processing (better throughput, slight delay). + compression: Enable gzip compression. + schema_url: OpenTelemetry schema URL for the logger. + """ + + endpoint: str + deployment_id: str + namespace: str + cert_file: Optional[str] = None + key_file: Optional[str] = None + ca_file: Optional[str] = None + insecure: bool = False + service_name: str = "audit-client" + batch: bool = False + compression: bool = True + schema_url: str = SCHEMA_URL + + def __post_init__(self) -> None: + """Validate required fields.""" + if not self.endpoint: + raise ValueError("endpoint is required") + validate_source_arg(self.deployment_id, "deployment_id") + validate_source_arg(self.namespace, "namespace") diff --git a/src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py b/src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py new file mode 100644 index 0000000..5bc12a6 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py @@ -0,0 +1,295 @@ +#!/usr/bin/env python3 +""" +Example: Send audit events to an OTLP endpoint. + +Demonstrates sending events in both binary protobuf and JSON formats. + +Prerequisites: + - Update ENDPOINT, DEPLOYMENT_ID, NAMESPACE, TENANT_ID, and certificate paths + - Ensure the OTLP endpoint is running and accessible + - source ./setup-python-environment.sh + - pip install -r requirements-client.txt + +Usage: + python3 example_send_event.py +""" + +import os +import sys +import base64 +import json +from datetime import datetime, timezone +from pathlib import Path + +# Ensure the project src/ directory is on sys.path so that +# `sap_cloud_sdk` can be imported when running this script directly +# (e.g. `python3 example_send_event.py` from the auditlog_ng folder). +_SRC_DIR = str(Path(__file__).resolve().parents[3]) # …/src +if _SRC_DIR not in sys.path: + sys.path.insert(0, _SRC_DIR) + +from google.protobuf.json_format import MessageToDict, MessageToJson + +from sap_cloud_sdk.core.auditlog_ng import create_client, AuditClient, AuditLogNGConfig + +# Import generated protobuf messages +from sap_cloud_sdk.core.auditlog_ng.gen.sap.auditlog.auditevent.v2 import auditevent_pb2 as pb + +# Configuration - update these for your environment +# Example: "your-region.als.services.cloud.sap:443" +ENDPOINT = "" + +# Use your actual deployment ID, namespace, and tenant ID for real testing +DEPLOYMENT_ID = "" +NAMESPACE = "" +TENANT_ID = "" + +# Paths to mTLS certificates (PEM format) +CERT_FILE = "" +KEY_FILE = "" + + +def print_otlp_debug(event, event_type: str, format_type: str = "protobuf-binary"): + """Print debug information about the OTLP event being sent.""" + import uuid + + print("\n" + "=" * 60) + print(f"OTLP EVENT DEBUG INFO ({format_type.upper()})") + print("=" * 60) + + # 1. Event as JSON (readable format) + print("\n[Proto Event as JSON]") + event_dict = MessageToDict(event, preserving_proto_field_name=False) + print(json.dumps(event_dict, indent=2)) + + # 2. Format-specific body representation + if format_type == "json": + # JSON format - show the JSON string that will be sent + json_body = MessageToJson(event, preserving_proto_field_name=False) + auditlog_mime_type = "application/json" + print("\n[OTLP LogRecord Body - JSON]") + print(" Type: string_value") + print(" Content:") + print(f" {json_body}") + else: + # Binary format - show serialized bytes + serialized = event.SerializeToString() + auditlog_mime_type = "application/protobuf" + print("\n[OTLP LogRecord Body - Binary]") + print(" Type: bytes_value") + print(f" Size: {len(serialized)} bytes") + print(f" Base64: {base64.b64encode(serialized).decode()}") + + #3. OTLP Resource attributes that will be set + print("\n[OTLP Resource Attributes]") + print(f" sap.ucl.deployment_id: {DEPLOYMENT_ID}") + print(f" sap.ucl.system_namespace: {NAMESPACE}") + + # 4. OTLP LogRecord attributes that will be set + event_id = str(uuid.uuid4()) + print("\n[OTLP LogRecord Attributes]") + print(f" event_name: {event_type}") + print(f" cloudevents.event_id: {event_id}") + print(f" sap.tenancy.tenant_id: {TENANT_ID}") + print(f" sap.auditlogging.mime_type: {auditlog_mime_type}") + + print("\n" + "=" * 60) + + +def create_sample_event(): + """Create a sample DataAccess event for testing.""" + event = pb.DataAccess() + + # Set common fields + event.common.timestamp.FromDatetime(datetime.now(timezone.utc)) + event.common.user_initiator_id = "demo-user@example.com" + event.common.tenant_id = TENANT_ID + event.common.app_id = "python-audit-sdk-sample" + + # Set event-specific fields + event.channel_type = "API" + event.channel_id = "rest-api-v1" + event.object_type = "customer-record" + event.object_id = "cust-12345" + event.attribute = "email" + + return event + + +def example_insecure(): + """Example: Insecure connection (local testing).""" + print("Example: Insecure connection (local testing)") + print("-" * 40) + + with create_client( + endpoint="localhost:4317", + deployment_id=DEPLOYMENT_ID, + namespace=NAMESPACE, + insecure=True, + ) as client: + event = create_sample_event() + + # Send in binary format + event_id = client.send(event, "DataAccess") + print(f" ✓ Sent (binary): {event_id}") + + # Send in JSON format + event_id = client.send_json(event, "DataAccess") + print(f" ✓ Sent (JSON): {event_id}") + + +def example_mtls_binary(): + """Example: mTLS connection with binary protobuf format.""" + print("\n" + "=" * 60) + print("Example: mTLS + Binary Protobuf Format") + print("=" * 60) + print(f"Endpoint: {ENDPOINT}") + print(f"Deployment ID: {DEPLOYMENT_ID}") + print(f"Namespace: {NAMESPACE}") + print(f"Tenant ID: {TENANT_ID}") + + # Check certificate files exist + print("\n[0] Checking certificate files...") + cert_exists = os.path.exists(CERT_FILE) + key_exists = os.path.exists(KEY_FILE) + + if cert_exists: + print(f" ✓ Cert file exists: {CERT_FILE}") + else: + print(f" ✗ Cert file NOT FOUND: {CERT_FILE}") + if key_exists: + print(f" ✓ Key file exists: {KEY_FILE}") + else: + print(f" ✗ Key file NOT FOUND: {KEY_FILE}") + + if not (cert_exists and key_exists): + print("\n ⚠️ Skipping mTLS example - certificates not found") + print(" Update CERT_FILE and KEY_FILE paths for your environment") + return None + + # 1. Create protobuf event + print("\n[1] Creating DataAccess event...") + event = create_sample_event() + + print(f" Event: {event.DESCRIPTOR.name}") + print(f" User: {event.common.user_initiator_id}") + print(f" Object: {event.object_type} ({event.object_id})") + + # Print OTLP debug info + print_otlp_debug(event, "DataAccess", format_type="protobuf-binary") + + # 2. Create client and send in BINARY format + print("\n[2] Sending via OTLP (Binary Protobuf)...") + client = create_client( + endpoint=ENDPOINT, + deployment_id=DEPLOYMENT_ID, + namespace=NAMESPACE, + cert_file=CERT_FILE, + key_file=KEY_FILE, + insecure=False, + ) + + try: + event_id = client.send(event, "DataAccess", format="protobuf-binary") + print(f" ✓ Sent (binary)! Event ID: {event_id}") + return event_id + except Exception as e: + print(f" ✗ Error: {e}") + return None + finally: + client.close() + + +def example_mtls_json(): + """Example: mTLS connection with JSON format.""" + print("\n" + "=" * 60) + print("Example: mTLS + JSON Format") + print("=" * 60) + print(f"Endpoint: {ENDPOINT}") + print(f"Deployment ID: {DEPLOYMENT_ID}") + print(f"Namespace: {NAMESPACE}") + print(f"Tenant ID: {TENANT_ID}") + + # Check certificate files exist + cert_exists = os.path.exists(CERT_FILE) + key_exists = os.path.exists(KEY_FILE) + + if not (cert_exists and key_exists): + print("\n ⚠️ Skipping - certificates not found") + return None + + # 1. Create protobuf event + print("\n[1] Creating DataAccess event...") + event = create_sample_event() + + print(f" Event: {event.DESCRIPTOR.name}") + print(f" User: {event.common.user_initiator_id}") + print(f" Object: {event.object_type} ({event.object_id})") + + # Print OTLP debug info for JSON + print_otlp_debug(event, "DataAccess", format_type="json") + + # 2. Create client and send in JSON format + print("\n[2] Sending via OTLP (JSON)...") + client = create_client( + endpoint=ENDPOINT, + deployment_id=DEPLOYMENT_ID, + namespace=NAMESPACE, + cert_file=CERT_FILE, + key_file=KEY_FILE, + insecure=False, + ) + + try: + event_id = client.send_json(event, "DataAccess") + print(f" ✓ Sent (JSON)! Event ID: {event_id}") + return event_id + except Exception as e: + print(f" ✗ Error: {e}") + return None + finally: + client.close() + + +def example_mtls(): + """Example: mTLS connection - both binary and JSON formats.""" + print("\n" + "=" * 60) + print("Example: mTLS connection (both formats)") + print("=" * 60) + + # Send in binary format + binary_id = example_mtls_binary() + + # Send in JSON format + json_id = example_mtls_json() + + # Summary + print("\n" + "=" * 60) + print("SUMMARY") + print("=" * 60) + if binary_id: + print(f" ✓ Binary event ID: {binary_id}") + else: + print(" ✗ Binary event: FAILED") + if json_id: + print(f" ✓ JSON event ID: {json_id}") + else: + print(" ✗ JSON event: FAILED") + + +def main(): + print("=" * 60) + print("Audit Log Client Examples") + print("=" * 60) + + # Run examples + # example_insecure() # Uncomment for local testing + example_mtls() + + print("\n" + "=" * 60) + print("✅ DONE!") + print("=" * 60) + + +if __name__ == "__main__": + main() diff --git a/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py b/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py new file mode 100644 index 0000000..0e72465 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py @@ -0,0 +1,25 @@ +"""Custom exceptions for SAP Audit Log NG (OTLP/gRPC) Service.""" + + +class AuditLogNGError(Exception): + """Base exception for audit log NG operations.""" + + pass + + +class ClientCreationError(AuditLogNGError): + """Raised when audit log NG client creation fails.""" + + pass + + +class TransportError(AuditLogNGError): + """Raised when gRPC transport operations fail.""" + + pass + + +class ValidationError(AuditLogNGError): + """Raised when audit event validation fails.""" + + pass diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py new file mode 100644 index 0000000..6b94e2b --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: protoc/gen/jsonschema/v1/options.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, + '', + 'protoc/gen/jsonschema/v1/options.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&protoc/gen/jsonschema/v1/options.proto\x12\x18protoc.gen.jsonschema.v1\x1a google/protobuf/descriptor.proto\"\x9a\x01\n\x0c\x46ieldOptions\x12\x16\n\x06ignore\x18\x01 \x01(\x08R\x06ignore\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\x12\x1d\n\nmin_length\x18\x03 \x01(\x05R\tminLength\x12\x1d\n\nmax_length\x18\x04 \x01(\x05R\tmaxLength\x12\x18\n\x07pattern\x18\x05 \x01(\tR\x07pattern:k\n\rfield_options\x12\x1d.google.protobuf.FieldOptions\x18\xe5\x08 \x01(\x0b\x32&.protoc.gen.jsonschema.v1.FieldOptionsR\x0c\x66ieldOptionsB*Z(github.com/chrusty/protoc-gen-jsonschemab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protoc.gen.jsonschema.v1.options_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z(github.com/chrusty/protoc-gen-jsonschema' + _globals['_FIELDOPTIONS']._serialized_start=103 + _globals['_FIELDOPTIONS']._serialized_end=257 +# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi new file mode 100644 index 0000000..8613731 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi @@ -0,0 +1,22 @@ +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor +FIELD_OPTIONS_FIELD_NUMBER: _ClassVar[int] +field_options: _descriptor.FieldDescriptor + +class FieldOptions(_message.Message): + __slots__ = ("ignore", "required", "min_length", "max_length", "pattern") + IGNORE_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + MIN_LENGTH_FIELD_NUMBER: _ClassVar[int] + MAX_LENGTH_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + ignore: bool + required: bool + min_length: int + max_length: int + pattern: str + def __init__(self, ignore: _Optional[bool] = ..., required: _Optional[bool] = ..., min_length: _Optional[int] = ..., max_length: _Optional[int] = ..., pattern: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py new file mode 100644 index 0000000..aa07901 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py @@ -0,0 +1,641 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: sap/auditlog/auditevent/v1/auditevent.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, + '', + 'sap/auditlog/auditevent/v1/auditevent.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from protoc.gen.jsonschema.v1 import options_pb2 as protoc_dot_gen_dot_jsonschema_dot_v1_dot_options__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v1/auditevent.proto\x12\x1asap.auditlog.auditevent.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&protoc/gen/jsonschema/v1/options.proto\"\xb8\x0e\n\x08Metadata\x12\x15\n\x02ts\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x02ts\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\x12U\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x34.sap.auditlog.auditevent.v1.Metadata.AppContextEntryR\nappContext\x12[\n\x0einfrastructure\x18\t \x01(\x0b\x32\x33.sap.auditlog.auditevent.v1.Metadata.InfrastructureR\x0einfrastructure\x12I\n\x08platform\x18\n \x01(\x0b\x32-.sap.auditlog.auditevent.v1.Metadata.PlatformR\x08platform\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\x1a\xc6\x05\n\x0eInfrastructure\x12R\n\x03k8s\x18\x01 \x01(\x0b\x32>.sap.auditlog.auditevent.v1.Metadata.Infrastructure.KubernetesH\x00R\x03k8s\x12R\n\x02\x63\x66\x18\x02 \x01(\x0b\x32@.sap.auditlog.auditevent.v1.Metadata.Infrastructure.CloudFoundryH\x00R\x02\x63\x66\x12Q\n\x05other\x18\x03 \x01(\x0b\x32\x39.sap.auditlog.auditevent.v1.Metadata.Infrastructure.OtherH\x00R\x05other\x12I\n\x03\x61pp\x18\x04 \x01(\x0b\x32\x37.sap.auditlog.auditevent.v1.Metadata.Infrastructure.AppR\x03\x61pp\x1a\x81\x01\n\nKubernetes\x12\x33\n\x15infrastructure_region\x18\x01 \x01(\tR\x14infrastructureRegion\x12\x18\n\x07\x63luster\x18\x02 \x01(\tR\x07\x63luster\x12\x12\n\x04node\x18\x03 \x01(\tR\x04node\x12\x10\n\x03pod\x18\x04 \x01(\tR\x03pod\x1au\n\x0c\x43loudFoundry\x12\x1c\n\tbtpregion\x18\x01 \x01(\tR\tbtpregion\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId\x12\x19\n\x08space_id\x18\x03 \x01(\tR\x07spaceId\x12\x15\n\x06\x61pp_id\x18\x04 \x01(\tR\x05\x61ppId\x1a*\n\x05Other\x12!\n\x0cruntime_type\x18\x01 \x01(\tR\x0bruntimeType\x1a\x35\n\x03\x41pp\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x18\n\x07version\x18\x02 \x01(\tR\x07versionB\x10\n\x07runtime\x12\x05\xbaH\x02\x08\x01\x1a\xa7\x04\n\x08Platform\x12\x45\n\x03\x62tp\x18\x01 \x01(\x0b\x32\x31.sap.auditlog.auditevent.v1.Metadata.Platform.BTPH\x00R\x03\x62tp\x12j\n\x10unified_services\x18\x02 \x01(\x0b\x32=.sap.auditlog.auditevent.v1.Metadata.Platform.UnifiedServicesH\x00R\x0funifiedServices\x12K\n\x05other\x18\x03 \x01(\x0b\x32\x33.sap.auditlog.auditevent.v1.Metadata.Platform.OtherH\x00R\x05other\x1aW\n\x03\x42TP\x12*\n\x11global_account_id\x18\x01 \x01(\tR\x0fglobalAccountId\x12$\n\x0esub_account_id\x18\x02 \x01(\tR\x0csubAccountId\x1a\x80\x01\n\x0fUnifiedServices\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12\x1f\n\x0b\x66older_path\x18\x02 \x01(\tR\nfolderPath\x12-\n\x12resourcegroup_path\x18\x03 \x01(\tR\x11resourcegroupPath\x1a,\n\x05Other\x12#\n\rplatform_name\x18\x01 \x01(\tR\x0cplatformNameB\x11\n\x08platform\x12\x05\xbaH\x02\x08\x01\"9\n\rAuditlogClear\x12(\n\x10number_of_events\x18\x01 \x01(\x05R\x0enumberOfEvents\"\x11\n\x0f\x41uditlogDisable\"\x10\n\x0e\x41uditlogEnable\"\xa8\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12*\n\tprivilege\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xab\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12*\n\tprivilege\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa5\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa8\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa5\x01\n\x17\x41uthnPrivilegeToUserAdd\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa8\x01\n\x1a\x41uthnPrivilegeToUserDelete\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"[\n\x13\x41uthnRoleToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\"^\n\x16\x41uthnRoleToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\"X\n\x12\x41uthnRoleToUserAdd\x12 \n\x04role\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"[\n\x15\x41uthnRoleToUserDelete\x12 \n\x04role\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"[\n\x13\x41uthnUserToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"^\n\x16\x41uthnUserToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"\xc1\x01\n\x10\x43onfigurationAdd\x12\x33\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x05value\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\x87\x02\n\x13\x43onfigurationChange\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\xc4\x01\n\x13\x43onfigurationDelete\x12\x33\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x05value\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\xa1\x01\n\x10\x43redentialCreate\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\"\xa1\x01\n\x10\x43redentialDelete\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\"\xea\x01\n\x14\x43redentialExpiration\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\xea\x01\n\x14\x43redentialRevokation\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\xe5\x01\n\x0f\x44\x61taModelChange\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\":\n\x0f\x44\x61taModelCreate\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\":\n\x0f\x44\x61taModelDelete\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\"\xf4\x02\n\nDataAccess\x12/\n\x0c\x63hannel_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x07 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x08 \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xc0\x01\n\nDataCreate\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xc0\x01\n\nDataDelete\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x82\x02\n\x10\x44\x61taModification\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xa7\x02\n\nDataExport\x12[\n\x0c\x63hannel_type\x18\x01 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v1.DataExportChannelTypeB\x05\xaa\x46\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12\x35\n\x0f\x64\x65stination_uri\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0e\x64\x65stinationUri\"\xe7\x03\n\rDppDataAccess\x12/\n\x0c\x63hannel_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12\x38\n\x11\x64\x61ta_subject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x06 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x07 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\t \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\n \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xb3\x02\n\rDppDataCreate\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xb3\x02\n\rDppDataDelete\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xf5\x02\n\x13\x44ppDataModification\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xdb\x01\n\tJobChange\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"0\n\tJobCreate\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\"0\n\tJobDelete\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\"\xe1\x01\n\x0fJobStatusChange\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"\xe6\x01\n\x18MaliciousRequestDetected\x12*\n\tparameter\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x02 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x03 \x01(\tR\rreceivedValue\x12P\n\x08\x62\x65havior\x18\x04 \x01(\x0e\x32-.sap.auditlog.auditevent.v1.MaliciousBehaviorB\x05\xaa\x46\x02\x10\x01R\x08\x62\x65havior\"7\n\x0ePasswordChange\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\";\n\x12PasswordExpiration\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"6\n\rPasswordReset\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xea\x01\n\x12TenantModification\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12)\n\ttenant_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\">\n\x11TenantOffboarding\x12)\n\ttenant_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\"=\n\x10TenantOnboarding\x12)\n\ttenant_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\"\x18\n\x16UnauthenticatedRequest\"\x15\n\x13UnauthorizedRequest\"5\n\x0cUserActivate\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"2\n\tUserBlock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserCreate\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xe8\x01\n\x14UserDataModification\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12%\n\x07user_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserDelete\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xe7\x02\n\x16UserImpersonationStart\x12\x38\n\x11user_initiator_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x02 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x11userInitiatorType\x12>\n\x14user_impersonated_id\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xe8\x02\n\x17UserImpersonationFinish\x12\x38\n\x11user_initiator_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x02 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x11userInitiatorType\x12>\n\x14user_impersonated_id\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"1\n\x08UserLock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserUnlock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserVerify\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xb3\x01\n\x10UserLoginFailure\x12W\n\x0e\x66\x61ilure_reason\x18\x01 \x01(\x0e\x32).sap.auditlog.auditevent.v1.FailureReasonB\x05\xaa\x46\x02\x10\x01R\rfailureReason\x12\x46\n\x06method\x18\x02 \x01(\x0e\x32\'.sap.auditlog.auditevent.v1.LoginMethodB\x05\xaa\x46\x02\x10\x01R\x06method\"\x86\x02\n\x10UserLoginSuccess\x12\x19\n\x08is_admin\x18\x01 \x01(\x08R\x07isAdmin\x12\x46\n\x06method\x18\x02 \x01(\x0e\x32\'.sap.auditlog.auditevent.v1.LoginMethodB\x05\xaa\x46\x02\x10\x01R\x06method\x12\x45\n\x08mfa_type\x18\x03 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.MfaTypeB\x05\xaa\x46\x02\x10\x01R\x07mfaType\x12H\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeB\x05\xaa\x46\x02\x10\x01R\x08userType\"\\\n\nUserLogoff\x12N\n\x0blogoff_type\x18\x01 \x01(\x0e\x32&.sap.auditlog.auditevent.v1.LogoffTypeB\x05\xaa\x46\x02\x10\x01R\nlogoffType\"G\n\x0eZzzCustomEvent\x12\x35\n\x06\x63ustom\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x06\x63ustom\"Q\n\rCMKOnboarding\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"R\n\x0e\x43MKOffboarding\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"y\n\tCMKSwitch\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12#\n\ncmk_id_old\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08\x63mkIdOld\x12#\n\ncmk_id_new\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08\x63mkIdNew\"\xa6\x01\n\x15\x43MKTenantModification\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12K\n\ncmk_action\x18\x03 \x01(\x0e\x32%.sap.auditlog.auditevent.v1.CMKActionB\x05\xaa\x46\x02\x10\x01R\tcmkAction\"T\n\tCMKCreate\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"T\n\tCMKDelete\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"U\n\nCMKRestore\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"U\n\nCMKDisable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"T\n\tCMKEnable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\")\n\tCMKRotate\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyCreate\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyDelete\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb3\x01\n\nKeyRestore\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb1\x01\n\x08KeyPurge\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyRotate\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyEnable\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb3\x01\n\nKeyDisable\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"Y\n\x0e\x43MKUnavailable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"W\n\x0c\x43MKAvailable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"x\n\tCMKDetach\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\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*\xad\x05\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*\x96\x04\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*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*s\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*`\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\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sap.auditlog.auditevent.v1.auditevent_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' + _globals['_METADATA_APPCONTEXTENTRY']._loaded_options = None + _globals['_METADATA_APPCONTEXTENTRY']._serialized_options = b'8\001' + _globals['_METADATA_INFRASTRUCTURE'].oneofs_by_name['runtime']._loaded_options = None + _globals['_METADATA_INFRASTRUCTURE'].oneofs_by_name['runtime']._serialized_options = b'\272H\002\010\001' + _globals['_METADATA_PLATFORM'].oneofs_by_name['platform']._loaded_options = None + _globals['_METADATA_PLATFORM'].oneofs_by_name['platform']._serialized_options = b'\272H\002\010\001' + _globals['_METADATA'].fields_by_name['ts']._loaded_options = None + _globals['_METADATA'].fields_by_name['ts']._serialized_options = b'\252F\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CONFIGURATIONADD'].fields_by_name['value']._loaded_options = None + _globals['_CONFIGURATIONADD'].fields_by_name['value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._loaded_options = None + _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CONFIGURATIONDELETE'].fields_by_name['value']._loaded_options = None + _globals['_CONFIGURATIONDELETE'].fields_by_name['value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._loaded_options = None + _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CREDENTIALCREATE'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALCREATE'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODELCREATE'].fields_by_name['model_id']._loaded_options = None + _globals['_DATAMODELCREATE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODELDELETE'].fields_by_name['model_id']._loaded_options = None + _globals['_DATAMODELDELETE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['channel_type']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['channel_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['object_type']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['object_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['attribute']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['object_type']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['object_id']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['attribute']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['object_type']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['object_id']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['attribute']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['channel_type']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['channel_id']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['object_type']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['object_id']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['destination_uri']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['destination_uri']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['data_subject_type']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBCREATE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBCREATE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBDELETE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBDELETE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._loaded_options = None + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._loaded_options = None + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._serialized_options = b'\252F\002\020\001' + _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._loaded_options = None + _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._loaded_options = None + _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_PASSWORDRESET'].fields_by_name['user_id']._loaded_options = None + _globals['_PASSWORDRESET'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._loaded_options = None + _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._loaded_options = None + _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERACTIVATE'].fields_by_name['user_id']._loaded_options = None + _globals['_USERACTIVATE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERBLOCK'].fields_by_name['user_id']._loaded_options = None + _globals['_USERBLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERCREATE'].fields_by_name['user_id']._loaded_options = None + _globals['_USERCREATE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERDELETE'].fields_by_name['user_id']._loaded_options = None + _globals['_USERDELETE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['user_initiator_id']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_initiator_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['user_id']._loaded_options = None + _globals['_USERLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERUNLOCK'].fields_by_name['user_id']._loaded_options = None + _globals['_USERUNLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERVERIFY'].fields_by_name['user_id']._loaded_options = None + _globals['_USERVERIFY'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINFAILURE'].fields_by_name['method']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['method']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['method']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['method']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGOFF'].fields_by_name['logoff_type']._loaded_options = None + _globals['_USERLOGOFF'].fields_by_name['logoff_type']._serialized_options = b'\252F\002\020\001' + _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._loaded_options = None + _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._serialized_options = b'\252F\002\020\001' + _globals['_CMKONBOARDING'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKSWITCH'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._serialized_options = b'\252F\002\020\001' + _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._serialized_options = b'\252F\002\020\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._serialized_options = b'\252F\002\020\001' + _globals['_CMKCREATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKCREATE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDELETE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDELETE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKRESTORE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDISABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKENABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKENABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKROTATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKROTATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDETACH'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDETACH'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDETACH'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALTYPE']._serialized_start=14182 + _globals['_CREDENTIALTYPE']._serialized_end=14322 + _globals['_FAILUREREASON']._serialized_start=14325 + _globals['_FAILUREREASON']._serialized_end=15010 + _globals['_LOGINMETHOD']._serialized_start=15013 + _globals['_LOGINMETHOD']._serialized_end=15547 + _globals['_LOGOFFTYPE']._serialized_start=15549 + _globals['_LOGOFFTYPE']._serialized_end=15639 + _globals['_MALICIOUSBEHAVIOR']._serialized_start=15642 + _globals['_MALICIOUSBEHAVIOR']._serialized_end=15874 + _globals['_MFATYPE']._serialized_start=15876 + _globals['_MFATYPE']._serialized_end=15991 + _globals['_USERTYPE']._serialized_start=15993 + _globals['_USERTYPE']._serialized_end=16089 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=16092 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=16275 + _globals['_EVENTCATEGORYCODE']._serialized_start=16278 + _globals['_EVENTCATEGORYCODE']._serialized_end=16454 + _globals['_CMKACTION']._serialized_start=16457 + _globals['_CMKACTION']._serialized_end=16677 + _globals['_KEYTYPE']._serialized_start=16679 + _globals['_KEYTYPE']._serialized_end=16794 + _globals['_METADATA']._serialized_start=208 + _globals['_METADATA']._serialized_end=2056 + _globals['_METADATA_APPCONTEXTENTRY']._serialized_start=728 + _globals['_METADATA_APPCONTEXTENTRY']._serialized_end=789 + _globals['_METADATA_INFRASTRUCTURE']._serialized_start=792 + _globals['_METADATA_INFRASTRUCTURE']._serialized_end=1502 + _globals['_METADATA_INFRASTRUCTURE_KUBERNETES']._serialized_start=1137 + _globals['_METADATA_INFRASTRUCTURE_KUBERNETES']._serialized_end=1266 + _globals['_METADATA_INFRASTRUCTURE_CLOUDFOUNDRY']._serialized_start=1268 + _globals['_METADATA_INFRASTRUCTURE_CLOUDFOUNDRY']._serialized_end=1385 + _globals['_METADATA_INFRASTRUCTURE_OTHER']._serialized_start=1387 + _globals['_METADATA_INFRASTRUCTURE_OTHER']._serialized_end=1429 + _globals['_METADATA_INFRASTRUCTURE_APP']._serialized_start=1431 + _globals['_METADATA_INFRASTRUCTURE_APP']._serialized_end=1484 + _globals['_METADATA_PLATFORM']._serialized_start=1505 + _globals['_METADATA_PLATFORM']._serialized_end=2056 + _globals['_METADATA_PLATFORM_BTP']._serialized_start=1773 + _globals['_METADATA_PLATFORM_BTP']._serialized_end=1860 + _globals['_METADATA_PLATFORM_UNIFIEDSERVICES']._serialized_start=1863 + _globals['_METADATA_PLATFORM_UNIFIEDSERVICES']._serialized_end=1991 + _globals['_METADATA_PLATFORM_OTHER']._serialized_start=1993 + _globals['_METADATA_PLATFORM_OTHER']._serialized_end=2037 + _globals['_AUDITLOGCLEAR']._serialized_start=2058 + _globals['_AUDITLOGCLEAR']._serialized_end=2115 + _globals['_AUDITLOGDISABLE']._serialized_start=2117 + _globals['_AUDITLOGDISABLE']._serialized_end=2134 + _globals['_AUDITLOGENABLE']._serialized_start=2136 + _globals['_AUDITLOGENABLE']._serialized_end=2152 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=2155 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=2323 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=2326 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=2497 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=2500 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=2665 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=2668 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=2836 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=2839 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=3004 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=3007 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=3175 + _globals['_AUTHNROLETOGROUPADD']._serialized_start=3177 + _globals['_AUTHNROLETOGROUPADD']._serialized_end=3268 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=3270 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=3364 + _globals['_AUTHNROLETOUSERADD']._serialized_start=3366 + _globals['_AUTHNROLETOUSERADD']._serialized_end=3454 + _globals['_AUTHNROLETOUSERDELETE']._serialized_start=3456 + _globals['_AUTHNROLETOUSERDELETE']._serialized_end=3547 + _globals['_AUTHNUSERTOGROUPADD']._serialized_start=3549 + _globals['_AUTHNUSERTOGROUPADD']._serialized_end=3640 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=3642 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=3736 + _globals['_CONFIGURATIONADD']._serialized_start=3739 + _globals['_CONFIGURATIONADD']._serialized_end=3932 + _globals['_CONFIGURATIONCHANGE']._serialized_start=3935 + _globals['_CONFIGURATIONCHANGE']._serialized_end=4198 + _globals['_CONFIGURATIONDELETE']._serialized_start=4201 + _globals['_CONFIGURATIONDELETE']._serialized_end=4397 + _globals['_CREDENTIALCREATE']._serialized_start=4400 + _globals['_CREDENTIALCREATE']._serialized_end=4561 + _globals['_CREDENTIALDELETE']._serialized_start=4564 + _globals['_CREDENTIALDELETE']._serialized_end=4725 + _globals['_CREDENTIALEXPIRATION']._serialized_start=4728 + _globals['_CREDENTIALEXPIRATION']._serialized_end=4962 + _globals['_CREDENTIALREVOKATION']._serialized_start=4965 + _globals['_CREDENTIALREVOKATION']._serialized_end=5199 + _globals['_DATAMODELCHANGE']._serialized_start=5202 + _globals['_DATAMODELCHANGE']._serialized_end=5431 + _globals['_DATAMODELCREATE']._serialized_start=5433 + _globals['_DATAMODELCREATE']._serialized_end=5491 + _globals['_DATAMODELDELETE']._serialized_start=5493 + _globals['_DATAMODELDELETE']._serialized_end=5551 + _globals['_DATAACCESS']._serialized_start=5554 + _globals['_DATAACCESS']._serialized_end=5926 + _globals['_DATACREATE']._serialized_start=5929 + _globals['_DATACREATE']._serialized_end=6121 + _globals['_DATADELETE']._serialized_start=6124 + _globals['_DATADELETE']._serialized_end=6316 + _globals['_DATAMODIFICATION']._serialized_start=6319 + _globals['_DATAMODIFICATION']._serialized_end=6577 + _globals['_DATAEXPORT']._serialized_start=6580 + _globals['_DATAEXPORT']._serialized_end=6875 + _globals['_DPPDATAACCESS']._serialized_start=6878 + _globals['_DPPDATAACCESS']._serialized_end=7365 + _globals['_DPPDATACREATE']._serialized_start=7368 + _globals['_DPPDATACREATE']._serialized_end=7675 + _globals['_DPPDATADELETE']._serialized_start=7678 + _globals['_DPPDATADELETE']._serialized_end=7985 + _globals['_DPPDATAMODIFICATION']._serialized_start=7988 + _globals['_DPPDATAMODIFICATION']._serialized_end=8361 + _globals['_JOBCHANGE']._serialized_start=8364 + _globals['_JOBCHANGE']._serialized_end=8583 + _globals['_JOBCREATE']._serialized_start=8585 + _globals['_JOBCREATE']._serialized_end=8633 + _globals['_JOBDELETE']._serialized_start=8635 + _globals['_JOBDELETE']._serialized_end=8683 + _globals['_JOBSTATUSCHANGE']._serialized_start=8686 + _globals['_JOBSTATUSCHANGE']._serialized_end=8911 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=8914 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=9144 + _globals['_PASSWORDCHANGE']._serialized_start=9146 + _globals['_PASSWORDCHANGE']._serialized_end=9201 + _globals['_PASSWORDEXPIRATION']._serialized_start=9203 + _globals['_PASSWORDEXPIRATION']._serialized_end=9262 + _globals['_PASSWORDRESET']._serialized_start=9264 + _globals['_PASSWORDRESET']._serialized_end=9318 + _globals['_TENANTMODIFICATION']._serialized_start=9321 + _globals['_TENANTMODIFICATION']._serialized_end=9555 + _globals['_TENANTOFFBOARDING']._serialized_start=9557 + _globals['_TENANTOFFBOARDING']._serialized_end=9619 + _globals['_TENANTONBOARDING']._serialized_start=9621 + _globals['_TENANTONBOARDING']._serialized_end=9682 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=9684 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=9708 + _globals['_UNAUTHORIZEDREQUEST']._serialized_start=9710 + _globals['_UNAUTHORIZEDREQUEST']._serialized_end=9731 + _globals['_USERACTIVATE']._serialized_start=9733 + _globals['_USERACTIVATE']._serialized_end=9786 + _globals['_USERBLOCK']._serialized_start=9788 + _globals['_USERBLOCK']._serialized_end=9838 + _globals['_USERCREATE']._serialized_start=9840 + _globals['_USERCREATE']._serialized_end=9891 + _globals['_USERDATAMODIFICATION']._serialized_start=9894 + _globals['_USERDATAMODIFICATION']._serialized_end=10126 + _globals['_USERDELETE']._serialized_start=10128 + _globals['_USERDELETE']._serialized_end=10179 + _globals['_USERIMPERSONATIONSTART']._serialized_start=10182 + _globals['_USERIMPERSONATIONSTART']._serialized_end=10541 + _globals['_USERIMPERSONATIONFINISH']._serialized_start=10544 + _globals['_USERIMPERSONATIONFINISH']._serialized_end=10904 + _globals['_USERLOCK']._serialized_start=10906 + _globals['_USERLOCK']._serialized_end=10955 + _globals['_USERUNLOCK']._serialized_start=10957 + _globals['_USERUNLOCK']._serialized_end=11008 + _globals['_USERVERIFY']._serialized_start=11010 + _globals['_USERVERIFY']._serialized_end=11061 + _globals['_USERLOGINFAILURE']._serialized_start=11064 + _globals['_USERLOGINFAILURE']._serialized_end=11243 + _globals['_USERLOGINSUCCESS']._serialized_start=11246 + _globals['_USERLOGINSUCCESS']._serialized_end=11508 + _globals['_USERLOGOFF']._serialized_start=11510 + _globals['_USERLOGOFF']._serialized_end=11602 + _globals['_ZZZCUSTOMEVENT']._serialized_start=11604 + _globals['_ZZZCUSTOMEVENT']._serialized_end=11675 + _globals['_CMKONBOARDING']._serialized_start=11677 + _globals['_CMKONBOARDING']._serialized_end=11758 + _globals['_CMKOFFBOARDING']._serialized_start=11760 + _globals['_CMKOFFBOARDING']._serialized_end=11842 + _globals['_CMKSWITCH']._serialized_start=11844 + _globals['_CMKSWITCH']._serialized_end=11965 + _globals['_CMKTENANTMODIFICATION']._serialized_start=11968 + _globals['_CMKTENANTMODIFICATION']._serialized_end=12134 + _globals['_CMKCREATE']._serialized_start=12136 + _globals['_CMKCREATE']._serialized_end=12220 + _globals['_CMKDELETE']._serialized_start=12222 + _globals['_CMKDELETE']._serialized_end=12306 + _globals['_CMKRESTORE']._serialized_start=12308 + _globals['_CMKRESTORE']._serialized_end=12393 + _globals['_CMKDISABLE']._serialized_start=12395 + _globals['_CMKDISABLE']._serialized_end=12480 + _globals['_CMKENABLE']._serialized_start=12482 + _globals['_CMKENABLE']._serialized_end=12566 + _globals['_CMKROTATE']._serialized_start=12568 + _globals['_CMKROTATE']._serialized_end=12609 + _globals['_KEYCREATE']._serialized_start=12612 + _globals['_KEYCREATE']._serialized_end=12790 + _globals['_KEYDELETE']._serialized_start=12793 + _globals['_KEYDELETE']._serialized_end=12971 + _globals['_KEYRESTORE']._serialized_start=12974 + _globals['_KEYRESTORE']._serialized_end=13153 + _globals['_KEYPURGE']._serialized_start=13156 + _globals['_KEYPURGE']._serialized_end=13333 + _globals['_KEYROTATE']._serialized_start=13336 + _globals['_KEYROTATE']._serialized_end=13514 + _globals['_KEYENABLE']._serialized_start=13517 + _globals['_KEYENABLE']._serialized_end=13695 + _globals['_KEYDISABLE']._serialized_start=13698 + _globals['_KEYDISABLE']._serialized_end=13877 + _globals['_CMKUNAVAILABLE']._serialized_start=13879 + _globals['_CMKUNAVAILABLE']._serialized_end=13968 + _globals['_CMKAVAILABLE']._serialized_start=13970 + _globals['_CMKAVAILABLE']._serialized_end=14057 + _globals['_CMKDETACH']._serialized_start=14059 + _globals['_CMKDETACH']._serialized_end=14179 +# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi new file mode 100644 index 0000000..00187ed --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi @@ -0,0 +1,1093 @@ +import datetime + +from buf.validate import validate_pb2 as _validate_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from protoc.gen.jsonschema.v1 import options_pb2 as _options_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +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 CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] + CREDENTIAL_TYPE_X509_CERTIFICATE: _ClassVar[CredentialType] + CREDENTIAL_TYPE_KEY: _ClassVar[CredentialType] + CREDENTIAL_TYPE_SECRET: _ClassVar[CredentialType] + +class FailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FAILURE_REASON_UNSPECIFIED: _ClassVar[FailureReason] + FAILURE_REASON_PASSWORD: _ClassVar[FailureReason] + FAILURE_REASON_MFA_FAILED: _ClassVar[FailureReason] + FAILURE_REASON_USER_NOT_FOUND: _ClassVar[FailureReason] + FAILURE_REASON_USER_LOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_BLOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_UNVERIFIED: _ClassVar[FailureReason] + FAILURE_REASON_USER_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_USER_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_INSECURE_CONNECTION: _ClassVar[FailureReason] + FAILURE_REASON_LOGIN_METHOD_DISABLED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_INVALID: _ClassVar[FailureReason] + +class LoginMethod(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGIN_METHOD_UNSPECIFIED: _ClassVar[LoginMethod] + LOGIN_METHOD_OPEN_ID_CONNECT: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML2: _ClassVar[LoginMethod] + LOGIN_METHOD_EXTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_SPNEGO: _ClassVar[LoginMethod] + LOGIN_METHOD_PASSWORD: _ClassVar[LoginMethod] + LOGIN_METHOD_RFC_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_SNC: _ClassVar[LoginMethod] + LOGIN_METHOD_LOGON_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_USER_SWITCH: _ClassVar[LoginMethod] + LOGIN_METHOD_X509_CERTIFICATE: _ClassVar[LoginMethod] + LOGIN_METHOD_APC_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_INTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_OAUTH2: _ClassVar[LoginMethod] + LOGIN_METHOD_REENTRANCE_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_HTTP_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_ASSERTION_TICKET: _ClassVar[LoginMethod] + +class LogoffType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGOFF_TYPE_UNSPECIFIED: _ClassVar[LogoffType] + LOGOFF_TYPE_REGULAR: _ClassVar[LogoffType] + LOGOFF_TYPE_FORCED: _ClassVar[LogoffType] + +class MaliciousBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MALICIOUS_BEHAVIOR_UNSPECIFIED: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: _ClassVar[MaliciousBehavior] + +class MfaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MFA_TYPE_UNSPECIFIED: _ClassVar[MfaType] + MFA_TYPE_NONE: _ClassVar[MfaType] + MFA_TYPE_RSA: _ClassVar[MfaType] + MFA_TYPE_TOTP: _ClassVar[MfaType] + MFA_TYPE_WEB_AUTHN: _ClassVar[MfaType] + +class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + USER_TYPE_UNSPECIFIED: _ClassVar[UserType] + USER_TYPE_BUSINESS_USER: _ClassVar[UserType] + USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] + +class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_PRINTER: _ClassVar[DataExportChannelType] + +class EventCategoryCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_IAM: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_CFG: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_DPP: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_RAL: _ClassVar[EventCategoryCode] + +class CMKAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CMK_ACTION_UNSPECIFIED: _ClassVar[CMKAction] + CMK_ACTION_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_BLOCK: _ClassVar[CMKAction] + CMK_ACTION_SHUTDOWN: _ClassVar[CMKAction] + CMK_ACTION_CSEKFALLBACK: _ClassVar[CMKAction] + CMK_ACTION_RESTORE: _ClassVar[CMKAction] + CMK_ACTION_KMS_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_KMS_OFFBOARD: _ClassVar[CMKAction] + +class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + KEY_TYPE_UNSPECIFIED: _ClassVar[KeyType] + KEY_TYPE_SYSTEM: _ClassVar[KeyType] + KEY_TYPE_SERVICE: _ClassVar[KeyType] + KEY_TYPE_DATA: _ClassVar[KeyType] + KEY_TYPE_KEK: _ClassVar[KeyType] +CREDENTIAL_TYPE_UNSPECIFIED: CredentialType +CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType +CREDENTIAL_TYPE_KEY: CredentialType +CREDENTIAL_TYPE_SECRET: CredentialType +FAILURE_REASON_UNSPECIFIED: FailureReason +FAILURE_REASON_PASSWORD: FailureReason +FAILURE_REASON_MFA_FAILED: FailureReason +FAILURE_REASON_USER_NOT_FOUND: FailureReason +FAILURE_REASON_USER_LOCKED: FailureReason +FAILURE_REASON_USER_BLOCKED: FailureReason +FAILURE_REASON_USER_UNVERIFIED: FailureReason +FAILURE_REASON_USER_EXPIRED: FailureReason +FAILURE_REASON_USER_INVALID: FailureReason +FAILURE_REASON_INSECURE_CONNECTION: FailureReason +FAILURE_REASON_LOGIN_METHOD_DISABLED: FailureReason +FAILURE_REASON_TOKEN_EXPIRED: FailureReason +FAILURE_REASON_TOKEN_REVOKED: FailureReason +FAILURE_REASON_TOKEN_INVALID: FailureReason +FAILURE_REASON_SESSION_EXPIRED: FailureReason +FAILURE_REASON_SESSION_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_EXPIRED: FailureReason +FAILURE_REASON_CERTIFICATE_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_INVALID: FailureReason +LOGIN_METHOD_UNSPECIFIED: LoginMethod +LOGIN_METHOD_OPEN_ID_CONNECT: LoginMethod +LOGIN_METHOD_SAML: LoginMethod +LOGIN_METHOD_SAML2: LoginMethod +LOGIN_METHOD_EXTERNAL: LoginMethod +LOGIN_METHOD_SPNEGO: LoginMethod +LOGIN_METHOD_PASSWORD: LoginMethod +LOGIN_METHOD_RFC_TICKET: LoginMethod +LOGIN_METHOD_SNC: LoginMethod +LOGIN_METHOD_LOGON_TICKET: LoginMethod +LOGIN_METHOD_USER_SWITCH: LoginMethod +LOGIN_METHOD_X509_CERTIFICATE: LoginMethod +LOGIN_METHOD_APC_SESSION: LoginMethod +LOGIN_METHOD_INTERNAL: LoginMethod +LOGIN_METHOD_OAUTH2: LoginMethod +LOGIN_METHOD_REENTRANCE_TICKET: LoginMethod +LOGIN_METHOD_HTTP_SESSION: LoginMethod +LOGIN_METHOD_ASSERTION_TICKET: LoginMethod +LOGOFF_TYPE_UNSPECIFIED: LogoffType +LOGOFF_TYPE_REGULAR: LogoffType +LOGOFF_TYPE_FORCED: LogoffType +MALICIOUS_BEHAVIOR_UNSPECIFIED: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: MaliciousBehavior +MFA_TYPE_UNSPECIFIED: MfaType +MFA_TYPE_NONE: MfaType +MFA_TYPE_RSA: MfaType +MFA_TYPE_TOTP: MfaType +MFA_TYPE_WEB_AUTHN: MfaType +USER_TYPE_UNSPECIFIED: UserType +USER_TYPE_BUSINESS_USER: UserType +USER_TYPE_TECHNICAL_USER: UserType +DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_PRINTER: DataExportChannelType +EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: EventCategoryCode +EVENT_CATEGORY_CODE_IAM: EventCategoryCode +EVENT_CATEGORY_CODE_CFG: EventCategoryCode +EVENT_CATEGORY_CODE_DPP: EventCategoryCode +EVENT_CATEGORY_CODE_RAL: EventCategoryCode +CMK_ACTION_UNSPECIFIED: CMKAction +CMK_ACTION_ONBOARD: CMKAction +CMK_ACTION_BLOCK: CMKAction +CMK_ACTION_SHUTDOWN: CMKAction +CMK_ACTION_CSEKFALLBACK: CMKAction +CMK_ACTION_RESTORE: CMKAction +CMK_ACTION_KMS_ONBOARD: CMKAction +CMK_ACTION_KMS_OFFBOARD: CMKAction +KEY_TYPE_UNSPECIFIED: KeyType +KEY_TYPE_SYSTEM: KeyType +KEY_TYPE_SERVICE: KeyType +KEY_TYPE_DATA: KeyType +KEY_TYPE_KEK: KeyType + +class Metadata(_message.Message): + __slots__ = ("ts", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context", "infrastructure", "platform") + class AppContextEntry(_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: ... + class Infrastructure(_message.Message): + __slots__ = ("k8s", "cf", "other", "app") + class Kubernetes(_message.Message): + __slots__ = ("infrastructure_region", "cluster", "node", "pod") + INFRASTRUCTURE_REGION_FIELD_NUMBER: _ClassVar[int] + CLUSTER_FIELD_NUMBER: _ClassVar[int] + NODE_FIELD_NUMBER: _ClassVar[int] + POD_FIELD_NUMBER: _ClassVar[int] + infrastructure_region: str + cluster: str + node: str + pod: str + def __init__(self, infrastructure_region: _Optional[str] = ..., cluster: _Optional[str] = ..., node: _Optional[str] = ..., pod: _Optional[str] = ...) -> None: ... + class CloudFoundry(_message.Message): + __slots__ = ("btpregion", "org_id", "space_id", "app_id") + BTPREGION_FIELD_NUMBER: _ClassVar[int] + ORG_ID_FIELD_NUMBER: _ClassVar[int] + SPACE_ID_FIELD_NUMBER: _ClassVar[int] + APP_ID_FIELD_NUMBER: _ClassVar[int] + btpregion: str + org_id: str + space_id: str + app_id: str + def __init__(self, btpregion: _Optional[str] = ..., org_id: _Optional[str] = ..., space_id: _Optional[str] = ..., app_id: _Optional[str] = ...) -> None: ... + class Other(_message.Message): + __slots__ = ("runtime_type",) + RUNTIME_TYPE_FIELD_NUMBER: _ClassVar[int] + runtime_type: str + def __init__(self, runtime_type: _Optional[str] = ...) -> None: ... + class App(_message.Message): + __slots__ = ("image", "version") + IMAGE_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + image: str + version: str + def __init__(self, image: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + K8S_FIELD_NUMBER: _ClassVar[int] + CF_FIELD_NUMBER: _ClassVar[int] + OTHER_FIELD_NUMBER: _ClassVar[int] + APP_FIELD_NUMBER: _ClassVar[int] + k8s: Metadata.Infrastructure.Kubernetes + cf: Metadata.Infrastructure.CloudFoundry + other: Metadata.Infrastructure.Other + app: Metadata.Infrastructure.App + def __init__(self, k8s: _Optional[_Union[Metadata.Infrastructure.Kubernetes, _Mapping]] = ..., cf: _Optional[_Union[Metadata.Infrastructure.CloudFoundry, _Mapping]] = ..., other: _Optional[_Union[Metadata.Infrastructure.Other, _Mapping]] = ..., app: _Optional[_Union[Metadata.Infrastructure.App, _Mapping]] = ...) -> None: ... + class Platform(_message.Message): + __slots__ = ("btp", "unified_services", "other") + class BTP(_message.Message): + __slots__ = ("global_account_id", "sub_account_id") + GLOBAL_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + SUB_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + global_account_id: str + sub_account_id: str + def __init__(self, global_account_id: _Optional[str] = ..., sub_account_id: _Optional[str] = ...) -> None: ... + class UnifiedServices(_message.Message): + __slots__ = ("account_id", "folder_path", "resourcegroup_path") + ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + FOLDER_PATH_FIELD_NUMBER: _ClassVar[int] + RESOURCEGROUP_PATH_FIELD_NUMBER: _ClassVar[int] + account_id: str + folder_path: str + resourcegroup_path: str + def __init__(self, account_id: _Optional[str] = ..., folder_path: _Optional[str] = ..., resourcegroup_path: _Optional[str] = ...) -> None: ... + class Other(_message.Message): + __slots__ = ("platform_name",) + PLATFORM_NAME_FIELD_NUMBER: _ClassVar[int] + platform_name: str + def __init__(self, platform_name: _Optional[str] = ...) -> None: ... + BTP_FIELD_NUMBER: _ClassVar[int] + UNIFIED_SERVICES_FIELD_NUMBER: _ClassVar[int] + OTHER_FIELD_NUMBER: _ClassVar[int] + btp: Metadata.Platform.BTP + unified_services: Metadata.Platform.UnifiedServices + other: Metadata.Platform.Other + def __init__(self, btp: _Optional[_Union[Metadata.Platform.BTP, _Mapping]] = ..., unified_services: _Optional[_Union[Metadata.Platform.UnifiedServices, _Mapping]] = ..., other: _Optional[_Union[Metadata.Platform.Other, _Mapping]] = ...) -> None: ... + TS_FIELD_NUMBER: _ClassVar[int] + SOURCE_IP_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] + APP_ID_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] + INFRASTRUCTURE_FIELD_NUMBER: _ClassVar[int] + PLATFORM_FIELD_NUMBER: _ClassVar[int] + ts: str + source_ip: _containers.RepeatedScalarFieldContainer[str] + user_impersonated_id: str + user_initiator_id: str + app_id: str + tenant_id: str + user_session_context_id: str + app_context: _containers.ScalarMap[str, str] + infrastructure: Metadata.Infrastructure + platform: Metadata.Platform + def __init__(self, ts: _Optional[str] = ..., 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]] = ..., infrastructure: _Optional[_Union[Metadata.Infrastructure, _Mapping]] = ..., platform: _Optional[_Union[Metadata.Platform, _Mapping]] = ...) -> None: ... + +class AuditlogClear(_message.Message): + __slots__ = ("number_of_events",) + NUMBER_OF_EVENTS_FIELD_NUMBER: _ClassVar[int] + number_of_events: int + def __init__(self, number_of_events: _Optional[int] = ...) -> None: ... + +class AuditlogDisable(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AuditlogEnable(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AuthnPrivilegeToGroupAdd(_message.Message): + __slots__ = ("group", "privilege", "object_type", "object_id") + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToGroupDelete(_message.Message): + __slots__ = ("group", "privilege", "object_type", "object_id") + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleAdd(_message.Message): + __slots__ = ("privilege", "role", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleDelete(_message.Message): + __slots__ = ("privilege", "role", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToUserAdd(_message.Message): + __slots__ = ("privilege", "user", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + user: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToUserDelete(_message.Message): + __slots__ = ("privilege", "user", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + user: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnRoleToGroupAdd(_message.Message): + __slots__ = ("group", "role") + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + group: str + role: str + def __init__(self, group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToGroupDelete(_message.Message): + __slots__ = ("group", "role") + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + group: str + role: str + def __init__(self, group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToUserAdd(_message.Message): + __slots__ = ("role", "user") + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + role: str + user: str + def __init__(self, role: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class AuthnRoleToUserDelete(_message.Message): + __slots__ = ("role", "user") + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + role: str + user: str + def __init__(self, role: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class AuthnUserToGroupAdd(_message.Message): + __slots__ = ("group", "user") + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + group: str + user: str + def __init__(self, group: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class AuthnUserToGroupDelete(_message.Message): + __slots__ = ("group", "user") + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + group: str + user: str + def __init__(self, group: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class ConfigurationAdd(_message.Message): + __slots__ = ("value", "property_name", "object_type", "object_id") + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationChange(_message.Message): + __slots__ = ("new_value", "old_value", "property_name", "object_type", "object_id") + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationDelete(_message.Message): + __slots__ = ("value", "property_name", "object_type", "object_id") + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class CredentialCreate(_message.Message): + __slots__ = ("credential_id", "credential_type") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialDelete(_message.Message): + __slots__ = ("credential_id", "credential_type") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialExpiration(_message.Message): + __slots__ = ("credential_id", "credential_type", "expiration_date") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_DATE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + expiration_date: _timestamp_pb2.Timestamp + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., expiration_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CredentialRevokation(_message.Message): + __slots__ = ("credential_id", "credential_type", "revokation_date") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + REVOKATION_DATE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + revokation_date: _timestamp_pb2.Timestamp + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., revokation_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class DataModelChange(_message.Message): + __slots__ = ("model_id", "new_value", "old_value", "property_name") + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + model_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, model_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class DataModelCreate(_message.Message): + __slots__ = ("model_id",) + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + model_id: str + def __init__(self, model_id: _Optional[str] = ...) -> None: ... + +class DataModelDelete(_message.Message): + __slots__ = ("model_id",) + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + model_id: str + def __init__(self, model_id: _Optional[str] = ...) -> None: ... + +class DataAccess(_message.Message): + __slots__ = ("channel_type", "channel_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + channel_type: str + channel_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DataCreate(_message.Message): + __slots__ = ("object_type", "object_id", "attribute", "value") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataDelete(_message.Message): + __slots__ = ("object_type", "object_id", "attribute", "value") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataModification(_message.Message): + __slots__ = ("object_type", "object_id", "attribute", "new_value", "old_value") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataExport(_message.Message): + __slots__ = ("channel_type", "channel_id", "object_type", "object_id", "destination_uri") + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + DESTINATION_URI_FIELD_NUMBER: _ClassVar[int] + channel_type: DataExportChannelType + channel_id: str + object_type: str + object_id: str + destination_uri: str + def __init__(self, channel_type: _Optional[_Union[DataExportChannelType, str]] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., destination_uri: _Optional[str] = ...) -> None: ... + +class DppDataAccess(_message.Message): + __slots__ = ("channel_type", "channel_id", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + channel_type: str + channel_id: str + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DppDataCreate(_message.Message): + __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataDelete(_message.Message): + __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataModification(_message.Message): + __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "new_value", "old_value") + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class JobChange(_message.Message): + __slots__ = ("job_id", "new_value", "old_value", "property_name") + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class JobCreate(_message.Message): + __slots__ = ("job_id",) + JOB_ID_FIELD_NUMBER: _ClassVar[int] + job_id: str + def __init__(self, job_id: _Optional[str] = ...) -> None: ... + +class JobDelete(_message.Message): + __slots__ = ("job_id",) + JOB_ID_FIELD_NUMBER: _ClassVar[int] + job_id: str + def __init__(self, job_id: _Optional[str] = ...) -> None: ... + +class JobStatusChange(_message.Message): + __slots__ = ("job_id", "new_value", "old_value", "property_name") + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class MaliciousRequestDetected(_message.Message): + __slots__ = ("parameter", "expected_value", "received_value", "behavior") + PARAMETER_FIELD_NUMBER: _ClassVar[int] + EXPECTED_VALUE_FIELD_NUMBER: _ClassVar[int] + RECEIVED_VALUE_FIELD_NUMBER: _ClassVar[int] + BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + parameter: str + expected_value: str + received_value: str + behavior: MaliciousBehavior + def __init__(self, parameter: _Optional[str] = ..., expected_value: _Optional[str] = ..., received_value: _Optional[str] = ..., behavior: _Optional[_Union[MaliciousBehavior, str]] = ...) -> None: ... + +class PasswordChange(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class PasswordExpiration(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class PasswordReset(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class TenantModification(_message.Message): + __slots__ = ("new_value", "old_value", "property_name", "tenant_id") + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + tenant_id: str + def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOffboarding(_message.Message): + __slots__ = ("tenant_id",) + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + tenant_id: str + def __init__(self, tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOnboarding(_message.Message): + __slots__ = ("tenant_id",) + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + tenant_id: str + def __init__(self, tenant_id: _Optional[str] = ...) -> None: ... + +class UnauthenticatedRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class UnauthorizedRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class UserActivate(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserBlock(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserCreate(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserDataModification(_message.Message): + __slots__ = ("new_value", "old_value", "property_name", "user_id") + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + user_id: str + def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ... + +class UserDelete(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserImpersonationStart(_message.Message): + __slots__ = ("user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + def __init__(self, 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] = ...) -> None: ... + +class UserImpersonationFinish(_message.Message): + __slots__ = ("user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + def __init__(self, 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] = ...) -> None: ... + +class UserLock(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserUnlock(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserVerify(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserLoginFailure(_message.Message): + __slots__ = ("failure_reason", "method") + FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + failure_reason: FailureReason + method: LoginMethod + def __init__(self, failure_reason: _Optional[_Union[FailureReason, str]] = ..., method: _Optional[_Union[LoginMethod, str]] = ...) -> None: ... + +class UserLoginSuccess(_message.Message): + __slots__ = ("is_admin", "method", "mfa_type", "user_type") + IS_ADMIN_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + MFA_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + is_admin: bool + method: LoginMethod + mfa_type: MfaType + user_type: UserType + def __init__(self, is_admin: _Optional[bool] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserLogoff(_message.Message): + __slots__ = ("logoff_type",) + LOGOFF_TYPE_FIELD_NUMBER: _ClassVar[int] + logoff_type: LogoffType + def __init__(self, logoff_type: _Optional[_Union[LogoffType, str]] = ...) -> None: ... + +class ZzzCustomEvent(_message.Message): + __slots__ = ("custom",) + CUSTOM_FIELD_NUMBER: _ClassVar[int] + custom: _struct_pb2.Value + def __init__(self, custom: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class CMKOnboarding(_message.Message): + __slots__ = ("system_id", "cmk_id") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id: str + def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKOffboarding(_message.Message): + __slots__ = ("system_id", "cmk_id") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id: str + def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKSwitch(_message.Message): + __slots__ = ("system_id", "cmk_id_old", "cmk_id_new") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_OLD_FIELD_NUMBER: _ClassVar[int] + CMK_ID_NEW_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id_old: str + cmk_id_new: str + def __init__(self, system_id: _Optional[str] = ..., cmk_id_old: _Optional[str] = ..., cmk_id_new: _Optional[str] = ...) -> None: ... + +class CMKTenantModification(_message.Message): + __slots__ = ("system_id", "cmk_id", "cmk_action") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ACTION_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id: str + cmk_action: CMKAction + def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ..., cmk_action: _Optional[_Union[CMKAction, str]] = ...) -> None: ... + +class CMKCreate(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDelete(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRestore(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDisable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKEnable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRotate(_message.Message): + __slots__ = ("cmk_id",) + CMK_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + def __init__(self, cmk_id: _Optional[str] = ...) -> None: ... + +class KeyCreate(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDelete(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRestore(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyPurge(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRotate(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyEnable(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDisable(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKUnavailable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKAvailable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDetach(_message.Message): + __slots__ = ("cmk_id", "kms_system_id", "system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ..., system_id: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py new file mode 100644 index 0000000..e69de29 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 new file mode 100644 index 0000000..c507436 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py @@ -0,0 +1,464 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: sap/auditlog/auditevent/v2/auditevent.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, + '', + 'sap/auditlog/auditevent/v2/auditevent.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +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') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sap.auditlog.auditevent.v2.auditevent_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' + _globals['_COMMON_APPCONTEXTENTRY']._loaded_options = None + _globals['_COMMON_APPCONTEXTENTRY']._serialized_options = b'8\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['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\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['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['_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['_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['_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['property_name']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\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_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['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['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_id']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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['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_id']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\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_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['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_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['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['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_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['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_id']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['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_id']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['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_id']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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['property_name']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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['property_name']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['tenant_id']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['_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['user_id']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['context']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\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_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['context']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\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['_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['_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 +# @@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 new file mode 100644 index 0000000..1e2322a --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi @@ -0,0 +1,1319 @@ +import datetime + +from buf.validate import validate_pb2 as _validate_pb2 +from google.protobuf import struct_pb2 as _struct_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 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 CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] + CREDENTIAL_TYPE_X509_CERTIFICATE: _ClassVar[CredentialType] + CREDENTIAL_TYPE_KEY: _ClassVar[CredentialType] + CREDENTIAL_TYPE_SECRET: _ClassVar[CredentialType] + +class FailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FAILURE_REASON_UNSPECIFIED: _ClassVar[FailureReason] + FAILURE_REASON_PASSWORD: _ClassVar[FailureReason] + FAILURE_REASON_MFA_FAILED: _ClassVar[FailureReason] + FAILURE_REASON_USER_NOT_FOUND: _ClassVar[FailureReason] + FAILURE_REASON_USER_LOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_BLOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_UNVERIFIED: _ClassVar[FailureReason] + FAILURE_REASON_USER_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_USER_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_INSECURE_CONNECTION: _ClassVar[FailureReason] + FAILURE_REASON_LOGIN_METHOD_DISABLED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_GEOBLOCK: _ClassVar[FailureReason] + FAILURE_REASON_MFA_REQUESTED: _ClassVar[FailureReason] + FAILURE_REASON_CRED_REQUESTED: _ClassVar[FailureReason] + +class LoginMethod(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGIN_METHOD_UNSPECIFIED: _ClassVar[LoginMethod] + LOGIN_METHOD_OPEN_ID_CONNECT: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML2: _ClassVar[LoginMethod] + LOGIN_METHOD_EXTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_SPNEGO: _ClassVar[LoginMethod] + LOGIN_METHOD_PASSWORD: _ClassVar[LoginMethod] + LOGIN_METHOD_RFC_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_SNC: _ClassVar[LoginMethod] + LOGIN_METHOD_LOGON_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_USER_SWITCH: _ClassVar[LoginMethod] + LOGIN_METHOD_X509_CERTIFICATE: _ClassVar[LoginMethod] + LOGIN_METHOD_APC_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_INTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_OAUTH2: _ClassVar[LoginMethod] + LOGIN_METHOD_REENTRANCE_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_HTTP_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_ASSERTION_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_REMCOOKIE: _ClassVar[LoginMethod] + LOGIN_METHOD_BIOMETRIC: _ClassVar[LoginMethod] + LOGIN_METHOD_PASSCODE: _ClassVar[LoginMethod] + LOGIN_METHOD_MOBSSO: _ClassVar[LoginMethod] + LOGIN_METHOD_EMAIL_TOKEN: _ClassVar[LoginMethod] + LOGIN_METHOD_BEARER_TOKEN: _ClassVar[LoginMethod] + +class LogoffType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGOFF_TYPE_UNSPECIFIED: _ClassVar[LogoffType] + LOGOFF_TYPE_REGULAR: _ClassVar[LogoffType] + LOGOFF_TYPE_FORCED: _ClassVar[LogoffType] + +class MaliciousBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MALICIOUS_BEHAVIOR_UNSPECIFIED: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: _ClassVar[MaliciousBehavior] + +class MfaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MFA_TYPE_UNSPECIFIED: _ClassVar[MfaType] + MFA_TYPE_NONE: _ClassVar[MfaType] + MFA_TYPE_RSA: _ClassVar[MfaType] + MFA_TYPE_TOTP: _ClassVar[MfaType] + MFA_TYPE_WEB_AUTHN: _ClassVar[MfaType] + MFA_TYPE_SMS: _ClassVar[MfaType] + MFA_TYPE_EMAIL: _ClassVar[MfaType] + +class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + USER_TYPE_UNSPECIFIED: _ClassVar[UserType] + USER_TYPE_BUSINESS_USER: _ClassVar[UserType] + USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] + +class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_PRINTER: _ClassVar[DataExportChannelType] + +class EventCategoryCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_IAM: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_CFG: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_DPP: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_RAL: _ClassVar[EventCategoryCode] + +class CMKAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CMK_ACTION_UNSPECIFIED: _ClassVar[CMKAction] + CMK_ACTION_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_BLOCK: _ClassVar[CMKAction] + CMK_ACTION_SHUTDOWN: _ClassVar[CMKAction] + CMK_ACTION_CSEKFALLBACK: _ClassVar[CMKAction] + CMK_ACTION_RESTORE: _ClassVar[CMKAction] + CMK_ACTION_KMS_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_KMS_OFFBOARD: _ClassVar[CMKAction] + +class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + KEY_TYPE_UNSPECIFIED: _ClassVar[KeyType] + KEY_TYPE_SYSTEM: _ClassVar[KeyType] + KEY_TYPE_SERVICE: _ClassVar[KeyType] + KEY_TYPE_DATA: _ClassVar[KeyType] + KEY_TYPE_KEK: _ClassVar[KeyType] + +class VirusChannel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + VIRUS_CHANNEL_UNSPECIFIED: _ClassVar[VirusChannel] + VIRUS_CHANNEL_UPLOAD: _ClassVar[VirusChannel] + VIRUS_CHANNEL_SCAN: _ClassVar[VirusChannel] + +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] +CREDENTIAL_TYPE_UNSPECIFIED: CredentialType +CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType +CREDENTIAL_TYPE_KEY: CredentialType +CREDENTIAL_TYPE_SECRET: CredentialType +FAILURE_REASON_UNSPECIFIED: FailureReason +FAILURE_REASON_PASSWORD: FailureReason +FAILURE_REASON_MFA_FAILED: FailureReason +FAILURE_REASON_USER_NOT_FOUND: FailureReason +FAILURE_REASON_USER_LOCKED: FailureReason +FAILURE_REASON_USER_BLOCKED: FailureReason +FAILURE_REASON_USER_UNVERIFIED: FailureReason +FAILURE_REASON_USER_EXPIRED: FailureReason +FAILURE_REASON_USER_INVALID: FailureReason +FAILURE_REASON_INSECURE_CONNECTION: FailureReason +FAILURE_REASON_LOGIN_METHOD_DISABLED: FailureReason +FAILURE_REASON_TOKEN_EXPIRED: FailureReason +FAILURE_REASON_TOKEN_REVOKED: FailureReason +FAILURE_REASON_TOKEN_INVALID: FailureReason +FAILURE_REASON_SESSION_EXPIRED: FailureReason +FAILURE_REASON_SESSION_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_EXPIRED: FailureReason +FAILURE_REASON_CERTIFICATE_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_INVALID: FailureReason +FAILURE_REASON_GEOBLOCK: FailureReason +FAILURE_REASON_MFA_REQUESTED: FailureReason +FAILURE_REASON_CRED_REQUESTED: FailureReason +LOGIN_METHOD_UNSPECIFIED: LoginMethod +LOGIN_METHOD_OPEN_ID_CONNECT: LoginMethod +LOGIN_METHOD_SAML: LoginMethod +LOGIN_METHOD_SAML2: LoginMethod +LOGIN_METHOD_EXTERNAL: LoginMethod +LOGIN_METHOD_SPNEGO: LoginMethod +LOGIN_METHOD_PASSWORD: LoginMethod +LOGIN_METHOD_RFC_TICKET: LoginMethod +LOGIN_METHOD_SNC: LoginMethod +LOGIN_METHOD_LOGON_TICKET: LoginMethod +LOGIN_METHOD_USER_SWITCH: LoginMethod +LOGIN_METHOD_X509_CERTIFICATE: LoginMethod +LOGIN_METHOD_APC_SESSION: LoginMethod +LOGIN_METHOD_INTERNAL: LoginMethod +LOGIN_METHOD_OAUTH2: LoginMethod +LOGIN_METHOD_REENTRANCE_TICKET: LoginMethod +LOGIN_METHOD_HTTP_SESSION: LoginMethod +LOGIN_METHOD_ASSERTION_TICKET: LoginMethod +LOGIN_METHOD_REMCOOKIE: LoginMethod +LOGIN_METHOD_BIOMETRIC: LoginMethod +LOGIN_METHOD_PASSCODE: LoginMethod +LOGIN_METHOD_MOBSSO: LoginMethod +LOGIN_METHOD_EMAIL_TOKEN: LoginMethod +LOGIN_METHOD_BEARER_TOKEN: LoginMethod +LOGOFF_TYPE_UNSPECIFIED: LogoffType +LOGOFF_TYPE_REGULAR: LogoffType +LOGOFF_TYPE_FORCED: LogoffType +MALICIOUS_BEHAVIOR_UNSPECIFIED: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: MaliciousBehavior +MFA_TYPE_UNSPECIFIED: MfaType +MFA_TYPE_NONE: MfaType +MFA_TYPE_RSA: MfaType +MFA_TYPE_TOTP: MfaType +MFA_TYPE_WEB_AUTHN: MfaType +MFA_TYPE_SMS: MfaType +MFA_TYPE_EMAIL: MfaType +USER_TYPE_UNSPECIFIED: UserType +USER_TYPE_BUSINESS_USER: UserType +USER_TYPE_TECHNICAL_USER: UserType +DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_PRINTER: DataExportChannelType +EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: EventCategoryCode +EVENT_CATEGORY_CODE_IAM: EventCategoryCode +EVENT_CATEGORY_CODE_CFG: EventCategoryCode +EVENT_CATEGORY_CODE_DPP: EventCategoryCode +EVENT_CATEGORY_CODE_RAL: EventCategoryCode +CMK_ACTION_UNSPECIFIED: CMKAction +CMK_ACTION_ONBOARD: CMKAction +CMK_ACTION_BLOCK: CMKAction +CMK_ACTION_SHUTDOWN: CMKAction +CMK_ACTION_CSEKFALLBACK: CMKAction +CMK_ACTION_RESTORE: CMKAction +CMK_ACTION_KMS_ONBOARD: CMKAction +CMK_ACTION_KMS_OFFBOARD: CMKAction +KEY_TYPE_UNSPECIFIED: KeyType +KEY_TYPE_SYSTEM: KeyType +KEY_TYPE_SERVICE: KeyType +KEY_TYPE_DATA: KeyType +KEY_TYPE_KEK: KeyType +VIRUS_CHANNEL_UNSPECIFIED: VirusChannel +VIRUS_CHANNEL_UPLOAD: VirusChannel +VIRUS_CHANNEL_SCAN: VirusChannel +LOGIN_PROTOCOL_UNSPECIFIED: LoginProtocol +LOGIN_PROTOCOL_SAML2: LoginProtocol +LOGIN_PROTOCOL_OIDC: LoginProtocol +LOGIN_PROTOCOL_HTTP: LoginProtocol + +class Common(_message.Message): + __slots__ = ("timestamp", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context") + class AppContextEntry(_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: ... + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + SOURCE_IP_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] + APP_ID_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + source_ip: _containers.RepeatedScalarFieldContainer[str] + user_impersonated_id: str + user_initiator_id: str + app_id: str + 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: ... + +class AuditlogClear(_message.Message): + __slots__ = ("common", "number_of_events") + COMMON_FIELD_NUMBER: _ClassVar[int] + NUMBER_OF_EVENTS_FIELD_NUMBER: _ClassVar[int] + common: Common + number_of_events: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., number_of_events: _Optional[int] = ...) -> None: ... + +class AuditlogDisable(_message.Message): + __slots__ = ("common",) + COMMON_FIELD_NUMBER: _ClassVar[int] + common: Common + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... + +class AuditlogEnable(_message.Message): + __slots__ = ("common",) + COMMON_FIELD_NUMBER: _ClassVar[int] + common: Common + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... + +class AuthnPrivilegeToGroupAdd(_message.Message): + __slots__ = ("common", "group", "privilege", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToGroupDelete(_message.Message): + __slots__ = ("common", "group", "privilege", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleAdd(_message.Message): + __slots__ = ("common", "privilege", "role", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleDelete(_message.Message): + __slots__ = ("common", "privilege", "role", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToUserAdd(_message.Message): + __slots__ = ("common", "privilege", "user", "object_type", "object_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + user: str + object_type: str + object_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnPrivilegeToUserDelete(_message.Message): + __slots__ = ("common", "privilege", "user", "object_type", "object_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + user: str + object_type: str + object_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnRoleToGroupAdd(_message.Message): + __slots__ = ("common", "group", "role") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + role: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToGroupDelete(_message.Message): + __slots__ = ("common", "group", "role") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + role: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToUserAdd(_message.Message): + __slots__ = ("common", "role", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + role: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., role: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnRoleToUserDelete(_message.Message): + __slots__ = ("common", "role", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + role: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., role: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnUserToGroupAdd(_message.Message): + __slots__ = ("common", "group", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnUserToGroupDelete(_message.Message): + __slots__ = ("common", "group", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class ConfigurationAdd(_message.Message): + __slots__ = ("common", "value", "property_name", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationChange(_message.Message): + __slots__ = ("common", "new_value", "old_value", "property_name", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationDelete(_message.Message): + __slots__ = ("common", "value", "property_name", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class CredentialCreate(_message.Message): + __slots__ = ("common", "credential_id", "credential_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialDelete(_message.Message): + __slots__ = ("common", "credential_id", "credential_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialExpiration(_message.Message): + __slots__ = ("common", "credential_id", "credential_type", "expiration_date") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_DATE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + expiration_date: _timestamp_pb2.Timestamp + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., expiration_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CredentialRevokation(_message.Message): + __slots__ = ("common", "credential_id", "credential_type", "revokation_date") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + REVOKATION_DATE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + revokation_date: _timestamp_pb2.Timestamp + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., revokation_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class DataModelChange(_message.Message): + __slots__ = ("common", "model_id", "new_value", "old_value", "property_name") + COMMON_FIELD_NUMBER: _ClassVar[int] + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + common: Common + model_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class DataModelCreate(_message.Message): + __slots__ = ("common", "model_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + model_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ...) -> None: ... + +class DataModelDelete(_message.Message): + __slots__ = ("common", "model_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + model_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ...) -> None: ... + +class DataAccess(_message.Message): + __slots__ = ("common", "channel_type", "channel_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + channel_type: str + channel_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DataCreate(_message.Message): + __slots__ = ("common", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataDelete(_message.Message): + __slots__ = ("common", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataModification(_message.Message): + __slots__ = ("common", "object_type", "object_id", "attribute", "new_value", "old_value") + COMMON_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataExport(_message.Message): + __slots__ = ("common", "channel_type", "channel_id", "object_type", "object_id", "destination_uri") + COMMON_FIELD_NUMBER: _ClassVar[int] + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + DESTINATION_URI_FIELD_NUMBER: _ClassVar[int] + common: Common + channel_type: DataExportChannelType + channel_id: str + object_type: str + object_id: str + destination_uri: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[_Union[DataExportChannelType, str]] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., destination_uri: _Optional[str] = ...) -> None: ... + +class DppDataAccess(_message.Message): + __slots__ = ("common", "channel_type", "channel_id", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + channel_type: str + channel_id: str + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DppDataCreate(_message.Message): + __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataDelete(_message.Message): + __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataModification(_message.Message): + __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "new_value", "old_value") + COMMON_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class JobChange(_message.Message): + __slots__ = ("common", "job_id", "new_value", "old_value", "property_name") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class JobCreate(_message.Message): + __slots__ = ("common", "job_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ...) -> None: ... + +class JobDelete(_message.Message): + __slots__ = ("common", "job_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ...) -> None: ... + +class JobStatusChange(_message.Message): + __slots__ = ("common", "job_id", "new_value", "old_value", "property_name") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class MaliciousRequestDetected(_message.Message): + __slots__ = ("common", "parameter", "expected_value", "received_value", "behavior") + COMMON_FIELD_NUMBER: _ClassVar[int] + PARAMETER_FIELD_NUMBER: _ClassVar[int] + EXPECTED_VALUE_FIELD_NUMBER: _ClassVar[int] + RECEIVED_VALUE_FIELD_NUMBER: _ClassVar[int] + BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + common: Common + parameter: str + expected_value: str + received_value: str + behavior: MaliciousBehavior + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., parameter: _Optional[str] = ..., expected_value: _Optional[str] = ..., received_value: _Optional[str] = ..., behavior: _Optional[_Union[MaliciousBehavior, str]] = ...) -> None: ... + +class PasswordChange(_message.Message): + __slots__ = ("common", "user_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... + +class PasswordExpiration(_message.Message): + __slots__ = ("common", "user_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... + +class PasswordReset(_message.Message): + __slots__ = ("common", "user_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... + +class TenantModification(_message.Message): + __slots__ = ("common", "new_value", "old_value", "property_name", "tenant_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + tenant_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOffboarding(_message.Message): + __slots__ = ("common", "tenant_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + tenant_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOnboarding(_message.Message): + __slots__ = ("common", "tenant_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + tenant_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class UnauthenticatedRequest(_message.Message): + __slots__ = ("common",) + COMMON_FIELD_NUMBER: _ClassVar[int] + common: Common + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... + +class UnauthorizedRequest(_message.Message): + __slots__ = ("common", "unauthorized_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + UNAUTHORIZED_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + unauthorized_type: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., unauthorized_type: _Optional[str] = ...) -> None: ... + +class UserActivate(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserBlock(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserCreate(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserDataModification(_message.Message): + __slots__ = ("common", "new_value", "old_value", "property_name", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserDelete(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserImpersonationStart(_message.Message): + __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + common: Common + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + 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] = ...) -> None: ... + +class UserImpersonationFinish(_message.Message): + __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + common: Common + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + 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] = ...) -> None: ... + +class UserLock(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserUnlock(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserVerify(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserLoginFailure(_message.Message): + __slots__ = ("common", "failure_reason", "method", "is_admin", "mfa_type", "user_type", "login_protocol") + COMMON_FIELD_NUMBER: _ClassVar[int] + FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + IS_ADMIN_FIELD_NUMBER: _ClassVar[int] + MFA_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + common: Common + failure_reason: FailureReason + method: LoginMethod + is_admin: bool + mfa_type: MfaType + user_type: UserType + login_protocol: LoginProtocol + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., failure_reason: _Optional[_Union[FailureReason, str]] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., is_admin: _Optional[bool] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... + +class UserLoginSuccess(_message.Message): + __slots__ = ("common", "is_admin", "method", "mfa_type", "user_type", "login_protocol") + COMMON_FIELD_NUMBER: _ClassVar[int] + IS_ADMIN_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + MFA_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + common: Common + is_admin: bool + method: LoginMethod + mfa_type: MfaType + user_type: UserType + login_protocol: LoginProtocol + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., is_admin: _Optional[bool] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... + +class UserLogoff(_message.Message): + __slots__ = ("common", "logoff_type", "login_protocol") + COMMON_FIELD_NUMBER: _ClassVar[int] + LOGOFF_TYPE_FIELD_NUMBER: _ClassVar[int] + LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + common: Common + logoff_type: LogoffType + login_protocol: LoginProtocol + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., logoff_type: _Optional[_Union[LogoffType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... + +class ZzzCustomEvent(_message.Message): + __slots__ = ("common", "custom") + COMMON_FIELD_NUMBER: _ClassVar[int] + CUSTOM_FIELD_NUMBER: _ClassVar[int] + common: Common + custom: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., custom: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class CMKOnboarding(_message.Message): + __slots__ = ("common", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKOffboarding(_message.Message): + __slots__ = ("common", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKSwitch(_message.Message): + __slots__ = ("common", "system_id", "cmk_id_old", "cmk_id_new") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_OLD_FIELD_NUMBER: _ClassVar[int] + CMK_ID_NEW_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id_old: str + cmk_id_new: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id_old: _Optional[str] = ..., cmk_id_new: _Optional[str] = ...) -> None: ... + +class CMKTenantModification(_message.Message): + __slots__ = ("common", "system_id", "cmk_id", "cmk_action") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ACTION_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id: str + cmk_action: CMKAction + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ..., cmk_action: _Optional[_Union[CMKAction, str]] = ...) -> None: ... + +class CMKCreate(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDelete(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRestore(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDisable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKEnable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRotate(_message.Message): + __slots__ = ("common", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyCreate(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDelete(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRestore(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyPurge(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRotate(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyEnable(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDisable(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeySuspend(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyOnboardKeyChain(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKDrop(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKSuspend(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class VirusFinding(_message.Message): + __slots__ = ("common", "virus_name", "file_name", "virus_channel") + COMMON_FIELD_NUMBER: _ClassVar[int] + VIRUS_NAME_FIELD_NUMBER: _ClassVar[int] + FILE_NAME_FIELD_NUMBER: _ClassVar[int] + VIRUS_CHANNEL_FIELD_NUMBER: _ClassVar[int] + common: Common + virus_name: str + file_name: str + virus_channel: VirusChannel + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., virus_name: _Optional[str] = ..., file_name: _Optional[str] = ..., virus_channel: _Optional[_Union[VirusChannel, str]] = ...) -> None: ... + +class CMKUnavailable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKAvailable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDetach(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id", "system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + 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: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt b/src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt new file mode 100644 index 0000000..0fee74e --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt @@ -0,0 +1,8 @@ +# Dependencies for audit client +# Install: pip install -r requirements-client.txt +grpcio>=1.60.0 +protobuf>=4.25.0 +protovalidate>=0.13.0 +opentelemetry-api>=1.28.0 +opentelemetry-sdk>=1.28.0 +opentelemetry-exporter-otlp-proto-grpc>=1.28.0 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh b/src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh new file mode 100755 index 0000000..930f947 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +echo "Setting up python environment" +echo "-----------------------------" +# +echo "(1) Setting up virtual environment" +python3 -m venv venv +echo "... done." +# +echo "(2) Activating virtual environment" +source ./venv/bin/activate +echo "... done." +# +echo "(3) Downloading dependencies" +pip install -r requirements-client.txt --extra-index-url https://buf.build/gen/python +echo "... done." \ No newline at end of file diff --git a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md new file mode 100644 index 0000000..8f5c5c7 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md @@ -0,0 +1,246 @@ +# Using the `auditlog_ng` Client in an Agent + +This guide explains how to integrate the SAP Audit Log OTLP client [`audit_client.py`](audit_client.py) into a Python-based agent. + +--- + +## Overview + +The [`audit_client.py`](audit_client.py) client sends audit log events as OpenTelemetry (OTLP) LogRecords over gRPC to the SAP Audit Log Service. It supports: + +- **mTLS** (mutual TLS with client certificates) +- **Insecure** mode (local testing / no-auth) +- **Binary protobuf** and **JSON** serialization formats + +--- + +## Prerequisites + +### 1. Required Dependencies + +Contents of [`requirements-client.txt`](requirements-client.txt): + +``` +grpcio>=1.60.0 +protobuf>=4.25.0 +protovalidate>=0.13.0 +opentelemetry-api>=1.28.0 +opentelemetry-sdk>=1.28.0 +opentelemetry-exporter-otlp-proto-grpc>=1.28.0 +``` + +### 2. Generated Protobuf Code + +The client depends on generated protobuf classes. + +--- + +## Configuration + +All constructor parameters for `AuditClient`: + +| Parameter | Type | Required | Default | Description | +|-----------------|---------|----------|----------------|-------------------------------------------------------------------------------------------------------| +| `endpoint` | `str` | ✅ Yes | — | OTLP gRPC endpoint of the Audit Log Service (`host:port`) | +| `deployment_id` | `str` | ✅ Yes | — | Deployment/region identifier. Validated: only `[a-zA-Z0-9._-/~]` allowed. Raises `ValueError` if invalid. | +| `namespace` | `str` | ✅ Yes | — | Audit log namespace (e.g. `sap.als`). Same character-set validation as `deployment_id`. | +| `cert_file` | `str` | ❌ No | `None` | Path to the mTLS client certificate file (PEM). Required together with `key_file` for mTLS. | +| `key_file` | `str` | ❌ No | `None` | Path to the mTLS client private key file (PEM). Required together with `cert_file` for mTLS. | +| `ca_file` | `str` | ❌ No | `None` | Path to a custom CA certificate (PEM) for server verification. Uses system trust store if omitted. | +| `insecure` | `bool` | ❌ No | `False` | Disable TLS entirely (plaintext gRPC). | +| `service_name` | `str` | ❌ No | `"audit-client"` | OpenTelemetry `service.name` resource attribute attached to every log record. | +| `batch` | `bool` | ❌ No | `False` | When `True`, uses `BatchLogRecordProcessor` (better throughput, small delay). When `False`, uses `SimpleLogRecordProcessor` (immediate, lower throughput). | +| `compression` | `bool` | ❌ No | `True` | Enable gzip compression on the gRPC channel (`grpc.Compression.Gzip`). Set to `False` to disable. | +| `schema_url` | `str` | ❌ No | `SCHEMA_URL` | OpenTelemetry schema URL attached to the logger. Defaults to the canonical ALS proto schema URL. | + +### Example values + +| Parameter | Production example | +|-----------------|---------------------------------------------------| +| `endpoint` | `us30.als.services.cloud.sap:443` | +| `deployment_id` | `us30-staging` | +| `namespace` | `sap.als` | +| `cert_file` | `/path/to/client-certificate_chain.pem` | +| `key_file` | `/path/to/private-key.pem` | +| `ca_file` | `/path/to/ca.pem` | +| `insecure` | `False` | +| `service_name` | `"my-agent"` | +| `batch` | `True` (high-throughput agents) | +| `compression` | `True` | + +--- + +## Usage in an Agent + +### Step 1: Import the Client and Generated Protobuf + +```python +from sap_cloud_sdk.core.auditlog_ng import create_client, AuditLogNGConfig +from sap_cloud_sdk.core.auditlog_ng.gen.sap.auditlog.auditevent.v2 import auditevent_pb2 as pb +``` + +### Step 2: Initialize the Client + +**With mTLS (production):** + +```python +client = create_client( + endpoint="us30.als.services.cloud.sap:443", + deployment_id="us30-staging", + namespace="sap.als", + cert_file="/path/to/client-certificate_chain.pem", + key_file="/path/to/private-key.pem", + ca_file="/path/to/ca.pem", # optional +) +``` + +**Insecure mode (local testing):** + +```python +client = create_client( + endpoint="localhost:4317", + deployment_id="my-deployment", + namespace="sap.als", + insecure=True, +) +``` + +> ⚠️ **Important:** `deployment_id` and `namespace` are validated at construction time. +> Invalid values (e.g. containing spaces) will raise a `ValueError`. + +### Step 3: Build an Audit Event + +```python +event = pb.DataAccess() +event.common.timestamp.FromDatetime(datetime.now(timezone.utc)) +event.common.user_initiator_id = "agent@example.com" +event.common.tenant_id = "9e0d89c9-17cd-439d-8a8b-9c44d3d272f0" +event.channel_type = "API" +event.channel_id = "agent-v1" +event.object_type = "resource" +event.object_id = "resource-001" +``` + +### Step 4: Send the Event + +**Binary protobuf:** + +```python +event_id = client.send(event, "DataAccess") +print(f"Sent event with ID: {event_id}") +``` + +**JSON format:** + +```python +event_id = client.send_json(event, "DataAccess") +``` + +> The `event_type` argument is optional. If omitted, the client derives it from the protobuf descriptor name (e.g., `"sap.als.AuditEvent.DataAccess.v2"`). + +### Step 5: Close the Client + +Always close the client when the agent shuts down to flush pending events: + +```python +client.close() +``` + +> Calling `send()` on a closed client raises a `RuntimeError`. + +--- + +## Full Agent Integration Example + +```python +from sap_cloud_sdk.core.auditlog_ng import create_client +from sap_cloud_sdk.core.auditlog_ng.gen.sap.auditlog.auditevent.v2 import auditevent_pb2 as pb +from datetime import datetime, timezone + + +class AgentAuditLogger: + def __init__(self): + self.client = create_client( + endpoint="us30.als.services.cloud.sap:443", + deployment_id="us30-staging", + namespace="sap.als", + cert_file="/path/to/client-certificate_chain.pem", + key_file="/path/to/private-key.pem", + ) + + def log_data_access(self, user: str, tenant_id: str, resource: str): + event = pb.DataAccess() + event.common.timestamp.FromDatetime(datetime.now(timezone.utc)) + event.common.user_initiator_id = user + event.common.tenant_id = tenant_id + event.channel_type = "API" + event.channel_id = "agent-v1" + event.object_type = "resource" + event.object_id = resource + + event_id = self.client.send(event, "DataAccess") + return event_id + + def shutdown(self): + self.client.close() + + +# In your agent main loop +audit_logger = AgentAuditLogger() +try: + event_id = audit_logger.log_data_access( + user="agent-user@example.com", + tenant_id="9e0d89c9-17cd-439d-8a8b-9c44d3d272f0", + resource="sensitive-record-42", + ) + print(f"Audit event logged: {event_id}") +finally: + audit_logger.shutdown() +``` + +--- + +## One-Off Sends (Convenience Function) + +For simple, one-off audit events without managing a persistent client: + +```python +from sap_cloud_sdk.core.auditlog_ng import create_client + +with create_client( + endpoint="us30.als.services.cloud.sap:443", + deployment_id="us30-staging", + namespace="sap.als", + cert_file="/path/to/cert.pem", + key_file="/path/to/key.pem", +) as client: + event_id = client.send(event, "DataAccess") +``` + +--- + +## Event Serialization Formats + +| Method | Format | MIME Type | +|---------------|--------------------|------------------------| +| `send()` | Binary protobuf | `application/protobuf` | +| `send_json()` | JSON | `application/json` | + +--- + +## Validation + +Events are validated against protobuf constraints using `protovalidate` before sending. A `ValueError` is raised if: + +- The event fails schema validation +- The `tenant_id` is not a valid UUID +- The client has already been closed + +--- + +## Running the Unit Tests + +```bash + cd src/sap_cloud_sdk/core/auditlog_ng + ./run-test-client.sh +``` diff --git a/tests/core/unit/auditlog_ng/__init__.py b/tests/core/unit/auditlog_ng/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/core/unit/auditlog_ng/unit/__init__.py b/tests/core/unit/auditlog_ng/unit/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/core/unit/auditlog_ng/unit/test_client.py b/tests/core/unit/auditlog_ng/unit/test_client.py new file mode 100644 index 0000000..5402848 --- /dev/null +++ b/tests/core/unit/auditlog_ng/unit/test_client.py @@ -0,0 +1,216 @@ +"""Tests for AuditClient.""" + +import json +import pytest +from unittest.mock import patch, MagicMock, Mock + +from sap_cloud_sdk.core.auditlog_ng.client import AuditClient +from sap_cloud_sdk.core.auditlog_ng.config import AuditLogNGConfig, SCHEMA_URL +from sap_cloud_sdk.core.auditlog_ng.exceptions import ValidationError + + +def _make_config(**overrides): + defaults = dict( + endpoint="localhost:4317", + deployment_id="deployment-123", + namespace="namespace-123", + insecure=True, + ) + defaults.update(overrides) + return AuditLogNGConfig(**defaults) + + +@patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") +@patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") +def _make_mocked_client(mock_provider_cls, mock_exporter_cls, *, validate_side_effect=None): + mock_logger = Mock() + mock_provider = Mock() + mock_provider.get_logger.return_value = mock_logger + mock_provider_cls.return_value = mock_provider + + config = _make_config() + client = AuditClient(config) + + validate_patcher = patch( + "sap_cloud_sdk.core.auditlog_ng.client.protovalidate.validate", + side_effect=validate_side_effect, + ) + mock_validate = validate_patcher.start() + + return client, mock_logger, mock_provider, mock_validate, validate_patcher, mock_provider_cls + + +def _make_mock_event(tenant_id="tenant-123", descriptor_name="DataAccess"): + event = MagicMock() + event.common.tenant_id = tenant_id + event.DESCRIPTOR.name = descriptor_name + event.SerializeToString.return_value = b"\x00\x01\x02" + return event + + +class TestAuditClientInit: + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_creates_insecure_client(self, mock_provider_cls, mock_exporter_cls): + config = _make_config(insecure=True) + client = AuditClient(config) + + assert client._closed is False + mock_exporter_cls.assert_called_once() + _, kwargs = mock_exporter_cls.call_args + assert kwargs["insecure"] is True + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_sets_schema_url_on_logger(self, mock_provider_cls, mock_exporter_cls): + mock_provider = Mock() + mock_provider.get_logger.return_value = Mock() + mock_provider_cls.return_value = mock_provider + + config = _make_config() + AuditClient(config) + + mock_provider.get_logger.assert_called_once() + _, kwargs = mock_provider.get_logger.call_args + assert kwargs["schema_url"] == SCHEMA_URL + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_sets_resource_attributes(self, mock_provider_cls, mock_exporter_cls): + config = _make_config(service_name="my-svc") + AuditClient(config) + + call_kwargs = mock_provider_cls.call_args[1] + resource = call_kwargs["resource"] + attrs = dict(resource.attributes) + assert attrs["service.name"] == "my-svc" + assert attrs["sap.ucl.deployment_id"] == "deployment-123" + assert attrs["sap.ucl.system_namespace"] == "namespace-123" + + +class TestAuditClientSend: + + def test_send_binary_success(self): + client, mock_logger, _, mock_validate, patcher, _ = _make_mocked_client() + try: + event = _make_mock_event() + event_id = client.send(event, "DataAccess") + + assert isinstance(event_id, str) + mock_validate.assert_called_once_with(event) + mock_logger.emit.assert_called_once() + + _, kwargs = mock_logger.emit.call_args + assert kwargs["event_name"] == "sap.als.AuditEvent.DataAccess.v2" + assert kwargs["body"] == b"\x00\x01\x02" + assert kwargs["attributes"]["sap.auditlogging.mime_type"] == "application/protobuf" + assert kwargs["attributes"]["sap.tenancy.tenant_id"] == "tenant-123" + assert "cloudevents.event_id" in kwargs["attributes"] + finally: + patcher.stop() + + def test_send_json_success(self): + client, mock_logger, _, mock_validate, patcher, _ = _make_mocked_client() + try: + event = _make_mock_event() + event_id = client.send_json(event, "DataAccess") + + assert isinstance(event_id, str) + mock_logger.emit.assert_called_once() + + _, kwargs = mock_logger.emit.call_args + assert kwargs["attributes"]["sap.auditlogging.mime_type"] == "application/json" + assert isinstance(kwargs["body"], str) + finally: + patcher.stop() + + def test_send_uses_descriptor_name_when_event_type_missing(self): + client, mock_logger, _, _, patcher, _ = _make_mocked_client() + try: + event = _make_mock_event(descriptor_name="ConfigurationChange") + client.send(event) + + _, kwargs = mock_logger.emit.call_args + assert kwargs["event_name"] == "sap.als.AuditEvent.ConfigurationChange.v2" + finally: + patcher.stop() + + def test_send_on_closed_client_raises(self): + client, _, _, _, patcher, _ = _make_mocked_client() + patcher.stop() + client.close() + + with pytest.raises(RuntimeError, match="Client is closed"): + client.send(_make_mock_event(), "DataAccess") + + def test_send_invalid_format_raises(self): + client, _, _, _, patcher, _ = _make_mocked_client() + try: + with pytest.raises(ValueError, match="format must be"): + client.send(_make_mock_event(), "DataAccess", format="xml") + finally: + patcher.stop() + + def test_send_validation_failure_raises_validation_error(self): + from protovalidate import ValidationError as ProtoValidationError + + client, mock_logger, _, _, patcher, _ = _make_mocked_client( + validate_side_effect=ProtoValidationError("bad event", []) + ) + try: + with pytest.raises(ValidationError, match="Audit event validation failed"): + client.send(_make_mock_event(), "DataAccess") + + mock_logger.emit.assert_not_called() + finally: + patcher.stop() + + def test_send_invalid_tenant_id_raises(self): + client, mock_logger, _, _, patcher, _ = _make_mocked_client() + try: + event = _make_mock_event(tenant_id="bad tenant id") + + with pytest.raises(ValueError): + client.send(event, "DataAccess") + + mock_logger.emit.assert_not_called() + finally: + patcher.stop() + + +class TestAuditClientLifecycle: + + def test_flush(self): + client, _, mock_provider, _, patcher, _ = _make_mocked_client() + patcher.stop() + + client.flush() + mock_provider.force_flush.assert_called_once() + + def test_flush_on_closed_client_is_noop(self): + client, _, mock_provider, _, patcher, _ = _make_mocked_client() + patcher.stop() + client.close() + + mock_provider.force_flush.reset_mock() + client.flush() + mock_provider.force_flush.assert_not_called() + + def test_close(self): + client, _, mock_provider, _, patcher, _ = _make_mocked_client() + patcher.stop() + + client.close() + assert client._closed is True + mock_provider.shutdown.assert_called_once() + + def test_context_manager(self): + client, _, mock_provider, _, patcher, _ = _make_mocked_client() + patcher.stop() + + with client: + assert client._closed is False + + assert client._closed is True + mock_provider.shutdown.assert_called_once() diff --git a/tests/core/unit/auditlog_ng/unit/test_config.py b/tests/core/unit/auditlog_ng/unit/test_config.py new file mode 100644 index 0000000..703ea43 --- /dev/null +++ b/tests/core/unit/auditlog_ng/unit/test_config.py @@ -0,0 +1,108 @@ +"""Tests for configuration and validation.""" + +import pytest + +from sap_cloud_sdk.core.auditlog_ng.config import ( + AuditLogNGConfig, + SCHEMA_URL, + validate_source_arg, +) + + +class TestValidateSourceArg: + + def test_valid_alphanumeric(self): + validate_source_arg("abc123", "test") + + def test_valid_with_dots_dashes_underscores(self): + validate_source_arg("my-deployment_v1.0", "test") + + def test_valid_with_slashes_and_tildes(self): + validate_source_arg("sap/als~v2", "test") + + def test_rejects_spaces(self): + with pytest.raises(ValueError, match="test"): + validate_source_arg("bad value", "test") + + def test_rejects_empty_string(self): + with pytest.raises(ValueError, match="test"): + validate_source_arg("", "test") + + def test_rejects_special_characters(self): + with pytest.raises(ValueError, match="test"): + validate_source_arg("value@#!", "test") + + +class TestAuditLogNGConfig: + + def test_valid_minimal_config(self): + config = AuditLogNGConfig( + endpoint="localhost:4317", + deployment_id="my-deployment", + namespace="sap.als", + ) + assert config.endpoint == "localhost:4317" + assert config.deployment_id == "my-deployment" + assert config.namespace == "sap.als" + assert config.insecure is False + assert config.batch is False + assert config.compression is True + assert config.service_name == "audit-client" + assert config.schema_url == SCHEMA_URL + + def test_valid_full_config(self): + config = AuditLogNGConfig( + endpoint="audit.example.com:443", + deployment_id="us30-staging", + namespace="sap.als", + cert_file="/path/to/cert.pem", + key_file="/path/to/key.pem", + ca_file="/path/to/ca.pem", + insecure=False, + service_name="my-agent", + batch=True, + compression=False, + schema_url="https://custom.schema/url", + ) + assert config.cert_file == "/path/to/cert.pem" + assert config.key_file == "/path/to/key.pem" + assert config.ca_file == "/path/to/ca.pem" + assert config.service_name == "my-agent" + assert config.batch is True + assert config.compression is False + assert config.schema_url == "https://custom.schema/url" + + def test_empty_endpoint_raises(self): + with pytest.raises(ValueError, match="endpoint is required"): + AuditLogNGConfig( + endpoint="", + deployment_id="my-deployment", + namespace="sap.als", + ) + + def test_invalid_deployment_id_raises(self): + with pytest.raises(ValueError, match="deployment_id"): + AuditLogNGConfig( + endpoint="localhost:4317", + deployment_id="bad value", + namespace="sap.als", + ) + + def test_invalid_namespace_raises(self): + with pytest.raises(ValueError, match="namespace"): + AuditLogNGConfig( + endpoint="localhost:4317", + deployment_id="my-deployment", + namespace="bad value", + ) + + def test_defaults_for_optional_fields(self): + config = AuditLogNGConfig( + endpoint="localhost:4317", + deployment_id="dep", + namespace="ns", + ) + assert config.cert_file is None + assert config.key_file is None + assert config.ca_file is None + assert config.insecure is False diff --git a/tests/core/unit/auditlog_ng/unit/test_create_client.py b/tests/core/unit/auditlog_ng/unit/test_create_client.py new file mode 100644 index 0000000..25dca9f --- /dev/null +++ b/tests/core/unit/auditlog_ng/unit/test_create_client.py @@ -0,0 +1,105 @@ +"""Tests for create_client factory function.""" + +import pytest +from unittest.mock import patch, Mock + +from sap_cloud_sdk.core.auditlog_ng import create_client, AuditClient +from sap_cloud_sdk.core.auditlog_ng.config import AuditLogNGConfig, SCHEMA_URL +from sap_cloud_sdk.core.auditlog_ng.exceptions import ClientCreationError + + +class TestCreateClient: + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_create_client_with_config(self, mock_provider_cls, mock_exporter_cls): + mock_provider = Mock() + mock_provider.get_logger.return_value = Mock() + mock_provider_cls.return_value = mock_provider + + config = AuditLogNGConfig( + endpoint="localhost:4317", + deployment_id="dep-1", + namespace="ns-1", + insecure=True, + ) + + client = create_client(config=config) + + assert isinstance(client, AuditClient) + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_create_client_with_keyword_args(self, mock_provider_cls, mock_exporter_cls): + mock_provider = Mock() + mock_provider.get_logger.return_value = Mock() + mock_provider_cls.return_value = mock_provider + + client = create_client( + endpoint="localhost:4317", + deployment_id="dep-1", + namespace="ns-1", + insecure=True, + ) + + assert isinstance(client, AuditClient) + + def test_create_client_missing_endpoint_raises(self): + with pytest.raises(ValueError, match="endpoint, deployment_id, and namespace are required"): + create_client(deployment_id="dep-1", namespace="ns-1") + + def test_create_client_missing_deployment_id_raises(self): + with pytest.raises(ValueError, match="endpoint, deployment_id, and namespace are required"): + create_client(endpoint="localhost:4317", namespace="ns-1") + + def test_create_client_missing_namespace_raises(self): + with pytest.raises(ValueError, match="endpoint, deployment_id, and namespace are required"): + create_client(endpoint="localhost:4317", deployment_id="dep-1") + + def test_create_client_no_args_raises(self): + with pytest.raises(ValueError, match="endpoint, deployment_id, and namespace are required"): + create_client() + + def test_create_client_invalid_deployment_id_raises(self): + with pytest.raises(ValueError, match="deployment_id"): + create_client( + endpoint="localhost:4317", + deployment_id="bad value", + namespace="ns-1", + ) + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_create_client_unexpected_exception_wraps_in_client_creation_error( + self, mock_provider_cls, mock_exporter_cls + ): + mock_provider_cls.side_effect = RuntimeError("Unexpected failure") + + with pytest.raises(ClientCreationError, match="Failed to create audit log NG client"): + create_client( + endpoint="localhost:4317", + deployment_id="dep-1", + namespace="ns-1", + insecure=True, + ) + + @patch("sap_cloud_sdk.core.auditlog_ng.client.OTLPLogExporter") + @patch("sap_cloud_sdk.core.auditlog_ng.client.LoggerProvider") + def test_config_keyword_args_are_forwarded(self, mock_provider_cls, mock_exporter_cls): + mock_provider = Mock() + mock_provider.get_logger.return_value = Mock() + mock_provider_cls.return_value = mock_provider + + client = create_client( + endpoint="audit.example.com:443", + deployment_id="dep-1", + namespace="ns-1", + service_name="my-svc", + batch=True, + compression=False, + insecure=True, + ) + + assert client._config.service_name == "my-svc" + assert client._config.batch is True + assert client._config.compression is False diff --git a/tests/core/unit/auditlog_ng/unit/test_exceptions.py b/tests/core/unit/auditlog_ng/unit/test_exceptions.py new file mode 100644 index 0000000..82220d3 --- /dev/null +++ b/tests/core/unit/auditlog_ng/unit/test_exceptions.py @@ -0,0 +1,48 @@ +"""Tests for exception classes.""" + +import pytest + +from sap_cloud_sdk.core.auditlog_ng.exceptions import ( + AuditLogNGError, + ClientCreationError, + TransportError, + ValidationError, +) + + +class TestExceptions: + + def test_exception_hierarchy(self): + assert issubclass(ClientCreationError, AuditLogNGError) + assert issubclass(TransportError, AuditLogNGError) + assert issubclass(ValidationError, AuditLogNGError) + assert issubclass(AuditLogNGError, Exception) + + def test_base_auditlog_ng_error(self): + error = AuditLogNGError("Base error") + assert str(error) == "Base error" + assert isinstance(error, Exception) + + def test_client_creation_error(self): + error = ClientCreationError("Failed to create client") + assert str(error) == "Failed to create client" + assert isinstance(error, AuditLogNGError) + + def test_transport_error(self): + error = TransportError("Transport failed") + assert str(error) == "Transport failed" + assert isinstance(error, AuditLogNGError) + + def test_validation_error(self): + error = ValidationError("Validation failed") + assert str(error) == "Validation failed" + assert isinstance(error, AuditLogNGError) + + def test_exceptions_with_chained_causes(self): + original_error = ValueError("Original cause") + + try: + raise ClientCreationError("Client failed") from original_error + except ClientCreationError as e: + assert e.__cause__ is original_error + assert "Client failed" in str(e) From c66b14ac706a347f12554cd4382047a141398be2 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 14:00:05 +0300 Subject: [PATCH 02/20] Address code review comments --- Makefile | 21 + .../core/auditlog_ng/__init__.py | 7 +- .../core/auditlog_ng/buf.gen.yaml | 9 + src/sap_cloud_sdk/core/auditlog_ng/buf.yaml | 5 + src/sap_cloud_sdk/core/auditlog_ng/client.py | 4 + .../core/auditlog_ng/exceptions.py | 6 - .../protoc/gen/jsonschema/v1/options.proto | 32 + .../auditlog/auditevent/v1/auditevent.proto | 1625 +++++++++++++++ .../auditlog/auditevent/v2/auditevent.proto | 1766 +++++++++++++++++ .../core/auditlog_ng/py.typed} | 0 10 files changed, 3466 insertions(+), 9 deletions(-) create mode 100644 Makefile create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/buf.gen.yaml create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/buf.yaml create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/proto/protoc/gen/jsonschema/v1/options.proto create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v1/auditevent.proto create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto rename src/{buf/__init__.py => sap_cloud_sdk/core/auditlog_ng/py.typed} (100%) diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..5336631 --- /dev/null +++ b/Makefile @@ -0,0 +1,21 @@ +# Proto code generation for SAP Cloud SDK for Python +# Requires: buf CLI (https://buf.build/docs/installation) + +AUDITLOG_NG_DIR := src/sap_cloud_sdk/core/auditlog_ng +GEN_DIR := $(AUDITLOG_NG_DIR)/gen +BUF_DIR := src/buf + +.PHONY: proto + +proto: +# Generate code using buf CLI + cd $(AUDITLOG_NG_DIR) && buf dep update && buf generate --include-imports + +# Add __init__.py files to generated code + find $(GEN_DIR) -type d -exec touch {}/__init__.py \; + +# Move /buf generated code to the root + rm -rf $(BUF_DIR); + mv $(GEN_DIR)/buf $(BUF_DIR); + rm -rf $(GEN_DIR)/buf; + diff --git a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py index ccf9c72..4ad82d6 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py @@ -29,7 +29,6 @@ from sap_cloud_sdk.core.auditlog_ng.config import ( AuditLogNGConfig, SCHEMA_URL, - validate_source_arg, ) from sap_cloud_sdk.core.auditlog_ng.exceptions import ( AuditLogNGError, @@ -38,6 +37,8 @@ ValidationError, ) +from sap_cloud_sdk.core.telemetry import Module + def create_client( *, @@ -53,6 +54,7 @@ def create_client( batch: bool = False, compression: bool = True, schema_url: str = SCHEMA_URL, + _telemetry_source: Optional[Module] = None ) -> AuditClient: """Create an AuditClient for sending audit events over OTLP/gRPC. @@ -102,7 +104,7 @@ def create_client( schema_url=schema_url, ) - return AuditClient(config) + return AuditClient(config, _telemetry_source=_telemetry_source) except (ValueError, ValidationError) as e: raise e @@ -117,7 +119,6 @@ def create_client( "AuditClient", # Configuration "AuditLogNGConfig", - "SCHEMA_URL", # Exceptions "AuditLogNGError", "ClientCreationError", diff --git a/src/sap_cloud_sdk/core/auditlog_ng/buf.gen.yaml b/src/sap_cloud_sdk/core/auditlog_ng/buf.gen.yaml new file mode 100644 index 0000000..a7458ef --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/buf.gen.yaml @@ -0,0 +1,9 @@ +version: v2 +clean: true +plugins: + - remote: buf.build/protocolbuffers/python:v33.5 + out: gen + include_imports: true + - remote: buf.build/protocolbuffers/pyi:v33.5 + out: gen + include_imports: true diff --git a/src/sap_cloud_sdk/core/auditlog_ng/buf.yaml b/src/sap_cloud_sdk/core/auditlog_ng/buf.yaml new file mode 100644 index 0000000..87c1dfe --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/buf.yaml @@ -0,0 +1,5 @@ +version: v2 +modules: + - path: proto +deps: + - buf.build/bufbuild/protovalidate diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py index 58cc3ac..19da18e 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/client.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -134,6 +134,10 @@ def send( RuntimeError: If the client has already been closed. ValueError: If *format* is not a supported value. ValidationError: If the protobuf event fails validation. + + Note: + A successful return does not guarantee delivery. + The OTLP exporter operates asynchronously. Always use flush() before shutdown to maximize delivery probability. """ if self._closed: raise RuntimeError("Client is closed") diff --git a/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py b/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py index 0e72465..4bb534d 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/exceptions.py @@ -13,12 +13,6 @@ class ClientCreationError(AuditLogNGError): pass -class TransportError(AuditLogNGError): - """Raised when gRPC transport operations fail.""" - - pass - - class ValidationError(AuditLogNGError): """Raised when audit event validation fails.""" diff --git a/src/sap_cloud_sdk/core/auditlog_ng/proto/protoc/gen/jsonschema/v1/options.proto b/src/sap_cloud_sdk/core/auditlog_ng/proto/protoc/gen/jsonschema/v1/options.proto new file mode 100644 index 0000000..433f3df --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/proto/protoc/gen/jsonschema/v1/options.proto @@ -0,0 +1,32 @@ +// Custom options for protoc-gen-jsonschema +// Allocated range is 1125-1129 +// See https://github.com/protocolbuffers/protobuf/blob/master/docs/options.md + +syntax = "proto3"; +package protoc.gen.jsonschema.v1; + +import "google/protobuf/descriptor.proto"; + +option go_package = "github.com/chrusty/protoc-gen-jsonschema"; + +// Custom FieldOptions +message FieldOptions { + // Fields tagged with this will be omitted from generated schemas + bool ignore = 1; + + // Fields tagged with this will be marked as "required" in generated schemas + bool required = 2; + + // Fields tagged with this will constrain strings using the "minLength" keyword in generated schemas + int32 min_length = 3; + + // Fields tagged with this will constrain strings using the "maxLength" keyword in generated schemas + int32 max_length = 4; + + // Fields tagged with this will constrain strings using the "pattern" keyword in generated schemas + string pattern = 5; +} + +extend google.protobuf.FieldOptions { + FieldOptions field_options = 1125; +} diff --git a/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v1/auditevent.proto b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v1/auditevent.proto new file mode 100644 index 0000000..7a04c91 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v1/auditevent.proto @@ -0,0 +1,1625 @@ +syntax = "proto3"; +package sap.auditlog.auditevent.v1; + +import "buf/validate/validate.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; +import "protoc/gen/jsonschema/v1/options.proto"; + +option go_package = "sap.com/auditlog/auditevent"; + +// Metadata +// contains information that are attached to all events. +message Metadata { + string ts = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; // Required format: 2023-10-23T10:00:00.000Z + repeated string source_ip = 2; // IPv4 or IPv6 + string user_impersonated_id = 3; + string user_initiator_id = 4; + string app_id = 5; + string tenant_id = 6; + string user_session_context_id = 7; + map app_context = 8; + Infrastructure infrastructure = 9; + Platform platform = 10; + + message Infrastructure { + oneof runtime { + option (buf.validate.oneof).required = true; + + Kubernetes k8s = 1; + CloudFoundry cf = 2; + Other other = 3; + } + App app = 4; + + message Kubernetes { + string infrastructure_region = 1; + string cluster = 2; + string node = 3; + string pod = 4; + } + + message CloudFoundry { + string btpregion = 1; + string org_id = 2; + string space_id = 3; + string app_id = 4; + } + + message Other { + string runtime_type = 1; + } + + message App { + string image = 1; + string version = 2; + } + } + + message Platform { + oneof platform { + option (buf.validate.oneof).required = true; + + BTP btp = 1; + UnifiedServices unified_services = 2; + Other other = 3; + } + + message BTP { + string global_account_id = 1; + string sub_account_id = 2; + } + + message UnifiedServices { + string account_id = 1; + string folder_path = 2; + string resourcegroup_path = 3; + } + + message Other { + string platform_name = 1; + } + } +} + +/* AuditlogClear + * @EventShortText: "Audit Log has been deleted" + * @EventCode: "AE-0001" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Audit Log has been deleted (event count: ${number_of_events})" + * @EventDocumentation: "The Audit log has been deleted and is no longer available. The number of events has been deleted." + */ +message AuditlogClear { + int32 number_of_events = 1; +} + +/* AuditlogDisable + * @EventShortText: "Audit Log has been disabled" + * @EventCode: "AE-0002" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Audit Log has been disabled" + * @EventDocumentation: "The Audit log has been disabled" + */ +message AuditlogDisable {} + +/* AuditlogEnable + * @EventShortText: "Audit Log has been enabled" + * @EventCode: "AE-0003" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Audit Log has been enabled" + * @EventDocumentation: "The Audit log has been enabled" + */ +message AuditlogEnable {} + +/* AuthnPrivilegeToGroupAdd + * @EventShortText: "An additional privilege has been added to a group" + * @EventCode: "AE-0004" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been added to group ${group}" + * @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 { + string group = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string privilege = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3; + string object_id = 4; +} + +/* AuthnPrivilegeToGroupDelete + * @EventShortText: "An 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 { + string group = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string privilege = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3; + string object_id = 4; +} + +/* AuthnPrivilegeToRoleAdd + * @EventShortText: "An 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 { + string privilege = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string role = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3; + string object_id = 4; +} + +/* AuthnPrivilegeToRoleDelete + * @EventShortText: "An 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 { + string privilege = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string role = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3; + string object_id = 4; +} + +/* AuthnPrivilegeToUserAdd + * @EventShortText: "A privilege has been added to a user" + * @EventCode: "AE-0008" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been added to user ${user}" + * @EventDocumentation: "A user has been added access to specific objects and operations by a privilege." + */ +message AuthnPrivilegeToUserAdd { + string privilege = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3; + string object_id = 4; +} + +/* AuthnPrivilegeToUserDelete + * @EventShortText: "An 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}" + * @EventDocumentation: "A user’s privileges have been deleted, preventing them from accessing the assigned objects and performing the corresponding operations." + */ +message AuthnPrivilegeToUserDelete { + string privilege = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3; + string object_id = 4; +} + +/* AuthnRoleToGroupAdd + * @EventShortText: "A user group has been added to a new role." + * @EventCode: "AE-0010" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been added to group ${group}" + * @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 { + string group = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string role = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* AuthnRoleToGroupDelete + * @EventShortText: "A user group role has been deleted" + * @EventCode: "AE-0011" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been deleted from group ${group}" + * @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 { + string group = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string role = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* AuthnRoleToUserAdd + * @EventShortText: "A user has been added a role." + * @EventCode: "AE-0012" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been added to user ${user}" + * @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 { + string role = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* AuthnRoleToUserDelete + * @EventShortText: "A user’s role has been deleted" + * @EventCode: "AE-0013" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been deleted from user ${user}" + * @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 { + string role = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* AuthnUserToGroupAdd + * @EventShortText: "The user has been added to a group." + * @EventCode: "AE-0014" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User ${user} has been added to group ${group}" + * @EventDocumentation: "A user has been assigned to a user group." + */ +message AuthnUserToGroupAdd { + string group = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* AuthnUserToGroupDelete + * @EventShortText: "The user has been deleted from the user group." + * @EventCode: "AE-0015" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User ${user} has been deleted from group ${group}" + * @EventDocumentation: "A user has been deleted from mentioned user group." + */ +message AuthnUserToGroupDelete { + string group = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* ConfigurationAdd + * @EventShortText: "A new configuration has been added" + * @EventCode: "AE-0016" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "A new configuration has been created for the property named ${property_name} (Type: ${object_type}, ID: ${object_id}). The value associated with this property is ${value}" + * @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 { + google.protobuf.Value value = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 4 [(buf.validate.field).string.max_len = 20]; + string object_id = 5; +} + +/* ConfigurationChange + * @EventShortText: "An existing configuration has been changed" + * @EventCode: "AE-0017" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "An existing configuration has been modified for the property named ${property_name} (Type: ${object_type}, ID: ${object_id}). The value associated with this property has been changed from ${old_value} to ${new_value}" + * @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 { + google.protobuf.Value new_value = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Value old_value = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 4 [(buf.validate.field).string.max_len = 20]; + string object_id = 5; +} + +/* ConfigurationDelete + * @EventShortText: "A configuration has been deleted" + * @EventCode: "AE-0018" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "A configuration has been deleted for the property named ${property_name} (Type: ${object_type}, ID: ${object_id}). The value associated with this property was ${value}" + * @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 { + google.protobuf.Value value = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 4 [(buf.validate.field).string.max_len = 20]; + string object_id = 5; +} + +/* CredentialCreate + * @EventShortText: "A credential has been created" + * @EventCode: "AE-0019" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been successfully created" + * @EventDocumentation: "A credential of a specific type has been successfully created." + */ +message CredentialCreate { + string credential_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + CredentialType credential_type = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CredentialDelete + * @EventShortText: "A credential has been deleted" + * @EventCode: "AE-0020" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been deleted" + * @EventDocumentation: "A credential of a specific type has been deleted." + */ +message CredentialDelete { + string credential_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + CredentialType credential_type = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CredentialExpiration + * @EventShortText: "A credential has been expired" + * @EventCode: "AE-0021" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been expired (Expiration date: ${expiration_date})" + * @EventDocumentation: "A credential of a specific type has been expired at a specific time." + */ +message CredentialExpiration { + string credential_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + CredentialType credential_type = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Timestamp expiration_date = 3; +} + +/* CredentialRevokation + * @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})" + * @EventDocumentation: "A credential of a specific type has been invalidated at a specific time." + */ +message CredentialRevokation { + string credential_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + CredentialType credential_type = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Timestamp revokation_date = 3; +} + +/* DataModelChange + * @EventShortText: "Data Model has been changed" + * @EventCode: "AE-0023" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Property named ${property_name} of data Model with ID ${model_id} changed. The value associated with this property has been changed from ${old_value} to ${new_value}" + * @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 { + string model_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value new_value = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Value old_value = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* DataModelCreate + * @EventShortText: "Data Model has been created" + * @EventCode: "AE-0024" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Data Model with ID ${model_id} has been created" + * @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 { + string model_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* DataModelDelete + * @EventShortText: "Data Model has been deleted" + * @EventCode: "AE-0025" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Data Model with ID ${model_id} has been deleted" + * @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 { + string model_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* DataAccess + * @EventShortText: "Security-relevant data has been accessed" + * @EventCode: "AE-0026" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} of Object Type ${object_type} with Object ID ${object_id} has been accessed via Channel ID ${channel_id} (Channel Type ${channel_type}). The read value is ${value}" + * @EventDocumentation: "A security-relevant property has been read through the designated channel." + */ +message DataAccess { + string channel_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string channel_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 5 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value value = 6; + string attachment_type = 7 [deprecated = true]; + string attachment_id = 8 [deprecated = true]; +} + +/* DataCreate + * @EventShortText: "Security-relevant data has been created" + * @EventCode: "AE-0027" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} with Object ID ${object_id} of Object Type ${object_type} with value ${value} has been created" + * @EventDocumentation: "A security-relevant property has been created." + */ +message DataCreate { + string object_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value value = 4; +} + +/* DataDelete + * @EventShortText: "Security-relevant data has been deleted" + * @EventCode: "AE-0028" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} of Object ID ${object_id} (Object Type ${object_type}) with value ${value} has been deleted" + * @EventDocumentation: "A security-relevant property has been deleted." + */ +message DataDelete { + string object_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value value = 4; +} + +/* DataModification + * @EventShortText: "Security-relevant data has been modified" + * @EventCode: "AE-0029" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} of Object ID ${object_id} (Object Type ${object_type}) has been changed from value ${old_value} to new value ${new_value}" + * @EventDocumentation: "A security-relevant property has been changed." + */ +message DataModification { + string object_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value new_value = 4; + google.protobuf.Value old_value = 5; +} + +/* DataExport + * @EventShortText: "Security-relevant data has been exported" + * @EventCode: "AE-0030" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "Object ID ${object_id} (Object Type ${object_type}) has been exported via Channel ID ${channel_id}. Destination URI: ${destination_uri}" + * @EventDocumentation: "A security-relevant data has been exported to a desinated URI" + */ +message DataExport { + DataExportChannelType channel_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string channel_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string destination_uri = 5 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* DppDataAccess + * @EventShortText: "DPP relevant data has been accessed" + * @EventCode: "AE-0031" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been accessed. Object ID ${object_id} (Object Type ${object_type}) has been accessed via Channel ID ${channel_id}. The value associated with attribute ${attribute} was ${value}" + * @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 { + string channel_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string channel_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string data_subject_type = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string data_subject_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 5 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 6 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 7 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value value = 8; + string attachment_type = 9 [deprecated = true]; + string attachment_id = 10 [deprecated = true]; +} + +/* DppDataCreate + * @EventShortText: "DPP relevant data has been created" + * @EventCode: "AE-0032" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been created. Object ID ${object_id} (Object Type ${object_type}) has been created. The value associated with attribute ${attribute} was ${value}" + * @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 { + string data_subject_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string data_subject_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 5 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value value = 6; +} + +/* DppDataDelete + * @EventShortText: "DPP relevant data has been deleted" + * @EventCode: "AE-0033" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been deleted. Object ID ${object_id} (Object Type ${object_type}) has been deleted. The value associated with attribute ${attribute} was ${value}" + * @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 { + string data_subject_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string data_subject_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 5 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value value = 6; +} + +/* DppDataModification + * @EventShortText: "DPP relevant data has been modified" + * @EventCode: "AE-0034" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been modified. Object ID ${object_id} (Object Type ${object_type}) has been modified. The value associated with attribute ${attribute} was changed from ${old_value} to ${new_value}" + * @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 { + string data_subject_type = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string data_subject_id = 2 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_type = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string object_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string attribute = 5 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value new_value = 6; + google.protobuf.Value old_value = 7; +} + +/* JobChange + * @EventShortText: "A property of job has been changed" + * @EventCode: "AE-0035" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The property named ${property_name} of Job ${job_id} has been updated from its previous value of ${old_value} to ${new_value}" + * @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 { + string job_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value new_value = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Value old_value = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* JobCreate + * @EventShortText: "A job has been created" + * @EventCode: "AE-0036" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Job with ID ${job_id} has been created" + * @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 { + string job_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* JobDelete + * @EventShortText: "A job has been deleted" + * @EventCode: "AE-0037" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Job with ID ${job_id} has been deleted" + * @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 { + string job_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* JobStatusChange + * @EventShortText: "A job status has been changed" + * @EventCode: "AE-0038" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The job status of Job ${job_id} has modified the property named ${property_name}. Its previous value was ${old_value}, and it has now been updated to ${new_value}" + * @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 { + string job_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + google.protobuf.Value new_value = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Value old_value = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* MaliciousRequestDetected + * @EventShortText: "The server has received a request that it seems malicious" + * @EventCode: "AE-0039" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Malicious behavior ${behavior} for parameter ${parameter} detected. The received value was ${received_value}, but the expected value was ${expected_value}" + * @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 { + string parameter = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string expected_value = 2; + string received_value = 3; + MaliciousBehavior behavior = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* PasswordChange + * @EventShortText: "The password of a user has been changed" + * @EventCode: "AE-0040" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The password of user ${user_id} has been changed" + * @EventDocumentation: "Password of the mentioned user has been changed." + */ +message PasswordChange { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* PasswordExpiration + * @EventShortText: "The password of a user has expired" + * @EventCode: "AE-0041" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The password of user ${user_id} has expired" + * @EventDocumentation: "Password of the mentioned user has expired." + */ +message PasswordExpiration { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* PasswordReset + * @EventShortText: "The user’s password has been reset" + * @EventCode: "AE-0042" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The password of user ${user_id} has been reset" + * @EventDocumentation: "Password of the mentioned user has been reset." + */ +message PasswordReset { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* TenantModification + * @EventShortText: "A property of a tenant was modified" + * @EventCode: "AE-0043" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The property named ${property_name} has been updated for the tenant with ID ${tenant_id}. The value has been changed from ${old_value} to ${new_value}" + * @EventDocumentation: "A property of a tenant was changed." + */ +message TenantModification { + google.protobuf.Value new_value = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Value old_value = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string tenant_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* TenantOffboarding + * @EventShortText: "A tenant was offboarded" + * @EventCode: "AE-0044" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The tenant with ID ${tenant_id} has been terminated" + * @EventDocumentation: "The tenant has been terminated from the service." + */ +message TenantOffboarding { + string tenant_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* TenantOnboarding + * @EventShortText: "A tenant was onboarded" + * @EventCode: "AE-0045" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The tenant with ID ${tenant_id} has been created" + * @EventDocumentation: "The tenant has been created" + */ +message TenantOnboarding { + string tenant_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UnauthenticatedRequest + * @EventShortText: "Unauthenticated request has been performed" + * @EventCode: "AE-0046" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "An unauthenticated request has been performed" + * @EventDocumentation: "An unauthenticated request (in the sense of an HTTP status code 401) has been performed" + */ +message UnauthenticatedRequest {} + +/* UnauthorizedRequest + * @EventShortText: "Unauthenticated request has been performed" + * @EventCode: "AE-0047" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "An unauthorized request has been performed" + * @EventDocumentation: "An unauthenticated request (in the sense of an HTTP status code 401) has been performed" + */ +message UnauthorizedRequest {} + +/* UserActivate + * @EventShortText: "User has been activated" + * @EventCode: "AE-0048" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} has been activated" + * @EventDocumentation: "A specific user has been acitvated" + */ +message UserActivate { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserBlock + * @EventShortText: "User has been blocked" + * @EventCode: "AE-0049" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} has been blocked" + * @EventDocumentation: "A specific user has been blocked" + */ +message UserBlock { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserCreate + * @EventShortText: "User has been created" + * @EventCode: "AE-0050" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} has been created" + * @EventDocumentation: "A specific user has been created" + */ +message UserCreate { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserDataModification + * @EventShortText: "User's master data has been modified" + * @EventCode: "AE-0051" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The property named ${property_name} of user with ID ${user_id} has been updated from its previous value of ${old_value} to ${new_value}" + * @EventDocumentation: "User's master data has been modified. A specific property of user has been changed" + */ +message UserDataModification { + google.protobuf.Value new_value = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + google.protobuf.Value old_value = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string property_name = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + string user_id = 4 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserDelete + * @EventShortText: "User has been deleted" + * @EventCode: "AE-0052" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} has been deleted" + * @EventDocumentation: "A specific user has been deleted" + */ +message UserDelete { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserImpersonationStart + * @EventShortText: "User impersonation started" + * @EventCode: "AE-0053" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User with ID ${user_initiator_id} (User Type:${user_initiator_type}) started impersonation for user with ID ${user_impersonated_id} (User Type:${user_impersonated_type}). Context ID: ${context}" + * @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 { + string user_initiator_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + UserType user_initiator_type = 2; + string user_impersonated_id = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + UserType user_impersonated_type = 4; + string context = 5 [(buf.validate.field).string.min_len = 1]; +} + +/* UserImpersonationFinish + * @EventShortText: "User impersonation finished" + * @EventCode: "AE-0054" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User with ID ${user_initiator_id} (User Type:${user_initiator_type}) finished impersonation for user with ID ${user_impersonated_id} (User Type:${user_impersonated_type}).Context ID: ${context}" + * @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 { + string user_initiator_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + UserType user_initiator_type = 2; + string user_impersonated_id = 3 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; + UserType user_impersonated_type = 4; + string context = 5 [(buf.validate.field).string.min_len = 1]; +} + +/* UserLock + * @EventShortText: "User has been locked" + * @EventCode: "AE-0055" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} has been locked" + * @EventDocumentation: "A specific user has been locked" + */ +message UserLock { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserUnlock + * @EventShortText: "User has been unlocked" + * @EventCode: "AE-0056" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} has been unlocked" + * @EventDocumentation: "A specific user has been unlocked" + */ +message UserUnlock { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserVerify + * @EventShortText: "User has been verified" + * @EventCode: "AE-0057" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User with ID ${user_id} has been verified" + * @EventDocumentation: "A specific user has been verified." + */ +message UserVerify { + string user_id = 1 [ + (buf.validate.field).string.min_len = 1, + (protoc.gen.jsonschema.v1.field_options).required = true + ]; +} + +/* UserLoginFailure + * @EventShortText: "User login failed" + * @EventCode: "AE-0058" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User failed (reason: ${failure_reason}) to login via ${method}" + * @EventDocumentation: "The user could not be logged on to the system" + */ +message UserLoginFailure { + FailureReason failure_reason = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + LoginMethod method = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* UserLoginSuccess + * @EventShortText: "User login was successful" + * @EventCode: "AE-0059" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User logged on successfully (User Type: ${user_type}, Method: ${method}, Admin: ${is_admin}, Multifactor Type: ${mfa_type} " + * @EventDocumentation: "The user has logged onto the system successfully." + */ +message UserLoginSuccess { + bool is_admin = 1; + LoginMethod method = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + MfaType mfa_type = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + UserType user_type = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* UserLogoff + * @EventShortText: "User logged off" + * @EventCode: "AE-0060" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User logged off (Type: ${logoff_type})" + * @EventDocumentation: "The logged off." + */ +message UserLogoff { + LogoffType logoff_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* ZzzCustomEvent + * @EventShortText: "Custom Event" + * @EventCode: "AE-0061" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${custom}" + * @EventDocumentation: "Custom event-type used for security related events that are not part of the Audit Log Event Catalog." + */ +message ZzzCustomEvent { + google.protobuf.Value custom = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKOnboarding + * @EventShortText: "System has been onboarded to CMK" + * @EventCode: "AE-0062" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "System ${system_id} has been onboarded to Customer Managed Key ${cmk_id} in KMS Tenant ${tenant_id}" + * @EventDocumentation: "A System has been onboarded to a Customer Managed Key within an SAP Key Management Service Tenant." + */ +message CMKOnboarding { + string system_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKOffboarding + * @EventShortText: "System has been offboarded from CMK" + * @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." + */ +message CMKOffboarding { + string system_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 2 [(protoc.gen.jsonschema.v1.field_options).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 offboarded from a Customer Managed Key within as SAP Key Management Service Tenant." + */ +message CMKSwitch { + string system_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id_old = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id_new = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKTenantModification + * @EventShortText: "CMK Tenant modification" + * @EventCode: "AE-0065" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Tenant with ID ${tenant_id} (Customer Tenant Context ID: ${system_id}) has been modified. Action = ${cmk_action} for Customer Managed Key ${cmk_id}" + * @EventDocumentation: "A Tenant has been modifed as a result of a customer action within the SAP Key Management Service (e.g. System Onboarding, System Offboarding or Key Revocation)" + */ +message CMKTenantModification { + string system_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + CMKAction cmk_action = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKCreate + * @EventShortText: "CMK has been created" + * @EventCode: "AE-0066" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been created" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKDelete + * @EventShortText: "CMK has been deleted" + * @EventCode: "AE-0067" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been deleted" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKRestore + * @EventShortText: "CMK has been restored" + * @EventCode: "AE-0068" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been restored" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKDisable + * @EventShortText: "CMK has been disabled" + * @EventCode: "AE-0069" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been disabled" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKEnable + * @EventShortText: "CMK has been enabled" + * @EventCode: "AE-0070" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been enabled" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKRotate + * @EventShortText: "CMK has been rotated" + * @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)." + */ +message CMKRotate { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyCreate + * @EventShortText: "Key has been created" + * @EventCode: "AE-0072" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been created (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified by its Key ID has been created. The key was assigned to a system referenced by a Customer Managed Key." + */ +message KeyCreate { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyDelete + * @EventShortText: "Key has been deleted" + * @EventCode: "AE-0073" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been deleted (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified 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 { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyRestore + * @EventShortText: "Key has been restored" + * @EventCode: "AE-0074" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been restored (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified 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 { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyPurge + * @EventShortText: "Key has been purged" + * @EventCode: "AE-0075" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been purged (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified 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 { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyRotate + * @EventShortText: "Key has been rotated" + * @EventCode: "AE-0076" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been rotated (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified 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 { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyEnable + * @EventShortText: "Key has been enabled" + * @EventCode: "AE-0077" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been enabled (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified 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 { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* KeyDisable + * @EventShortText: "Key has been disabled" + * @EventCode: "AE-0078" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been disabled (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @EventDocumentation: "A key indentified 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 { + KeyType key_type = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string key_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string cmk_id = 4 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKUnavailable + * @EventShortText: "CMK has become unavailable" + * @EventCode: "AE-0084" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has become unavailable" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKAvailable + * @EventShortText: "CMK has become available" + * @EventCode: "AE-0085" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has become available" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +/* CMKDetach + * @EventShortText: "CMK has been detached" + * @EventCode: "AE-0086" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been detached from System ${system_id}" + * @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 { + string cmk_id = 1 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string kms_system_id = 2 [(protoc.gen.jsonschema.v1.field_options).required = true]; + string system_id = 3 [(protoc.gen.jsonschema.v1.field_options).required = true]; +} + +enum CredentialType { + //@ShortText: "Unspecified" + CREDENTIAL_TYPE_UNSPECIFIED = 0; + //@ShortText: "X.509" + CREDENTIAL_TYPE_X509_CERTIFICATE = 1; + //@ShortText: "Key" + CREDENTIAL_TYPE_KEY = 2; + //@ShortText: "Secret" + CREDENTIAL_TYPE_SECRET = 3; +} + +// FailureReason +enum FailureReason { + //@ShortText: "Unspecified Reason" + FAILURE_REASON_UNSPECIFIED = 0; + //@ShortText: "Wrong Password" + FAILURE_REASON_PASSWORD = 1; + //@ShortText: "Multi-Factor Authentication failed" + FAILURE_REASON_MFA_FAILED = 2; + //@ShortText: "User not found" + FAILURE_REASON_USER_NOT_FOUND = 3; + //@ShortText: "User locked" + FAILURE_REASON_USER_LOCKED = 4; + //@ShortText: "User blocked" + FAILURE_REASON_USER_BLOCKED = 5; + //@ShortText: "User not verified + FAILURE_REASON_USER_UNVERIFIED = 6; + //@ShortText: "User expired" + FAILURE_REASON_USER_EXPIRED = 7; + //@ShortText: "User invalid" + FAILURE_REASON_USER_INVALID = 8; + //@ShortText: "Insecure connection" + FAILURE_REASON_INSECURE_CONNECTION = 9; + //@ShortText: "Login method disabled" + FAILURE_REASON_LOGIN_METHOD_DISABLED = 10; + //@ShortText: "Token expired" + FAILURE_REASON_TOKEN_EXPIRED = 11; + //@ShortText: "Token revoked" + FAILURE_REASON_TOKEN_REVOKED = 12; + //@ShortText: "Token invaled" + FAILURE_REASON_TOKEN_INVALID = 13; + //@ShortText: "Session expired" + FAILURE_REASON_SESSION_EXPIRED = 14; + //@ShortText: "Session revoked" + FAILURE_REASON_SESSION_REVOKED = 15; + //@ShortText: "Certificate expired" + FAILURE_REASON_CERTIFICATE_EXPIRED = 16; + //@ShortText: "Certificate revoked" + FAILURE_REASON_CERTIFICATE_REVOKED = 17; + //@ShortText: "Certificate invalid" + FAILURE_REASON_CERTIFICATE_INVALID = 18; +} + +// LoginMethod +enum LoginMethod { + //@ShortText: "Unspecified" + LOGIN_METHOD_UNSPECIFIED = 0; + //@ShortText: "OIDC" + LOGIN_METHOD_OPEN_ID_CONNECT = 1; + //@ShortText: "SAML" + LOGIN_METHOD_SAML = 2; + //@ShortText: "SAML2" + LOGIN_METHOD_SAML2 = 3; + //@ShortText: "External" + LOGIN_METHOD_EXTERNAL = 4; + //@ShortText: "SPNego" + LOGIN_METHOD_SPNEGO = 5; + //@ShortText: "Password" + LOGIN_METHOD_PASSWORD = 6; + //@ShortText: "RFC Ticket" + LOGIN_METHOD_RFC_TICKET = 7; + //@ShortText: "SNC" + LOGIN_METHOD_SNC = 8; + //@ShortText: "Logon Ticket" + LOGIN_METHOD_LOGON_TICKET = 9; + //@ShortText: "User switch" + LOGIN_METHOD_USER_SWITCH = 10; + //@ShortText: "X.509" + LOGIN_METHOD_X509_CERTIFICATE = 11; + //@ShortText: "APC Session" + LOGIN_METHOD_APC_SESSION = 12; + //@ShortText: "Internal" + LOGIN_METHOD_INTERNAL = 13; + //@ShortText: "OAuth 2.0" + LOGIN_METHOD_OAUTH2 = 14; + //@ShortText: "Reentrance Ticket" + LOGIN_METHOD_REENTRANCE_TICKET = 15; + //@ShortText: Http security session" + LOGIN_METHOD_HTTP_SESSION = 16; + //@ShortText: "Assertion Ticket" + LOGIN_METHOD_ASSERTION_TICKET = 17; +} + +// LogoffType +enum LogoffType { + //@ShortText: "Unspecified" + LOGOFF_TYPE_UNSPECIFIED = 0; + //@ShortText: "Regular" + LOGOFF_TYPE_REGULAR = 1; + //@ShortText: "Forced" + LOGOFF_TYPE_FORCED = 2; +} + +// MaliciousBehavior +enum MaliciousBehavior { + //@ShortText: "Unspecified" + MALICIOUS_BEHAVIOR_UNSPECIFIED = 0; + //@ShortText: "Malicious parameter" + MALICIOUS_BEHAVIOR_PARAMETER_SEEN = 1; + //@ShortText: "Parameter not found" + MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND = 2; + //@ShortText: "Malicious parameter value" + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN = 3; + //@ShortText: "Parameter value modified" + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED = 4; +} + +// MfaType +enum MfaType { + //@ShortText: "Unspecified" + MFA_TYPE_UNSPECIFIED = 0; + //@ShortText: "None" + MFA_TYPE_NONE = 1; + //@ShortText: "RSA" + MFA_TYPE_RSA = 2; + //@ShortText: "TOTP" + MFA_TYPE_TOTP = 3; + //@ShortText: "WebAuthn" + MFA_TYPE_WEB_AUTHN = 4; +} + +// UserType +enum UserType { + //@ShortText: "Unspecified" + USER_TYPE_UNSPECIFIED = 0; + //@ShortText: "Business User" + USER_TYPE_BUSINESS_USER = 1; + //@ShortText: "Technical User" + USER_TYPE_TECHNICAL_USER = 2; +} + +// DataExportChannelType +enum DataExportChannelType { + //@ShortText: "Unspecified" + DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED = 0; + //@ShortText: "Download" + DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD = 1; + //@ShortText: "API" + DATA_EXPORT_CHANNEL_TYPE_API_ACCESS = 2; + //@ShortText: "Printer" + DATA_EXPORT_CHANNEL_TYPE_PRINTER = 3; +} + +//Categories for grouping Events +enum EventCategoryCode { + //@ShortText: "Security related events" + EVENT_CATEGORY_CODE_SEC_UNSPECIFIED = 0; + //@ShortText: "Identity Management & Access Management" + EVENT_CATEGORY_CODE_IAM = 1; + //@ShortText: "Configuration Changes" + EVENT_CATEGORY_CODE_CFG = 2; + //@ShortText: "Sensitive Personal Data Logging" + EVENT_CATEGORY_CODE_DPP = 3; + //@ShortText: "Read Access Logging" + EVENT_CATEGORY_CODE_RAL = 4; +} + +// CMK Actions +enum CMKAction { + //@ShortText: "Unspecified" + CMK_ACTION_UNSPECIFIED = 0; + //@ShortText: "Customer Managed Key Onboarding" + CMK_ACTION_ONBOARD = 1; + //@ShortText: "Tenant blocked" + CMK_ACTION_BLOCK = 2; + //@ShortText: "Tenant shutdown" + CMK_ACTION_SHUTDOWN = 3; + //@ShortText: "Fallback to SAP Managed Key" + CMK_ACTION_CSEKFALLBACK = 4; + //@ShortText: "Tenant restored" + CMK_ACTION_RESTORE = 5; + //@ShortText: "KMS System onboarded" + CMK_ACTION_KMS_ONBOARD = 6; + //@ShortText: "KMS System offboarded" + CMK_ACTION_KMS_OFFBOARD = 7; +} + +// Key Types within key operations +enum KeyType { + //@ShortText: "Unspecified" + KEY_TYPE_UNSPECIFIED = 0; + //@ShortText: "System Key" + KEY_TYPE_SYSTEM = 1; + //@ShortText: "Service Key" + KEY_TYPE_SERVICE = 2; + //@ShortText: "Data Encryption Key" + KEY_TYPE_DATA = 3; + //@ShortText: "Key Encryption Key" + KEY_TYPE_KEK = 4; +} 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 new file mode 100644 index 0000000..a4bc211 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/proto/sap/auditlog/auditevent/v2/auditevent.proto @@ -0,0 +1,1766 @@ +syntax = "proto3"; +package sap.auditlog.auditevent.v2; + +import "buf/validate/validate.proto"; +import "google/protobuf/struct.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "sap.com/auditlog/auditevent"; + +// 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 + 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 app_id = 5; + //tenant ID of the source + string tenant_id = 6; + string user_session_context_id = 7; + map app_context = 8; +} + +/* AuditlogClear + * @EventShortText: "Audit Log has been deleted" + * @EventCode: "AE-0001" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Audit Log has been deleted (event count: ${number_of_events})" + * @EventDocumentation: "The Audit log has been deleted and is no longer available. The number of events has been deleted." + */ +message AuditlogClear { + Common common = 1; + int32 number_of_events = 2; +} + +/* AuditlogDisable + * @EventShortText: "Audit Log has been disabled" + * @EventCode: "AE-0002" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Audit Log has been disabled" + * @EventDocumentation: "The Audit log has been disabled" + */ +message AuditlogDisable { + Common common = 1; +} + +/* AuditlogEnable + * @EventShortText: "Audit Log has been enabled" + * @EventCode: "AE-0003" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Audit Log has been enabled" + * @EventDocumentation: "The Audit log has been enabled" + */ +message AuditlogEnable { + Common common = 1; +} + +/* AuthnPrivilegeToGroupAdd + * @EventShortText: "An additional privilege has been added to a group" + * @EventCode: "AE-0004" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been added to group ${group}" + * @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 + ]; + string object_type = 4; + string object_id = 5; +} + +/* AuthnPrivilegeToGroupDelete + * @EventShortText: "An 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 + ]; + string object_type = 4; + string object_id = 5; +} + +/* AuthnPrivilegeToRoleAdd + * @EventShortText: "An 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 + ]; + string object_type = 4; + string object_id = 5; +} + +/* AuthnPrivilegeToRoleDelete + * @EventShortText: "An 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 + ]; + string object_type = 4; + string object_id = 5; +} + +/* AuthnPrivilegeToUserAdd + * @EventShortText: "A privilege has been added to a user" + * @EventCode: "AE-0008" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Privilege ${privilege} (Type: ${object_type}, ID: ${object_id}) has been added to user ${user} (User Type: ${user_type}) " + * @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 + ]; + string object_type = 4; + string object_id = 5; + UserType user_type = 6; +} + +/* AuthnPrivilegeToUserDelete + * @EventShortText: "An 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 + ]; + string object_type = 4; + string object_id = 5; + UserType user_type = 6; +} + +/* AuthnRoleToGroupAdd + * @EventShortText: "A user group has been added to a new role." + * @EventCode: "AE-0010" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been added to group ${group}" + * @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 + ]; +} + +/* AuthnRoleToGroupDelete + * @EventShortText: "A user group role has been deleted" + * @EventCode: "AE-0011" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been deleted from group ${group}" + * @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 + ]; +} + +/* AuthnRoleToUserAdd + * @EventShortText: "A user has been added a role." + * @EventCode: "AE-0012" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been added to user ${user} (User Type: ${user_type})" + * @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 + ]; + UserType user_type = 4; +} + +/* AuthnRoleToUserDelete + * @EventShortText: "A user’s role has been deleted" + * @EventCode: "AE-0013" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "Role ${role} has been deleted from user ${user} (User Type: ${user_type})" + * @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 + ]; + UserType user_type = 4; +} + +/* AuthnUserToGroupAdd + * @EventShortText: "The user has been added to a group." + * @EventCode: "AE-0014" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User ${user} (User Type: ${user_type}) has been added to group ${group}" + * @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 + ]; + UserType user_type = 4; +} + +/* AuthnUserToGroupDelete + * @EventShortText: "The user has been deleted from the user group." + * @EventCode: "AE-0015" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User ${user} (User Type: ${user_type}) has been deleted from group ${group}" + * @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 + + ]; + UserType user_type = 4; +} + +/* ConfigurationAdd + * @EventShortText: "A new configuration has been added" + * @EventCode: "AE-0016" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "A new configuration has been created for the property named ${property_name} (Type: ${object_type}, ID: ${object_id}). The value associated with this property is ${value}" + * @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]; + string object_id = 5; +} + +/* ConfigurationChange + * @EventShortText: "An existing configuration has been changed" + * @EventCode: "AE-0017" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "An existing configuration has been modified for the property named ${property_name} (Type: ${object_type}, ID: ${object_id}). The value associated with this property has been changed from ${old_value} to ${new_value}" + * @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]; + string object_id = 6; +} + +/* ConfigurationDelete + * @EventShortText: "A configuration has been deleted" + * @EventCode: "AE-0018" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "A configuration has been deleted for the property named ${property_name} (Type: ${object_type}, ID: ${object_id}). The value associated with this property was ${value}" + * @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]; + string object_id = 5; +} + +/* CredentialCreate + * @EventShortText: "A credential has been created" + * @EventCode: "AE-0019" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been successfully created" + * @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 ; +} + +/* CredentialDelete + * @EventShortText: "A credential has been deleted" + * @EventCode: "AE-0020" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been deleted" + * @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 ; +} + +/* CredentialExpiration + * @EventShortText: "A credential has been expired" + * @EventCode: "AE-0021" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "A credential with ID ${credential_id} of type ${credential_type} has been expired (Expiration date: ${expiration_date})" + * @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 ; + google.protobuf.Timestamp expiration_date = 4; +} + +/* CredentialRevokation + * @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})" + * @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 ; + google.protobuf.Timestamp revokation_date = 4; +} + +/* DataModelChange + * @EventShortText: "Data Model has been changed" + * @EventCode: "AE-0023" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Property named ${property_name} of data Model with ID ${model_id} changed. The value associated with this property has been changed from ${old_value} to ${new_value}" + * @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 + + ]; +} + +/* DataModelCreate + * @EventShortText: "Data Model has been created" + * @EventCode: "AE-0024" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Data Model with ID ${model_id} has been created" + * @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 + + ]; +} + +/* DataModelDelete + * @EventShortText: "Data Model has been deleted" + * @EventCode: "AE-0025" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Data Model with ID ${model_id} has been deleted" + * @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 + + ]; +} + +/* DataAccess + * @EventShortText: "Security-relevant data has been accessed" + * @EventCode: "AE-0026" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} of Object Type ${object_type} with Object ID ${object_id} has been accessed via Channel ID ${channel_id} (Channel Type ${channel_type}). The read value is ${value}" + * @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 + + ]; + google.protobuf.Value value = 7; + string attachment_type = 8 [deprecated = true]; + string attachment_id = 9 [deprecated = true]; +} + +/* DataCreate + * @EventShortText: "Security-relevant data has been created" + * @EventCode: "AE-0027" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} with Object ID ${object_id} of Object Type ${object_type} with value ${value} has been created" + * @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 + + ]; + google.protobuf.Value value = 5; +} + +/* DataDelete + * @EventShortText: "Security-relevant data has been deleted" + * @EventCode: "AE-0028" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} of Object ID ${object_id} (Object Type ${object_type}) with value ${value} has been deleted" + * @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 + + ]; + google.protobuf.Value value = 5; +} + +/* DataModification + * @EventShortText: "Security-relevant data has been modified" + * @EventCode: "AE-0029" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "The attribute ${attribute} of Object ID ${object_id} (Object Type ${object_type}) has been changed from value ${old_value} to new value ${new_value}" + * @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 + + ]; + google.protobuf.Value new_value = 5; + google.protobuf.Value old_value = 6; +} + +/* DataExport + * @EventShortText: "Security-relevant data has been exported" + * @EventCode: "AE-0030" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_RAL" + * @EventMessageText: "Object ID ${object_id} (Object Type ${object_type}) has been exported via Channel ID ${channel_id}. Destination URI: ${destination_uri}" + * @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 + + ]; +} + +/* DppDataAccess + * @EventShortText: "DPP relevant data has been accessed" + * @EventCode: "AE-0031" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been accessed. Object ID ${object_id} (Object Type ${object_type}) has been accessed via Channel ID ${channel_id}. The value associated with attribute ${attribute} was ${value}" + * @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 + + ]; + google.protobuf.Value value = 9; + string attachment_type = 10 [deprecated = true]; + string attachment_id = 11 [deprecated = true]; +} + +/* DppDataCreate + * @EventShortText: "DPP relevant data has been created" + * @EventCode: "AE-0032" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been created. Object ID ${object_id} (Object Type ${object_type}) has been created. The value associated with attribute ${attribute} was ${value}" + * @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 + + ]; + google.protobuf.Value value = 7; +} + +/* DppDataDelete + * @EventShortText: "DPP relevant data has been deleted" + * @EventCode: "AE-0033" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been deleted. Object ID ${object_id} (Object Type ${object_type}) has been deleted. The value associated with attribute ${attribute} was ${value}" + * @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 + + ]; + google.protobuf.Value value = 7; +} + +/* DppDataModification + * @EventShortText: "DPP relevant data has been modified" + * @EventCode: "AE-0034" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_DPP" + * @EventMessageText: "Data Subject ${data_subject_id} of Data Subject Type ${data_subject_type} has been modified. Object ID ${object_id} (Object Type ${object_type}) has been modified. The value associated with attribute ${attribute} was changed from ${old_value} to ${new_value}" + * @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 + + ]; + google.protobuf.Value new_value = 7; + google.protobuf.Value old_value = 8; +} + +/* JobChange + * @EventShortText: "A property of job has been changed" + * @EventCode: "AE-0035" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The property named ${property_name} of Job ${job_id} has been updated from its previous value of ${old_value} to ${new_value}" + * @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 + + ]; +} + +/* JobCreate + * @EventShortText: "A job has been created" + * @EventCode: "AE-0036" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Job with ID ${job_id} has been created" + * @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 + + ]; +} + +/* JobDelete + * @EventShortText: "A job has been deleted" + * @EventCode: "AE-0037" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "Job with ID ${job_id} has been deleted" + * @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 + + ]; +} + +/* JobStatusChange + * @EventShortText: "A job status has been changed" + * @EventCode: "AE-0038" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The job status of Job ${job_id} has modified the property named ${property_name}. Its previous value was ${old_value}, and it has now been updated to ${new_value}" + * @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 + + ]; +} + +/* MaliciousRequestDetected + * @EventShortText: "The server has received a request that it seems malicious" + * @EventCode: "AE-0039" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Malicious behavior ${behavior} for parameter ${parameter} detected. The received value was ${received_value}, but the expected value was ${expected_value}" + * @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 + + ]; + string expected_value = 3; + string received_value = 4; + MaliciousBehavior behavior = 5 ; +} + +/* PasswordChange + * @EventShortText: "The password of a user has been changed" + * @EventCode: "AE-0040" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The password of user ${user_id} has been changed" + * @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 + + ]; +} + +/* PasswordExpiration + * @EventShortText: "The password of a user has expired" + * @EventCode: "AE-0041" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The password of user ${user_id} has expired" + * @EventDocumentation: "Password of the mentioned user has expired." + */ +message PasswordExpiration { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; +} + +/* PasswordReset + * @EventShortText: "The user’s password has been reset" + * @EventCode: "AE-0042" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The password of user ${user_id} has been reset" + * @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 + + ]; +} + +/* TenantModification + * @EventShortText: "A property of a tenant was modified" + * @EventCode: "AE-0043" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The property named ${property_name} has been updated for the tenant with ID ${tenant_id}. The value has been changed from ${old_value} to ${new_value}" + * @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 + + ]; +} + +/* TenantOffboarding + * @EventShortText: "A tenant was offboarded" + * @EventCode: "AE-0044" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The tenant with ID ${tenant_id} has been terminated" + * @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 + + ]; +} + +/* TenantOnboarding + * @EventShortText: "A tenant was onboarded" + * @EventCode: "AE-0045" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_CFG" + * @EventMessageText: "The tenant with ID ${tenant_id} has been created" + * @EventDocumentation: "The tenant has been created" + */ +message TenantOnboarding { + Common common = 1 ; + string tenant_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; +} + +/* UnauthenticatedRequest + * @EventShortText: "Unauthenticated request has been performed" + * @EventCode: "AE-0046" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "An unauthenticated request has been performed" + * @EventDocumentation: "An unauthenticated request (in the sense of an HTTP status code 401) has been performed" + */ +message UnauthenticatedRequest { + Common common = 1 ; +} + +/* UnauthorizedRequest + * @EventShortText: "Unauthenticated 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" + */ +message UnauthorizedRequest { + Common common = 1 ; + string unauthorized_type = 2; +} + +/* UserActivate + * @EventShortText: "User has been activated" + * @EventCode: "AE-0048" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been activated" + * @EventDocumentation: "A specific user has been activated" + */ +message UserActivate { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserBlock + * @EventShortText: "User has been blocked" + * @EventCode: "AE-0049" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been blocked" + * @EventDocumentation: "A specific user has been blocked" + */ +message UserBlock { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserCreate + * @EventShortText: "User has been created" + * @EventCode: "AE-0050" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been created" + * @EventDocumentation: "A specific user has been created" + */ +message UserCreate { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserDataModification + * @EventShortText: "User's master data has been modified" + * @EventCode: "AE-0051" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "The property named ${property_name} of user with ID ${user_id} (User Type: ${user_type}) has been updated from its previous value of ${old_value} to ${new_value}" + * @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 + + ]; + UserType user_type = 6; +} + +/* UserDelete + * @EventShortText: "User has been deleted" + * @EventCode: "AE-0052" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been deleted" + * @EventDocumentation: "A specific user has been deleted" + */ +message UserDelete { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserImpersonationStart + * @EventShortText: "User impersonation started" + * @EventCode: "AE-0053" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User with ID ${user_initiator_id} (User Type:${user_initiator_type}) started impersonation for user with ID ${user_impersonated_id} (User Type:${user_impersonated_type}). Context ID: ${context}" + * @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 + + ]; + UserType user_initiator_type = 3; + string user_impersonated_id = 4 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_impersonated_type = 5; + string context = 6 [(buf.validate.field).string.min_len = 1]; +} + +/* UserImpersonationFinish + * @EventShortText: "User impersonation finished" + * @EventCode: "AE-0054" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User with ID ${user_initiator_id} (User Type:${user_initiator_type}) finished impersonation for user with ID ${user_impersonated_id} (User Type:${user_impersonated_type}).Context ID: ${context}" + * @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 + + ]; + UserType user_initiator_type = 3; + string user_impersonated_id = 4 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_impersonated_type = 5; + string context = 6 [(buf.validate.field).string.min_len = 1]; +} + +/* UserLock + * @EventShortText: "User has been locked" + * @EventCode: "AE-0055" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been locked" + * @EventDocumentation: "A specific user has been locked" + */ +message UserLock { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserUnlock + * @EventShortText: "User has been unlocked" + * @EventCode: "AE-0056" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_IAM" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been unlocked" + * @EventDocumentation: "A specific user has been unlocked" + */ +message UserUnlock { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserVerify + * @EventShortText: "User has been verified" + * @EventCode: "AE-0057" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User with ID ${user_id} (User Type: ${user_type}) has been verified" + * @EventDocumentation: "A specific user has been verified." + */ +message UserVerify { + Common common = 1 ; + string user_id = 2 [ + (buf.validate.field).string.min_len = 1 + + ]; + UserType user_type = 3; +} + +/* UserLoginFailure + * @EventShortText: "User login failed" + * @EventCode: "AE-0058" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User failed (reason: ${failure_reason}) to login via ${method} (User Type: ${user_type}, Protocol: ${login_protocol}, Admin: ${is_admin}, Multi-Factor Type: ${mfa_type}" + * @EventDocumentation: "The user could not be logged on to the system" + */ +message UserLoginFailure { + Common common = 1 ; + FailureReason failure_reason = 2 ; + LoginMethod method = 3 ; + bool is_admin = 4; + MfaType mfa_type = 5; + UserType user_type = 6; + LoginProtocol login_protocol = 7; +} + +/* UserLoginSuccess + * @EventShortText: "User login was successful" + * @EventCode: "AE-0059" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User logged on successfully (User Type: ${user_type}, Method: ${method}, Protocol: ${login_protocol}, Admin: ${is_admin}, Multi-Factor Type: ${mfa_type} " + * @EventDocumentation: "The user has logged onto the system successfully." + */ +message UserLoginSuccess { + Common common = 1 ; + bool is_admin = 2; + LoginMethod method = 3 ; + MfaType mfa_type = 4 ; + UserType user_type = 5 ; + LoginProtocol login_protocol = 6; +} + +/* UserLogoff + * @EventShortText: "User logged off" + * @EventCode: "AE-0060" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "User logged off (Type: ${logoff_type}, Protocol: ${login_protocol})" + * @EventDocumentation: "The logged off." + */ +message UserLogoff { + Common common = 1 ; + LogoffType logoff_type = 2 ; + LoginProtocol login_protocol = 3; +} + +/* ZzzCustomEvent + * @EventShortText: "Custom Event" + * @EventCode: "AE-0061" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${custom}" + * @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 ; +} + +/* CMKOnboarding + * @EventShortText: "System has been onboarded to CMK" + * @EventCode: "AE-0062" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "System ${system_id} has been onboarded to Customer Managed Key ${cmk_id} in KMS Tenant ${tenant_id}" + * @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 ; +} + +/* CMKOffboarding + * @EventShortText: "System has been offboarded from CMK" + * @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." + */ +message CMKOffboarding { + Common common = 1 ; + string system_id = 2 ; + string cmk_id = 3 ; +} + +/* 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." + */ +message CMKSwitch { + Common common = 1 ; + string system_id = 2 ; + string cmk_id_old = 3 ; + string cmk_id_new = 4 ; +} + +/* CMKTenantModification + * @EventShortText: "CMK Tenant modification" + * @EventCode: "AE-0065" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Tenant with ID ${tenant_id} (Customer Tenant Context ID: ${system_id}) has been modified. Action = ${cmk_action} for Customer Managed Key ${cmk_id}" + * @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 ; +} + +/* CMKCreate + * @EventShortText: "CMK has been created" + * @EventCode: "AE-0066" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been created" + * @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 ; +} + +/* CMKDelete + * @EventShortText: "CMK has been deleted" + * @EventCode: "AE-0067" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been deleted" + * @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 ; +} + +/* CMKRestore + * @EventShortText: "CMK has been restored" + * @EventCode: "AE-0068" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been restored" + * @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 ; +} + +/* CMKDisable + * @EventShortText: "CMK has been disabled" + * @EventCode: "AE-0069" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been disabled" + * @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 ; +} + +/* CMKEnable + * @EventShortText: "CMK has been enabled" + * @EventCode: "AE-0070" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been enabled" + * @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 ; +} + +/* CMKRotate + * @EventShortText: "CMK has been rotated" + * @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)." + */ +message CMKRotate { + Common common = 1 ; + string cmk_id = 2 ; +} + +/* KeyCreate + * @EventShortText: "Key has been created" + * @EventCode: "AE-0072" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been created (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyDelete + * @EventShortText: "Key has been deleted" + * @EventCode: "AE-0073" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been deleted (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyRestore + * @EventShortText: "Key has been restored" + * @EventCode: "AE-0074" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been restored (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyPurge + * @EventShortText: "Key has been purged" + * @EventCode: "AE-0075" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been purged (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyRotate + * @EventShortText: "Key has been rotated" + * @EventCode: "AE-0076" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been rotated (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyEnable + * @EventShortText: "Key has been enabled" + * @EventCode: "AE-0077" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been enabled (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyDisable + * @EventShortText: "Key has been disabled" + * @EventCode: "AE-0078" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been disabled (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeySuspend + * @EventShortText: "Key has been suspended" + * @EventCode: "AE-0079" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} has been suspended (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* KeyOnboardKeyChain + * @EventShortText: "Key has been onboarded to keychain" + * @EventCode: "AE-0080" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "${key_type} Key ${key_id} onboarded to keychain (System: ${system_id}, Customer Managed Key: ${cmk_id})" + * @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 ; +} + +/* CMKDrop + * @EventShortText: "CMK has been dropped" + * @EventCode: "AE-0081" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Metadata of Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} have been dropped" + * @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 ; +} + +/* CMKSuspend + * @EventShortText: "CMK has been suspended" + * @EventCode: "AE-0082" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been suspended" + * @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 ; +} + +/* VirusFinding + * @EventShortText: "Virus detected" + * @EventCode: "AE-0083" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Virus (${virus_name}) detected in file ${file_name} (Channel:${virus_channel})" + * @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 ; +} + +/* CMKUnavailable + * @EventShortText: "CMK has become unavailable" + * @EventCode: "AE-0084" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has become unavailable" + * @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 ; +} + +/* CMKAvailable + * @EventShortText: "CMK has become available" + * @EventCode: "AE-0085" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has become available" + * @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 ; +} + +/* CMKDetach + * @EventShortText: "CMK has been detached" + * @EventCode: "AE-0086" + * @EventCategoryCode: "EVENT_CATEGORY_CODE_SEC_UNSPECIFIED" + * @EventMessageText: "Customer Managed Key ${cmk_id} in KMS System ${kms_system_id} has been detached from System ${system_id}" + * @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 ; +} + +enum CredentialType { + //@ShortText: "Unspecified" + CREDENTIAL_TYPE_UNSPECIFIED = 0; + //@ShortText: "X.509" + CREDENTIAL_TYPE_X509_CERTIFICATE = 1; + //@ShortText: "Key" + CREDENTIAL_TYPE_KEY = 2; + //@ShortText: "Secret" + CREDENTIAL_TYPE_SECRET = 3; +} + +// FailureReason +enum FailureReason { + //@ShortText: "Unspecified Reason" + FAILURE_REASON_UNSPECIFIED = 0; + //@ShortText: "Wrong Password" + FAILURE_REASON_PASSWORD = 1; + //@ShortText: "Multi-Factor Authentication failed" + FAILURE_REASON_MFA_FAILED = 2; + //@ShortText: "User not found" + FAILURE_REASON_USER_NOT_FOUND = 3; + //@ShortText: "User locked" + FAILURE_REASON_USER_LOCKED = 4; + //@ShortText: "User blocked" + FAILURE_REASON_USER_BLOCKED = 5; + //@ShortText: "User not verified + FAILURE_REASON_USER_UNVERIFIED = 6; + //@ShortText: "User expired" + FAILURE_REASON_USER_EXPIRED = 7; + //@ShortText: "User invalid" + FAILURE_REASON_USER_INVALID = 8; + //@ShortText: "Insecure connection" + FAILURE_REASON_INSECURE_CONNECTION = 9; + //@ShortText: "Login method disabled" + FAILURE_REASON_LOGIN_METHOD_DISABLED = 10; + //@ShortText: "Token expired" + FAILURE_REASON_TOKEN_EXPIRED = 11; + //@ShortText: "Token revoked" + FAILURE_REASON_TOKEN_REVOKED = 12; + //@ShortText: "Token invalid" + FAILURE_REASON_TOKEN_INVALID = 13; + //@ShortText: "Session expired" + FAILURE_REASON_SESSION_EXPIRED = 14; + //@ShortText: "Session revoked" + FAILURE_REASON_SESSION_REVOKED = 15; + //@ShortText: "Certificate expired" + FAILURE_REASON_CERTIFICATE_EXPIRED = 16; + //@ShortText: "Certificate revoked" + FAILURE_REASON_CERTIFICATE_REVOKED = 17; + //@ShortText: "Certificate invalid" + FAILURE_REASON_CERTIFICATE_INVALID = 18; + //@ShortText: "User geo blocked" + FAILURE_REASON_GEOBLOCK = 19; + //@ShortText: "Multi-Factor-Authentication requested" + FAILURE_REASON_MFA_REQUESTED = 20; + //@ShortText: "Credential requested" + FAILURE_REASON_CRED_REQUESTED = 21; +} + +// LoginMethod +enum LoginMethod { + //@ShortText: "Unspecified" + LOGIN_METHOD_UNSPECIFIED = 0; + //@ShortText: "OIDC" + LOGIN_METHOD_OPEN_ID_CONNECT = 1; + //@ShortText: "SAML" + LOGIN_METHOD_SAML = 2; + //@ShortText: "SAML2" + LOGIN_METHOD_SAML2 = 3; + //@ShortText: "External" + LOGIN_METHOD_EXTERNAL = 4; + //@ShortText: "SPNego" + LOGIN_METHOD_SPNEGO = 5; + //@ShortText: "Password" + LOGIN_METHOD_PASSWORD = 6; + //@ShortText: "RFC Ticket" + LOGIN_METHOD_RFC_TICKET = 7; + //@ShortText: "SNC" + LOGIN_METHOD_SNC = 8; + //@ShortText: "Logon Ticket" + LOGIN_METHOD_LOGON_TICKET = 9; + //@ShortText: "User switch" + LOGIN_METHOD_USER_SWITCH = 10; + //@ShortText: "X.509" + LOGIN_METHOD_X509_CERTIFICATE = 11; + //@ShortText: "APC Session" + LOGIN_METHOD_APC_SESSION = 12; + //@ShortText: "Internal" + LOGIN_METHOD_INTERNAL = 13; + //@ShortText: "OAuth 2.0" + LOGIN_METHOD_OAUTH2 = 14; + //@ShortText: "Reentrance Ticket" + LOGIN_METHOD_REENTRANCE_TICKET = 15; + //@ShortText: Http security session" + LOGIN_METHOD_HTTP_SESSION = 16; + //@ShortText: "Assertion Ticket" + LOGIN_METHOD_ASSERTION_TICKET = 17; + //@ShortText: "Remember me cookie" + LOGIN_METHOD_REMCOOKIE = 18; + //@ShortText: "Biometric Authentication" + LOGIN_METHOD_BIOMETRIC = 19; + //@ShortText: "Passcode Values" + LOGIN_METHOD_PASSCODE = 20; + //@ShortText: "Mobile SSO Passcode" + LOGIN_METHOD_MOBSSO = 21; + //@ShortText: "Email Token" + LOGIN_METHOD_EMAIL_TOKEN = 22; + //@ShortText: "Bearer Token" + LOGIN_METHOD_BEARER_TOKEN = 23; +} + +// LogoffType +enum LogoffType { + //@ShortText: "Unspecified" + LOGOFF_TYPE_UNSPECIFIED = 0; + //@ShortText: "Regular" + LOGOFF_TYPE_REGULAR = 1; + //@ShortText: "Forced" + LOGOFF_TYPE_FORCED = 2; +} + +// MaliciousBehavior +enum MaliciousBehavior { + //@ShortText: "Unspecified" + MALICIOUS_BEHAVIOR_UNSPECIFIED = 0; + //@ShortText: "Malicious parameter" + MALICIOUS_BEHAVIOR_PARAMETER_SEEN = 1; + //@ShortText: "Parameter not found" + MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND = 2; + //@ShortText: "Malicious parameter value" + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN = 3; + //@ShortText: "Parameter value modified" + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED = 4; +} + +// MfaType +enum MfaType { + //@ShortText: "Unspecified" + MFA_TYPE_UNSPECIFIED = 0; + //@ShortText: "None" + MFA_TYPE_NONE = 1; + //@ShortText: "RSA" + MFA_TYPE_RSA = 2; + //@ShortText: "TOTP" + MFA_TYPE_TOTP = 3; + //@ShortText: "WebAuthn" + MFA_TYPE_WEB_AUTHN = 4; + //@ShortText: "SMS" + MFA_TYPE_SMS = 5; + //@ShortText: "E-Mail" + MFA_TYPE_EMAIL = 6; +} + +// UserType +enum UserType { + //@ShortText: "Unspecified" + USER_TYPE_UNSPECIFIED = 0; + //@ShortText: "Business User" + USER_TYPE_BUSINESS_USER = 1; + //@ShortText: "Technical User" + USER_TYPE_TECHNICAL_USER = 2; +} + +// DataExportChannelType +enum DataExportChannelType { + //@ShortText: "Unspecified" + DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED = 0; + //@ShortText: "Download" + DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD = 1; + //@ShortText: "API" + DATA_EXPORT_CHANNEL_TYPE_API_ACCESS = 2; + //@ShortText: "Printer" + DATA_EXPORT_CHANNEL_TYPE_PRINTER = 3; +} + +//Categories for grouping Events +enum EventCategoryCode { + //@ShortText: "Security related events" + EVENT_CATEGORY_CODE_SEC_UNSPECIFIED = 0; + //@ShortText: "Identity Management & Access Management" + EVENT_CATEGORY_CODE_IAM = 1; + //@ShortText: "Configuration Changes" + EVENT_CATEGORY_CODE_CFG = 2; + //@ShortText: "Sensitive Personal Data Logging" + EVENT_CATEGORY_CODE_DPP = 3; + //@ShortText: "Read Access Logging" + EVENT_CATEGORY_CODE_RAL = 4; +} + +// CMK Actions +enum CMKAction { + //@ShortText: "Unspecified" + CMK_ACTION_UNSPECIFIED = 0; + //@ShortText: "Customer Managed Key Onboarding" + CMK_ACTION_ONBOARD = 1; + //@ShortText: "Tenant blocked" + CMK_ACTION_BLOCK = 2; + //@ShortText: "Tenant shutdown" + CMK_ACTION_SHUTDOWN = 3; + //@ShortText: "Fallback to SAP Managed Key" + CMK_ACTION_CSEKFALLBACK = 4; + //@ShortText: "Tenant restored" + CMK_ACTION_RESTORE = 5; + //@ShortText: "KMS System onboarded" + CMK_ACTION_KMS_ONBOARD = 6; + //@ShortText: "KMS System offboarded" + CMK_ACTION_KMS_OFFBOARD = 7; +} + +// Key Types within key operations +enum KeyType { + //@ShortText: "Unspecified" + KEY_TYPE_UNSPECIFIED = 0; + //@ShortText: "System Key" + KEY_TYPE_SYSTEM = 1; + //@ShortText: "Service Key" + KEY_TYPE_SERVICE = 2; + //@ShortText: "Data Encryption Key" + KEY_TYPE_DATA = 3; + //@ShortText: "Key Encryption Key" + KEY_TYPE_KEK = 4; +} + +// Virus channels +enum VirusChannel { + //@ShortText: "Unknown Channel" + VIRUS_CHANNEL_UNSPECIFIED = 0; + //@ShortText: "File has been uploaded" + VIRUS_CHANNEL_UPLOAD = 1; + //@ShortText: "Directory/Table scan" + VIRUS_CHANNEL_SCAN = 2; +} + +//Login Protocol +enum LoginProtocol { + //@ShortText: "Unspecified" + LOGIN_PROTOCOL_UNSPECIFIED = 0; + //@ShortText: "SAML 2.0" + LOGIN_PROTOCOL_SAML2 = 1; + //@ShortText: "Open ID Connect" + LOGIN_PROTOCOL_OIDC = 2; + //@ShortText: "HTTP" + LOGIN_PROTOCOL_HTTP = 3; +} diff --git a/src/buf/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/py.typed similarity index 100% rename from src/buf/__init__.py rename to src/sap_cloud_sdk/core/auditlog_ng/py.typed From 4d8a150310c4aaa0dc1fc73dd27fd1deb4c7a5b0 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 14:25:18 +0300 Subject: [PATCH 03/20] Remove generated files --- .github/workflows/proto-verify.yaml | 29 + src/buf/validate/__init__.py | 0 src/buf/validate/validate_pb2.py | 465 ------ src/buf/validate/validate_pb2.pyi | 650 -------- .../core/auditlog_ng/gen/__init__.py | 0 .../core/auditlog_ng/gen/protoc/__init__.py | 0 .../auditlog_ng/gen/protoc/gen/__init__.py | 0 .../gen/protoc/gen/jsonschema/__init__.py | 0 .../gen/protoc/gen/jsonschema/v1/__init__.py | 0 .../protoc/gen/jsonschema/v1/options_pb2.py | 38 - .../protoc/gen/jsonschema/v1/options_pb2.pyi | 22 - .../core/auditlog_ng/gen/sap/__init__.py | 0 .../auditlog_ng/gen/sap/auditlog/__init__.py | 0 .../gen/sap/auditlog/auditevent/__init__.py | 0 .../sap/auditlog/auditevent/v1/__init__.py | 0 .../auditlog/auditevent/v1/auditevent_pb2.py | 641 -------- .../auditlog/auditevent/v1/auditevent_pb2.pyi | 1093 -------------- .../sap/auditlog/auditevent/v2/__init__.py | 0 .../auditlog/auditevent/v2/auditevent_pb2.py | 464 ------ .../auditlog/auditevent/v2/auditevent_pb2.pyi | 1319 ----------------- 20 files changed, 29 insertions(+), 4692 deletions(-) create mode 100644 .github/workflows/proto-verify.yaml delete mode 100644 src/buf/validate/__init__.py delete mode 100644 src/buf/validate/validate_pb2.py delete mode 100644 src/buf/validate/validate_pb2.pyi delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi diff --git a/.github/workflows/proto-verify.yaml b/.github/workflows/proto-verify.yaml new file mode 100644 index 0000000..44b6955 --- /dev/null +++ b/.github/workflows/proto-verify.yaml @@ -0,0 +1,29 @@ +name: Proto generation check + +on: + pull_request: + branches: + - main + +jobs: + make-proto: + name: Run make proto + runs-on: ${{ contains(github.server_url, 'github.com') && 'ubuntu-latest' || fromJSON('["self-hosted"]') }} + + steps: + - name: Check out repository + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Install buf + uses: bufbuild/buf-setup-action@v1 + + - name: Verify buf + run: buf --version + + - name: Run make proto + run: make proto \ No newline at end of file diff --git a/src/buf/validate/__init__.py b/src/buf/validate/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/buf/validate/validate_pb2.py b/src/buf/validate/validate_pb2.py deleted file mode 100644 index 3a2a360..0000000 --- a/src/buf/validate/validate_pb2.py +++ /dev/null @@ -1,465 +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\"\x90\x18\n\nFloatRules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42t\xc2Hq\no\n\x0b\x66loat.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa3\x01\n\x02lt\x18\x02 \x01(\x02\x42\x90\x01\xc2H\x8c\x01\n\x89\x01\n\x08\x66loat.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb4\x01\n\x03lte\x18\x03 \x01(\x02\x42\x9f\x01\xc2H\x9b\x01\n\x98\x01\n\tfloat.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf3\x07\n\x02gt\x18\x04 \x01(\x02\x42\xe0\x07\xc2H\xdc\x07\n\x8d\x01\n\x08\x66loat.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc3\x01\n\x0b\x66loat.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd3\x01\n\x0c\x66loat.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xdd\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xbf\x08\n\x03gte\x18\x05 \x01(\x02\x42\xaa\x08\xc2H\xa6\x08\n\x9b\x01\n\tfloat.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd2\x01\n\x0c\x66loat.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe2\x01\n\rfloat.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xec\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x02\x42s\xc2Hp\nn\n\x08\x66loat.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x02\x42\x66\xc2Hc\na\n\x0c\x66loat.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12}\n\x06\x66inite\x18\x08 \x01(\x08\x42\x65\xc2Hb\n`\n\x0c\x66loat.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value 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\"\xa2\x18\n\x0b\x44oubleRules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42u\xc2Hr\np\n\x0c\x64ouble.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa4\x01\n\x02lt\x18\x02 \x01(\x01\x42\x91\x01\xc2H\x8d\x01\n\x8a\x01\n\tdouble.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb5\x01\n\x03lte\x18\x03 \x01(\x01\x42\xa0\x01\xc2H\x9c\x01\n\x99\x01\n\ndouble.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf8\x07\n\x02gt\x18\x04 \x01(\x01\x42\xe5\x07\xc2H\xe1\x07\n\x8e\x01\n\tdouble.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc4\x01\n\x0c\x64ouble.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd4\x01\n\rdouble.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xde\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xc4\x08\n\x03gte\x18\x05 \x01(\x01\x42\xaf\x08\xc2H\xab\x08\n\x9c\x01\n\ndouble.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd3\x01\n\rdouble.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe3\x01\n\x0e\x64ouble.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xed\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x01\x42t\xc2Hq\no\n\tdouble.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x01\x42g\xc2Hd\nb\n\rdouble.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12~\n\x06\x66inite\x18\x08 \x01(\x08\x42\x66\xc2Hc\na\n\rdouble.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value 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\"\xba\x15\n\nInt32Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42t\xc2Hq\no\n\x0bint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x05\x42|\xc2Hy\nw\n\x08int32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x05\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x05\x42\x88\x07\xc2H\x84\x07\nz\n\x08int32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x05\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x05\x42s\xc2Hp\nn\n\x08int32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x05\x42\x66\xc2Hc\na\n\x0cint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xba\x15\n\nInt64Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42t\xc2Hq\no\n\x0bint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x03\x42|\xc2Hy\nw\n\x08int64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x03\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x03\x42\x88\x07\xc2H\x84\x07\nz\n\x08int64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x03\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x03\x42s\xc2Hp\nn\n\x08int64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x03\x42\x66\xc2Hc\na\n\x0cint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bUInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\rBu\xc2Hr\np\n\x0cuint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\rB}\xc2Hz\nx\n\tuint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\rB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\rB\x8d\x07\xc2H\x89\x07\n{\n\tuint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\rB\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\rBt\xc2Hq\no\n\tuint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\rBg\xc2Hd\nb\n\ruint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bUInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42u\xc2Hr\np\n\x0cuint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x04\x42}\xc2Hz\nx\n\tuint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x04\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x04\x42\x8d\x07\xc2H\x89\x07\n{\n\tuint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x04\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x04\x42t\xc2Hq\no\n\tuint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x04\x42g\xc2Hd\nb\n\ruint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bSInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42u\xc2Hr\np\n\x0csint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x11\x42}\xc2Hz\nx\n\tsint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x11\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x11\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x11\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x11\x42t\xc2Hq\no\n\tsint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x11\x42g\xc2Hd\nb\n\rsint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bSInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42u\xc2Hr\np\n\x0csint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x12\x42}\xc2Hz\nx\n\tsint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x12\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x12\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x12\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x12\x42t\xc2Hq\no\n\tsint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x12\x42g\xc2Hd\nb\n\rsint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xdc\x15\n\x0c\x46ixed32Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42v\xc2Hs\nq\n\rfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x07\x42~\xc2H{\ny\n\nfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x07\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x07\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x07\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x07\x42u\xc2Hr\np\n\nfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x07\x42h\xc2He\nc\n\x0e\x66ixed32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xdc\x15\n\x0c\x46ixed64Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42v\xc2Hs\nq\n\rfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x06\x42~\xc2H{\ny\n\nfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x06\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x06\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x06\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x06\x42u\xc2Hr\np\n\nfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x06\x42h\xc2He\nc\n\x0e\x66ixed64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xee\x15\n\rSFixed32Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42w\xc2Ht\nr\n\x0esfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x0f\x42\x7f\xc2H|\nz\n\x0bsfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x0f\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x0f\x42v\xc2Hs\nq\n\x0bsfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x0f\x42i\xc2Hf\nd\n\x0fsfixed32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xee\x15\n\rSFixed64Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42w\xc2Ht\nr\n\x0esfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x10\x42\x7f\xc2H|\nz\n\x0bsfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x10\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x10\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x10\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x10\x42v\xc2Hs\nq\n\x0bsfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x10\x42i\xc2Hf\nd\n\x0fsfixed64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xd7\x01\n\tBoolRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42s\xc2Hp\nn\n\nbool.const\x1a`this != getField(rules, \'const\') ? \'value 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\x8d\x01\n\x05\x63onst\x18\x01 \x01(\tBw\xc2Ht\nr\n\x0cstring.const\x1a\x62this != getField(rules, \'const\') ? \'value must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x83\x01\n\x03len\x18\x13 \x01(\x04\x42q\xc2Hn\nl\n\nstring.len\x1a^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\xa1\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x0estring.min_len\x1anuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x9f\x01\n\x07max_len\x18\x03 \x01(\x04\x42\x85\x01\xc2H\x81\x01\n\x7f\n\x0estring.max_len\x1amuint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\xa5\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x10string.len_bytes\x1aluint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\xad\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x10string.min_bytes\x1atuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\xac\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x10string.max_bytes\x1asuint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x96\x01\n\x07pattern\x18\x06 \x01(\tB|\xc2Hy\nw\n\x0estring.pattern\x1a\x65!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x8c\x01\n\x06prefix\x18\x07 \x01(\tBt\xc2Hq\no\n\rstring.prefix\x1a^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x8a\x01\n\x06suffix\x18\x08 \x01(\tBr\xc2Ho\nm\n\rstring.suffix\x1a\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x9a\x01\n\x08\x63ontains\x18\t \x01(\tB~\xc2H{\ny\n\x0fstring.contains\x1a\x66!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x0cnot_contains\x18\x17 \x01(\tB\x81\x01\xc2H~\n|\n\x13string.not_contains\x1a\x65this.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12\x84\x01\n\x02in\x18\n \x03(\tBt\xc2Hq\no\n\tstring.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x0b \x03(\tBg\xc2Hd\nb\n\rstring.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe6\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\na\n\x0cstring.email\x12#value must 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\xf1\x01\n\x08hostname\x18\r \x01(\x08\x42\xd2\x01\xc2H\xce\x01\ne\n\x0fstring.hostname\x12\x1evalue must 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\xcb\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb8\x01\xc2H\xb4\x01\nU\n\tstring.ip\x12 value must 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\xdc\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv4\x12\"value must 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\xdc\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv6\x12\"value must 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\xc4\x01\n\x03uri\x18\x11 \x01(\x08\x42\xaf\x01\xc2H\xab\x01\nQ\n\nstring.uri\x12\x19value must 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\x12x\n\x07uri_ref\x18\x12 \x01(\x08\x42]\xc2HZ\nX\n\x0estring.uri_ref\x12#value must be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x99\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xfc\x01\xc2H\xf8\x01\n\x81\x01\n\x0estring.address\x12-value 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\xe2\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xaf\x02\xc2H\xab\x02\n\x93\x01\n\x1astring.ipv6_with_prefixlen\x12\x35value 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\xfc\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nl\n\x10string.ip_prefix\x12\x1fvalue must 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\x8f\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xeb\x01\xc2H\xe7\x01\nu\n\x12string.ipv4_prefix\x12!value must 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\xfb\x01\n\x04ulid\x18# \x01(\x08\x42\xe4\x01\xc2H\xe0\x01\n\x82\x01\n\x0bstring.ulid\x12\x1avalue must 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\xb8\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xf1\x04\xc2H\xed\x04\n\xf0\x01\n#string.well_known_regex.header_name\x12&value 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\xe7\x01\n$string.well_known_regex.header_value\x12\'value 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\"\xac\x13\n\nBytesRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42q\xc2Hn\nl\n\x0b\x62ytes.const\x1a]this != getField(rules, \'const\') ? \'value must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12}\n\x03len\x18\r \x01(\x04\x42k\xc2Hh\nf\n\tbytes.len\x1aYuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x98\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x7f\xc2H|\nz\n\rbytes.min_len\x1aiuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\rbytes.max_len\x1a\x61uint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x99\x01\n\x07pattern\x18\x04 \x01(\tB\x7f\xc2H|\nz\n\rbytes.pattern\x1ai!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x89\x01\n\x06prefix\x18\x05 \x01(\x0c\x42q\xc2Hn\nl\n\x0c\x62ytes.prefix\x1a\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x87\x01\n\x06suffix\x18\x06 \x01(\x0c\x42o\xc2Hl\nj\n\x0c\x62ytes.suffix\x1aZ!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x8d\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42q\xc2Hn\nl\n\x0e\x62ytes.contains\x1aZ!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xab\x01\n\x02in\x18\x08 \x03(\x0c\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\x08\x62ytes.in\x1a\x86\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\t \x03(\x0c\x42\x66\xc2Hc\na\n\x0c\x62ytes.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xef\x01\n\x02ip\x18\n \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nt\n\x08\x62ytes.ip\x12 value must 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\xea\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xd3\x01\xc2H\xcf\x01\ne\n\nbytes.ipv4\x12\"value must 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\xeb\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xd4\x01\xc2H\xd0\x01\nf\n\nbytes.ipv6\x12\"value must 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\xdb\x01\n\x04uuid\x18\x0f \x01(\x08\x42\xc4\x01\xc2H\xc0\x01\n^\n\nbytes.uuid\x12\x1avalue must 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\"\xfd\x03\n\tEnumRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42s\xc2Hp\nn\n\nenum.const\x1a`this != getField(rules, \'const\') ? \'value 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\x82\x01\n\x02in\x18\x03 \x03(\x05\x42r\xc2Ho\nm\n\x07\x65num.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12|\n\x06not_in\x18\x04 \x03(\x05\x42\x65\xc2Hb\n`\n\x0b\x65num.not_in\x1aQthis in rules.not_in ? \'value 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\"\x9e\x04\n\rRepeatedRules\x12\xa8\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x12repeated.min_items\x1amuint(this.size()) < rules.min_items ? \'value must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xac\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x12repeated.max_items\x1aquint(this.size()) > rules.max_items ? \'value 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\"\xc6\x17\n\rDurationRules\x12\xa8\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBw\xc2Ht\nr\n\x0e\x64uration.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xac\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x7f\xc2H|\nz\n\x0b\x64uration.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbf\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0c\x64uration.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xc5\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x97\x07\xc2H\x93\x07\n}\n\x0b\x64uration.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0e\x64uration.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18\x64uration.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0f\x64uration.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x92\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0c\x64uration.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0f\x64uration.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10\x64uration.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\xa1\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBv\xc2Hs\nq\n\x0b\x64uration.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x9b\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBi\xc2Hf\nd\n\x0f\x64uration.not_in\x1aQthis in rules.not_in ? \'value 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\"\x98\x06\n\x0e\x46ieldMaskRules\x12\xc6\x01\n\x05\x63onst\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x93\x01\xc2H\x8f\x01\n\x8c\x01\n\x10\x66ield_mask.const\x1axthis.paths != getField(rules, \'const\').paths ? \'value must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05\x63onst\x12\xdd\x01\n\x02in\x18\x02 \x03(\tB\xcc\x01\xc2H\xc8\x01\n\xc5\x01\n\rfield_mask.in\x1a\xb3\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'value must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xfa\x01\n\x06not_in\x18\x03 \x03(\tB\xe2\x01\xc2H\xde\x01\n\xdb\x01\n\x11\x66ield_mask.not_in\x1a\xc5\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'value 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\"\xca\x18\n\x0eTimestampRules\x12\xaa\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBx\xc2Hu\ns\n\x0ftimestamp.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xaf\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x80\x01\xc2H}\n{\n\x0ctimestamp.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xc1\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x90\x01\xc2H\x8c\x01\n\x89\x01\n\rtimestamp.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12s\n\x06lt_now\x18\x07 \x01(\x08\x42Z\xc2HW\nU\n\x10timestamp.lt_now\x1a\x41(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'H\x00R\x05ltNow\x12\xcb\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x9c\x07\xc2H\x98\x07\n~\n\x0ctimestamp.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb7\x01\n\x0ftimestamp.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x19timestamp.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x10timestamp.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcf\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x98\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xe7\x07\xc2H\xe3\x07\n\x8c\x01\n\rtimestamp.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc6\x01\n\x10timestamp.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x11timestamp.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xde\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12v\n\x06gt_now\x18\x08 \x01(\x08\x42]\xc2HZ\nX\n\x10timestamp.gt_now\x1a\x44(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xc0\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x8c\x01\xc2H\x88\x01\n\x85\x01\n\x10timestamp.within\x1aqthis < now-rules.within || this > now+rules.within ? \'value 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'\302Hq\no\n\013float.const\032`this != getField(rules, \'const\') ? \'value 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\214\001\n\211\001\n\010float.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value 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\233\001\n\230\001\n\tfloat.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value 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\334\007\n\215\001\n\010float.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\303\001\n\013float.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\025float.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\323\001\n\014float.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\335\001\n\026float.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value 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\246\010\n\233\001\n\tfloat.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\322\001\n\014float.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\026float.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\342\001\n\rfloat.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\354\001\n\027float.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value 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'\302Hp\nn\n\010float.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014float.not_in\032Qthis in rules.not_in ? \'value 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'\302Hb\n`\n\014float.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value 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'\302Hr\np\n\014double.const\032`this != getField(rules, \'const\') ? \'value 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\215\001\n\212\001\n\tdouble.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value 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\234\001\n\231\001\n\ndouble.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value 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\341\007\n\216\001\n\tdouble.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\304\001\n\014double.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\026double.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\324\001\n\rdouble.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\336\001\n\027double.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value 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\253\010\n\234\001\n\ndouble.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\323\001\n\rdouble.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\027double.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\343\001\n\016double.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\355\001\n\030double.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value 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'\302Hq\no\n\tdouble.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rdouble.not_in\032Qthis in rules.not_in ? \'value 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'\302Hc\na\n\rdouble.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value 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'\302Hq\no\n\013int32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hy\nw\n\010int32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\210\001\n\205\001\n\tint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\204\007\nz\n\010int32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\317\007\n\210\001\n\tint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hp\nn\n\010int32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014int32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hq\no\n\013int64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hy\nw\n\010int64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\204\007\nz\n\010int64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\317\007\n\210\001\n\tint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hp\nn\n\010int64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014int64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014uint32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tuint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nuint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tuint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tuint32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\ruint32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014uint64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tuint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nuint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tuint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tuint64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\ruint64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014sint32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tsint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nsint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tsint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tsint32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rsint32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014sint64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tsint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nsint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tsint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nsint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tsint64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rsint64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hs\nq\n\rfixed32.const\032`this != getField(rules, \'const\') ? \'value 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'\302H{\ny\n\nfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\212\001\n\207\001\n\013fixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\216\007\n|\n\nfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hr\np\n\nfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302He\nc\n\016fixed32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hs\nq\n\rfixed64.const\032`this != getField(rules, \'const\') ? \'value 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'\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\212\001\n\207\001\n\013fixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\216\007\n|\n\nfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\331\007\n\212\001\n\013fixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hr\np\n\nfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302He\nc\n\016fixed64.not_in\032Qthis in rules.not_in ? \'value 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'\302Ht\nr\n\016sfixed32.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013sfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014sfixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013sfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014sfixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013sfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017sfixed32.not_in\032Qthis in rules.not_in ? \'value 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'\302Ht\nr\n\016sfixed64.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013sfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014sfixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013sfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017sfixed64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hp\nn\n\nbool.const\032`this != getField(rules, \'const\') ? \'value 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'\302Ht\nr\n\014string.const\032bthis != getField(rules, \'const\') ? \'value 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'\302Hn\nl\n\nstring.len\032^uint(this.size()) != rules.len ? \'value length 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'\302H\203\001\n\200\001\n\016string.min_len\032nuint(this.size()) < rules.min_len ? \'value length 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'\302H\201\001\n\177\n\016string.max_len\032muint(this.size()) > rules.max_len ? \'value length 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'\302H\203\001\n\200\001\n\020string.len_bytes\032luint(bytes(this).size()) != rules.len_bytes ? \'value length 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\213\001\n\210\001\n\020string.min_bytes\032tuint(bytes(this).size()) < rules.min_bytes ? \'value length 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\212\001\n\207\001\n\020string.max_bytes\032suint(bytes(this).size()) > rules.max_bytes ? \'value length 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'\302Hy\nw\n\016string.pattern\032e!this.matches(rules.pattern) ? \'value 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'\302Hq\no\n\rstring.prefix\032^!this.startsWith(rules.prefix) ? \'value 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'\302Ho\nm\n\rstring.suffix\032\\!this.endsWith(rules.suffix) ? \'value 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'\302H{\ny\n\017string.contains\032f!this.contains(rules.contains) ? \'value 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'\302H~\n|\n\023string.not_contains\032ethis.contains(rules.not_contains) ? \'value 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'\302Hq\no\n\tstring.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rstring.not_in\032Qthis in rules.not_in ? \'value 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\311\001\na\n\014string.email\022#value must 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\316\001\ne\n\017string.hostname\022\036value must 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\264\001\nU\n\tstring.ip\022 value must 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\301\001\n\\\n\013string.ipv4\022\"value must 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\301\001\n\\\n\013string.ipv6\022\"value must 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\253\001\nQ\n\nstring.uri\022\031value must 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'\302HZ\nX\n\016string.uri_ref\022#value must 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\370\001\n\201\001\n\016string.address\022-value 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\253\002\n\223\001\n\032string.ipv6_with_prefixlen\0225value 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\330\001\nl\n\020string.ip_prefix\022\037value must 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\347\001\nu\n\022string.ipv4_prefix\022!value must 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\340\001\n\202\001\n\013string.ulid\022\032value must 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['well_known_regex']._loaded_options = None - _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\355\004\n\360\001\n#string.well_known_regex.header_name\022&value 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\347\001\n$string.well_known_regex.header_value\022\'value 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'\302Hn\nl\n\013bytes.const\032]this != getField(rules, \'const\') ? \'value 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'\302Hh\nf\n\tbytes.len\032Yuint(this.size()) != rules.len ? \'value length 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'\302H|\nz\n\rbytes.min_len\032iuint(this.size()) < rules.min_len ? \'value length 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'\302Ht\nr\n\rbytes.max_len\032auint(this.size()) > rules.max_len ? \'value 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'\302H|\nz\n\rbytes.pattern\032i!string(this).matches(rules.pattern) ? \'value 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'\302Hn\nl\n\014bytes.prefix\032\\!this.startsWith(rules.prefix) ? \'value 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'\302Hl\nj\n\014bytes.suffix\032Z!this.endsWith(rules.suffix) ? \'value 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'\302Hn\nl\n\016bytes.contains\032Z!this.contains(rules.contains) ? \'value 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\226\001\n\223\001\n\010bytes.in\032\206\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014bytes.not_in\032Qthis in rules.not_in ? \'value 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\330\001\nt\n\010bytes.ip\022 value must 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\317\001\ne\n\nbytes.ipv4\022\"value must 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\320\001\nf\n\nbytes.ipv6\022\"value must 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\300\001\n^\n\nbytes.uuid\022\032value must 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'\302Hp\nn\n\nenum.const\032`this != getField(rules, \'const\') ? \'value 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'\302Ho\nm\n\007enum.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hb\n`\n\013enum.not_in\032Qthis in rules.not_in ? \'value 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\206\001\n\203\001\n\022repeated.min_items\032muint(this.size()) < rules.min_items ? \'value 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\212\001\n\207\001\n\022repeated.max_items\032quint(this.size()) > rules.max_items ? \'value 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'\302Ht\nr\n\016duration.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013duration.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014duration.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013duration.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016duration.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031duration.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014duration.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020duration.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032duration.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013duration.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017duration.not_in\032Qthis in rules.not_in ? \'value 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\217\001\n\214\001\n\020field_mask.const\032xthis.paths != getField(rules, \'const\').paths ? \'value 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\310\001\n\305\001\n\rfield_mask.in\032\263\001!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'value 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\336\001\n\333\001\n\021field_mask.not_in\032\305\001!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'value 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'\302Hu\ns\n\017timestamp.const\032`this != getField(rules, \'const\') ? \'value 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'\302H}\n{\n\014timestamp.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\214\001\n\211\001\n\rtimestamp.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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'\302HW\nU\n\020timestamp.lt_now\032A(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\230\007\n~\n\014timestamp.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\031timestamp.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\317\001\n\032timestamp.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\343\007\n\214\001\n\rtimestamp.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\306\001\n\020timestamp.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\032timestamp.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\336\001\n\033timestamp.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302HZ\nX\n\020timestamp.gt_now\032D(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'' - _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None - _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\210\001\n\205\001\n\020timestamp.within\032qthis < now-rules.within || this > now+rules.within ? \'value 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=55581 - _globals['_IGNORE']._serialized_end=55742 - _globals['_KNOWNREGEX']._serialized_start=55744 - _globals['_KNOWNREGEX']._serialized_end=55854 - _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=5101 - _globals['_DOUBLERULES']._serialized_start=5104 - _globals['_DOUBLERULES']._serialized_end=8210 - _globals['_INT32RULES']._serialized_start=8213 - _globals['_INT32RULES']._serialized_end=10959 - _globals['_INT64RULES']._serialized_start=10962 - _globals['_INT64RULES']._serialized_end=13708 - _globals['_UINT32RULES']._serialized_start=13711 - _globals['_UINT32RULES']._serialized_end=16474 - _globals['_UINT64RULES']._serialized_start=16477 - _globals['_UINT64RULES']._serialized_end=19240 - _globals['_SINT32RULES']._serialized_start=19243 - _globals['_SINT32RULES']._serialized_end=22006 - _globals['_SINT64RULES']._serialized_start=22009 - _globals['_SINT64RULES']._serialized_end=24772 - _globals['_FIXED32RULES']._serialized_start=24775 - _globals['_FIXED32RULES']._serialized_end=27555 - _globals['_FIXED64RULES']._serialized_start=27558 - _globals['_FIXED64RULES']._serialized_end=30338 - _globals['_SFIXED32RULES']._serialized_start=30341 - _globals['_SFIXED32RULES']._serialized_end=33139 - _globals['_SFIXED64RULES']._serialized_start=33142 - _globals['_SFIXED64RULES']._serialized_end=35940 - _globals['_BOOLRULES']._serialized_start=35943 - _globals['_BOOLRULES']._serialized_end=36158 - _globals['_STRINGRULES']._serialized_start=36161 - _globals['_STRINGRULES']._serialized_end=43792 - _globals['_BYTESRULES']._serialized_start=43795 - _globals['_BYTESRULES']._serialized_end=46271 - _globals['_ENUMRULES']._serialized_start=46274 - _globals['_ENUMRULES']._serialized_end=46783 - _globals['_REPEATEDRULES']._serialized_start=46786 - _globals['_REPEATEDRULES']._serialized_end=47328 - _globals['_MAPRULES']._serialized_start=47331 - _globals['_MAPRULES']._serialized_end=47759 - _globals['_ANYRULES']._serialized_start=47761 - _globals['_ANYRULES']._serialized_end=47810 - _globals['_DURATIONRULES']._serialized_start=47813 - _globals['_DURATIONRULES']._serialized_end=50827 - _globals['_FIELDMASKRULES']._serialized_start=50830 - _globals['_FIELDMASKRULES']._serialized_end=51622 - _globals['_TIMESTAMPRULES']._serialized_start=51625 - _globals['_TIMESTAMPRULES']._serialized_end=54771 - _globals['_VIOLATIONS']._serialized_start=54773 - _globals['_VIOLATIONS']._serialized_end=54842 - _globals['_VIOLATION']._serialized_start=54845 - _globals['_VIOLATION']._serialized_end=55042 - _globals['_FIELDPATH']._serialized_start=55044 - _globals['_FIELDPATH']._serialized_end=55115 - _globals['_FIELDPATHELEMENT']._serialized_start=55118 - _globals['_FIELDPATHELEMENT']._serialized_end=55578 -# @@protoc_insertion_point(module_scope) diff --git a/src/buf/validate/validate_pb2.pyi b/src/buf/validate/validate_pb2.pyi deleted file mode 100644 index 6b2091f..0000000 --- a/src/buf/validate/validate_pb2.pyi +++ /dev/null @@ -1,650 +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", "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] - 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 - 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] = ..., 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/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py deleted file mode 100644 index 6b94e2b..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: protoc/gen/jsonschema/v1/options.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, - '', - 'protoc/gen/jsonschema/v1/options.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&protoc/gen/jsonschema/v1/options.proto\x12\x18protoc.gen.jsonschema.v1\x1a google/protobuf/descriptor.proto\"\x9a\x01\n\x0c\x46ieldOptions\x12\x16\n\x06ignore\x18\x01 \x01(\x08R\x06ignore\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\x12\x1d\n\nmin_length\x18\x03 \x01(\x05R\tminLength\x12\x1d\n\nmax_length\x18\x04 \x01(\x05R\tmaxLength\x12\x18\n\x07pattern\x18\x05 \x01(\tR\x07pattern:k\n\rfield_options\x12\x1d.google.protobuf.FieldOptions\x18\xe5\x08 \x01(\x0b\x32&.protoc.gen.jsonschema.v1.FieldOptionsR\x0c\x66ieldOptionsB*Z(github.com/chrusty/protoc-gen-jsonschemab\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protoc.gen.jsonschema.v1.options_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z(github.com/chrusty/protoc-gen-jsonschema' - _globals['_FIELDOPTIONS']._serialized_start=103 - _globals['_FIELDOPTIONS']._serialized_end=257 -# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi deleted file mode 100644 index 8613731..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi +++ /dev/null @@ -1,22 +0,0 @@ -from google.protobuf import descriptor_pb2 as _descriptor_pb2 -from google.protobuf import descriptor as _descriptor -from google.protobuf import message as _message -from typing import ClassVar as _ClassVar, Optional as _Optional - -DESCRIPTOR: _descriptor.FileDescriptor -FIELD_OPTIONS_FIELD_NUMBER: _ClassVar[int] -field_options: _descriptor.FieldDescriptor - -class FieldOptions(_message.Message): - __slots__ = ("ignore", "required", "min_length", "max_length", "pattern") - IGNORE_FIELD_NUMBER: _ClassVar[int] - REQUIRED_FIELD_NUMBER: _ClassVar[int] - MIN_LENGTH_FIELD_NUMBER: _ClassVar[int] - MAX_LENGTH_FIELD_NUMBER: _ClassVar[int] - PATTERN_FIELD_NUMBER: _ClassVar[int] - ignore: bool - required: bool - min_length: int - max_length: int - pattern: str - def __init__(self, ignore: _Optional[bool] = ..., required: _Optional[bool] = ..., min_length: _Optional[int] = ..., max_length: _Optional[int] = ..., pattern: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py deleted file mode 100644 index aa07901..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py +++ /dev/null @@ -1,641 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: sap/auditlog/auditevent/v1/auditevent.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, - '', - 'sap/auditlog/auditevent/v1/auditevent.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 -from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -from protoc.gen.jsonschema.v1 import options_pb2 as protoc_dot_gen_dot_jsonschema_dot_v1_dot_options__pb2 - - -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v1/auditevent.proto\x12\x1asap.auditlog.auditevent.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&protoc/gen/jsonschema/v1/options.proto\"\xb8\x0e\n\x08Metadata\x12\x15\n\x02ts\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x02ts\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\x12U\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x34.sap.auditlog.auditevent.v1.Metadata.AppContextEntryR\nappContext\x12[\n\x0einfrastructure\x18\t \x01(\x0b\x32\x33.sap.auditlog.auditevent.v1.Metadata.InfrastructureR\x0einfrastructure\x12I\n\x08platform\x18\n \x01(\x0b\x32-.sap.auditlog.auditevent.v1.Metadata.PlatformR\x08platform\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\x1a\xc6\x05\n\x0eInfrastructure\x12R\n\x03k8s\x18\x01 \x01(\x0b\x32>.sap.auditlog.auditevent.v1.Metadata.Infrastructure.KubernetesH\x00R\x03k8s\x12R\n\x02\x63\x66\x18\x02 \x01(\x0b\x32@.sap.auditlog.auditevent.v1.Metadata.Infrastructure.CloudFoundryH\x00R\x02\x63\x66\x12Q\n\x05other\x18\x03 \x01(\x0b\x32\x39.sap.auditlog.auditevent.v1.Metadata.Infrastructure.OtherH\x00R\x05other\x12I\n\x03\x61pp\x18\x04 \x01(\x0b\x32\x37.sap.auditlog.auditevent.v1.Metadata.Infrastructure.AppR\x03\x61pp\x1a\x81\x01\n\nKubernetes\x12\x33\n\x15infrastructure_region\x18\x01 \x01(\tR\x14infrastructureRegion\x12\x18\n\x07\x63luster\x18\x02 \x01(\tR\x07\x63luster\x12\x12\n\x04node\x18\x03 \x01(\tR\x04node\x12\x10\n\x03pod\x18\x04 \x01(\tR\x03pod\x1au\n\x0c\x43loudFoundry\x12\x1c\n\tbtpregion\x18\x01 \x01(\tR\tbtpregion\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId\x12\x19\n\x08space_id\x18\x03 \x01(\tR\x07spaceId\x12\x15\n\x06\x61pp_id\x18\x04 \x01(\tR\x05\x61ppId\x1a*\n\x05Other\x12!\n\x0cruntime_type\x18\x01 \x01(\tR\x0bruntimeType\x1a\x35\n\x03\x41pp\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x18\n\x07version\x18\x02 \x01(\tR\x07versionB\x10\n\x07runtime\x12\x05\xbaH\x02\x08\x01\x1a\xa7\x04\n\x08Platform\x12\x45\n\x03\x62tp\x18\x01 \x01(\x0b\x32\x31.sap.auditlog.auditevent.v1.Metadata.Platform.BTPH\x00R\x03\x62tp\x12j\n\x10unified_services\x18\x02 \x01(\x0b\x32=.sap.auditlog.auditevent.v1.Metadata.Platform.UnifiedServicesH\x00R\x0funifiedServices\x12K\n\x05other\x18\x03 \x01(\x0b\x32\x33.sap.auditlog.auditevent.v1.Metadata.Platform.OtherH\x00R\x05other\x1aW\n\x03\x42TP\x12*\n\x11global_account_id\x18\x01 \x01(\tR\x0fglobalAccountId\x12$\n\x0esub_account_id\x18\x02 \x01(\tR\x0csubAccountId\x1a\x80\x01\n\x0fUnifiedServices\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12\x1f\n\x0b\x66older_path\x18\x02 \x01(\tR\nfolderPath\x12-\n\x12resourcegroup_path\x18\x03 \x01(\tR\x11resourcegroupPath\x1a,\n\x05Other\x12#\n\rplatform_name\x18\x01 \x01(\tR\x0cplatformNameB\x11\n\x08platform\x12\x05\xbaH\x02\x08\x01\"9\n\rAuditlogClear\x12(\n\x10number_of_events\x18\x01 \x01(\x05R\x0enumberOfEvents\"\x11\n\x0f\x41uditlogDisable\"\x10\n\x0e\x41uditlogEnable\"\xa8\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12*\n\tprivilege\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xab\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12*\n\tprivilege\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa5\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa8\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa5\x01\n\x17\x41uthnPrivilegeToUserAdd\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa8\x01\n\x1a\x41uthnPrivilegeToUserDelete\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"[\n\x13\x41uthnRoleToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\"^\n\x16\x41uthnRoleToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\"X\n\x12\x41uthnRoleToUserAdd\x12 \n\x04role\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"[\n\x15\x41uthnRoleToUserDelete\x12 \n\x04role\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"[\n\x13\x41uthnUserToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"^\n\x16\x41uthnUserToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"\xc1\x01\n\x10\x43onfigurationAdd\x12\x33\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x05value\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\x87\x02\n\x13\x43onfigurationChange\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\xc4\x01\n\x13\x43onfigurationDelete\x12\x33\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x05value\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\xa1\x01\n\x10\x43redentialCreate\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\"\xa1\x01\n\x10\x43redentialDelete\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\"\xea\x01\n\x14\x43redentialExpiration\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\xea\x01\n\x14\x43redentialRevokation\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\xe5\x01\n\x0f\x44\x61taModelChange\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\":\n\x0f\x44\x61taModelCreate\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\":\n\x0f\x44\x61taModelDelete\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\"\xf4\x02\n\nDataAccess\x12/\n\x0c\x63hannel_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x07 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x08 \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xc0\x01\n\nDataCreate\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xc0\x01\n\nDataDelete\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x82\x02\n\x10\x44\x61taModification\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xa7\x02\n\nDataExport\x12[\n\x0c\x63hannel_type\x18\x01 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v1.DataExportChannelTypeB\x05\xaa\x46\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12\x35\n\x0f\x64\x65stination_uri\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0e\x64\x65stinationUri\"\xe7\x03\n\rDppDataAccess\x12/\n\x0c\x63hannel_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12\x38\n\x11\x64\x61ta_subject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x06 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x07 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\t \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\n \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xb3\x02\n\rDppDataCreate\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xb3\x02\n\rDppDataDelete\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xf5\x02\n\x13\x44ppDataModification\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xdb\x01\n\tJobChange\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"0\n\tJobCreate\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\"0\n\tJobDelete\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\"\xe1\x01\n\x0fJobStatusChange\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"\xe6\x01\n\x18MaliciousRequestDetected\x12*\n\tparameter\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x02 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x03 \x01(\tR\rreceivedValue\x12P\n\x08\x62\x65havior\x18\x04 \x01(\x0e\x32-.sap.auditlog.auditevent.v1.MaliciousBehaviorB\x05\xaa\x46\x02\x10\x01R\x08\x62\x65havior\"7\n\x0ePasswordChange\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\";\n\x12PasswordExpiration\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"6\n\rPasswordReset\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xea\x01\n\x12TenantModification\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12)\n\ttenant_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\">\n\x11TenantOffboarding\x12)\n\ttenant_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\"=\n\x10TenantOnboarding\x12)\n\ttenant_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\"\x18\n\x16UnauthenticatedRequest\"\x15\n\x13UnauthorizedRequest\"5\n\x0cUserActivate\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"2\n\tUserBlock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserCreate\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xe8\x01\n\x14UserDataModification\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12%\n\x07user_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserDelete\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xe7\x02\n\x16UserImpersonationStart\x12\x38\n\x11user_initiator_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x02 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x11userInitiatorType\x12>\n\x14user_impersonated_id\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xe8\x02\n\x17UserImpersonationFinish\x12\x38\n\x11user_initiator_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x02 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x11userInitiatorType\x12>\n\x14user_impersonated_id\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"1\n\x08UserLock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserUnlock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserVerify\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xb3\x01\n\x10UserLoginFailure\x12W\n\x0e\x66\x61ilure_reason\x18\x01 \x01(\x0e\x32).sap.auditlog.auditevent.v1.FailureReasonB\x05\xaa\x46\x02\x10\x01R\rfailureReason\x12\x46\n\x06method\x18\x02 \x01(\x0e\x32\'.sap.auditlog.auditevent.v1.LoginMethodB\x05\xaa\x46\x02\x10\x01R\x06method\"\x86\x02\n\x10UserLoginSuccess\x12\x19\n\x08is_admin\x18\x01 \x01(\x08R\x07isAdmin\x12\x46\n\x06method\x18\x02 \x01(\x0e\x32\'.sap.auditlog.auditevent.v1.LoginMethodB\x05\xaa\x46\x02\x10\x01R\x06method\x12\x45\n\x08mfa_type\x18\x03 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.MfaTypeB\x05\xaa\x46\x02\x10\x01R\x07mfaType\x12H\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeB\x05\xaa\x46\x02\x10\x01R\x08userType\"\\\n\nUserLogoff\x12N\n\x0blogoff_type\x18\x01 \x01(\x0e\x32&.sap.auditlog.auditevent.v1.LogoffTypeB\x05\xaa\x46\x02\x10\x01R\nlogoffType\"G\n\x0eZzzCustomEvent\x12\x35\n\x06\x63ustom\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x06\x63ustom\"Q\n\rCMKOnboarding\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"R\n\x0e\x43MKOffboarding\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"y\n\tCMKSwitch\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12#\n\ncmk_id_old\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08\x63mkIdOld\x12#\n\ncmk_id_new\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08\x63mkIdNew\"\xa6\x01\n\x15\x43MKTenantModification\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12K\n\ncmk_action\x18\x03 \x01(\x0e\x32%.sap.auditlog.auditevent.v1.CMKActionB\x05\xaa\x46\x02\x10\x01R\tcmkAction\"T\n\tCMKCreate\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"T\n\tCMKDelete\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"U\n\nCMKRestore\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"U\n\nCMKDisable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"T\n\tCMKEnable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\")\n\tCMKRotate\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyCreate\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyDelete\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb3\x01\n\nKeyRestore\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb1\x01\n\x08KeyPurge\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyRotate\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyEnable\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb3\x01\n\nKeyDisable\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"Y\n\x0e\x43MKUnavailable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"W\n\x0c\x43MKAvailable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"x\n\tCMKDetach\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\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*\xad\x05\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*\x96\x04\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*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*s\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*`\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\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sap.auditlog.auditevent.v1.auditevent_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' - _globals['_METADATA_APPCONTEXTENTRY']._loaded_options = None - _globals['_METADATA_APPCONTEXTENTRY']._serialized_options = b'8\001' - _globals['_METADATA_INFRASTRUCTURE'].oneofs_by_name['runtime']._loaded_options = None - _globals['_METADATA_INFRASTRUCTURE'].oneofs_by_name['runtime']._serialized_options = b'\272H\002\010\001' - _globals['_METADATA_PLATFORM'].oneofs_by_name['platform']._loaded_options = None - _globals['_METADATA_PLATFORM'].oneofs_by_name['platform']._serialized_options = b'\272H\002\010\001' - _globals['_METADATA'].fields_by_name['ts']._loaded_options = None - _globals['_METADATA'].fields_by_name['ts']._serialized_options = b'\252F\002\020\001' - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._loaded_options = None - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._loaded_options = None - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._loaded_options = None - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_CONFIGURATIONADD'].fields_by_name['value']._loaded_options = None - _globals['_CONFIGURATIONADD'].fields_by_name['value']._serialized_options = b'\252F\002\020\001' - _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._loaded_options = None - _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._loaded_options = None - _globals['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' - _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._loaded_options = None - _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' - _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CONFIGURATIONDELETE'].fields_by_name['value']._loaded_options = None - _globals['_CONFIGURATIONDELETE'].fields_by_name['value']._serialized_options = b'\252F\002\020\001' - _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._loaded_options = None - _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CREDENTIALCREATE'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALCREATE'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._loaded_options = None - _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' - _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._loaded_options = None - _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' - _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._loaded_options = None - _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' - _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._loaded_options = None - _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._loaded_options = None - _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' - _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' - _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' - _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAMODELCREATE'].fields_by_name['model_id']._loaded_options = None - _globals['_DATAMODELCREATE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAMODELDELETE'].fields_by_name['model_id']._loaded_options = None - _globals['_DATAMODELDELETE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAACCESS'].fields_by_name['channel_type']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAACCESS'].fields_by_name['channel_id']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAACCESS'].fields_by_name['object_type']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAACCESS'].fields_by_name['object_id']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAACCESS'].fields_by_name['attribute']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['object_type']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATACREATE'].fields_by_name['object_id']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATACREATE'].fields_by_name['attribute']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATADELETE'].fields_by_name['object_type']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATADELETE'].fields_by_name['object_id']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATADELETE'].fields_by_name['attribute']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAEXPORT'].fields_by_name['channel_type']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001' - _globals['_DATAEXPORT'].fields_by_name['channel_id']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAEXPORT'].fields_by_name['object_type']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAEXPORT'].fields_by_name['object_id']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DATAEXPORT'].fields_by_name['destination_uri']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['destination_uri']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAACCESS'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['data_subject_type']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATACREATE'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATACREATE'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATACREATE'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATADELETE'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATADELETE'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATADELETE'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_JOBCHANGE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_JOBCHANGE'].fields_by_name['new_value']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' - _globals['_JOBCHANGE'].fields_by_name['old_value']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' - _globals['_JOBCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_JOBCREATE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBCREATE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_JOBDELETE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBDELETE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' - _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' - _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._loaded_options = None - _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._loaded_options = None - _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._serialized_options = b'\252F\002\020\001' - _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._loaded_options = None - _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._loaded_options = None - _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_PASSWORDRESET'].fields_by_name['user_id']._loaded_options = None - _globals['_PASSWORDRESET'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' - _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' - _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._loaded_options = None - _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._loaded_options = None - _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERACTIVATE'].fields_by_name['user_id']._loaded_options = None - _globals['_USERACTIVATE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERBLOCK'].fields_by_name['user_id']._loaded_options = None - _globals['_USERBLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERCREATE'].fields_by_name['user_id']._loaded_options = None - _globals['_USERCREATE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' - _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' - _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERDELETE'].fields_by_name['user_id']._loaded_options = None - _globals['_USERDELETE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._loaded_options = None - _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._loaded_options = None - _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['user_initiator_id']._loaded_options = None - _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_initiator_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._loaded_options = None - _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['user_id']._loaded_options = None - _globals['_USERLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERUNLOCK'].fields_by_name['user_id']._loaded_options = None - _globals['_USERUNLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERVERIFY'].fields_by_name['user_id']._loaded_options = None - _globals['_USERVERIFY'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' - _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._loaded_options = None - _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._serialized_options = b'\252F\002\020\001' - _globals['_USERLOGINFAILURE'].fields_by_name['method']._loaded_options = None - _globals['_USERLOGINFAILURE'].fields_by_name['method']._serialized_options = b'\252F\002\020\001' - _globals['_USERLOGINSUCCESS'].fields_by_name['method']._loaded_options = None - _globals['_USERLOGINSUCCESS'].fields_by_name['method']._serialized_options = b'\252F\002\020\001' - _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._loaded_options = None - _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._serialized_options = b'\252F\002\020\001' - _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._loaded_options = None - _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._serialized_options = b'\252F\002\020\001' - _globals['_USERLOGOFF'].fields_by_name['logoff_type']._loaded_options = None - _globals['_USERLOGOFF'].fields_by_name['logoff_type']._serialized_options = b'\252F\002\020\001' - _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._loaded_options = None - _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._serialized_options = b'\252F\002\020\001' - _globals['_CMKONBOARDING'].fields_by_name['system_id']._loaded_options = None - _globals['_CMKONBOARDING'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._loaded_options = None - _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKSWITCH'].fields_by_name['system_id']._loaded_options = None - _globals['_CMKSWITCH'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._loaded_options = None - _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._serialized_options = b'\252F\002\020\001' - _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._loaded_options = None - _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._serialized_options = b'\252F\002\020\001' - _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._loaded_options = None - _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._loaded_options = None - _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._serialized_options = b'\252F\002\020\001' - _globals['_CMKCREATE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKCREATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKCREATE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKCREATE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDELETE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKDELETE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDELETE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKDELETE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKRESTORE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDISABLE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKENABLE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKENABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKENABLE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKENABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKROTATE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKROTATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYCREATE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYCREATE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYCREATE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYCREATE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYCREATE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYCREATE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYCREATE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYCREATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDELETE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYDELETE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDELETE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYDELETE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDELETE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYDELETE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDELETE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYDELETE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYRESTORE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYRESTORE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYRESTORE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYRESTORE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYRESTORE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYRESTORE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYRESTORE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYPURGE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYPURGE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYPURGE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYPURGE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYPURGE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYPURGE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYPURGE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYPURGE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYROTATE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYROTATE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYROTATE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYROTATE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYROTATE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYROTATE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYROTATE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYROTATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYENABLE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYENABLE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYENABLE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYENABLE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYENABLE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYENABLE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYENABLE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYENABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDISABLE'].fields_by_name['key_type']._loaded_options = None - _globals['_KEYDISABLE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDISABLE'].fields_by_name['key_id']._loaded_options = None - _globals['_KEYDISABLE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDISABLE'].fields_by_name['system_id']._loaded_options = None - _globals['_KEYDISABLE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_KEYDISABLE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_KEYDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDETACH'].fields_by_name['cmk_id']._loaded_options = None - _globals['_CMKDETACH'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDETACH'].fields_by_name['kms_system_id']._loaded_options = None - _globals['_CMKDETACH'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CMKDETACH'].fields_by_name['system_id']._loaded_options = None - _globals['_CMKDETACH'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' - _globals['_CREDENTIALTYPE']._serialized_start=14182 - _globals['_CREDENTIALTYPE']._serialized_end=14322 - _globals['_FAILUREREASON']._serialized_start=14325 - _globals['_FAILUREREASON']._serialized_end=15010 - _globals['_LOGINMETHOD']._serialized_start=15013 - _globals['_LOGINMETHOD']._serialized_end=15547 - _globals['_LOGOFFTYPE']._serialized_start=15549 - _globals['_LOGOFFTYPE']._serialized_end=15639 - _globals['_MALICIOUSBEHAVIOR']._serialized_start=15642 - _globals['_MALICIOUSBEHAVIOR']._serialized_end=15874 - _globals['_MFATYPE']._serialized_start=15876 - _globals['_MFATYPE']._serialized_end=15991 - _globals['_USERTYPE']._serialized_start=15993 - _globals['_USERTYPE']._serialized_end=16089 - _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=16092 - _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=16275 - _globals['_EVENTCATEGORYCODE']._serialized_start=16278 - _globals['_EVENTCATEGORYCODE']._serialized_end=16454 - _globals['_CMKACTION']._serialized_start=16457 - _globals['_CMKACTION']._serialized_end=16677 - _globals['_KEYTYPE']._serialized_start=16679 - _globals['_KEYTYPE']._serialized_end=16794 - _globals['_METADATA']._serialized_start=208 - _globals['_METADATA']._serialized_end=2056 - _globals['_METADATA_APPCONTEXTENTRY']._serialized_start=728 - _globals['_METADATA_APPCONTEXTENTRY']._serialized_end=789 - _globals['_METADATA_INFRASTRUCTURE']._serialized_start=792 - _globals['_METADATA_INFRASTRUCTURE']._serialized_end=1502 - _globals['_METADATA_INFRASTRUCTURE_KUBERNETES']._serialized_start=1137 - _globals['_METADATA_INFRASTRUCTURE_KUBERNETES']._serialized_end=1266 - _globals['_METADATA_INFRASTRUCTURE_CLOUDFOUNDRY']._serialized_start=1268 - _globals['_METADATA_INFRASTRUCTURE_CLOUDFOUNDRY']._serialized_end=1385 - _globals['_METADATA_INFRASTRUCTURE_OTHER']._serialized_start=1387 - _globals['_METADATA_INFRASTRUCTURE_OTHER']._serialized_end=1429 - _globals['_METADATA_INFRASTRUCTURE_APP']._serialized_start=1431 - _globals['_METADATA_INFRASTRUCTURE_APP']._serialized_end=1484 - _globals['_METADATA_PLATFORM']._serialized_start=1505 - _globals['_METADATA_PLATFORM']._serialized_end=2056 - _globals['_METADATA_PLATFORM_BTP']._serialized_start=1773 - _globals['_METADATA_PLATFORM_BTP']._serialized_end=1860 - _globals['_METADATA_PLATFORM_UNIFIEDSERVICES']._serialized_start=1863 - _globals['_METADATA_PLATFORM_UNIFIEDSERVICES']._serialized_end=1991 - _globals['_METADATA_PLATFORM_OTHER']._serialized_start=1993 - _globals['_METADATA_PLATFORM_OTHER']._serialized_end=2037 - _globals['_AUDITLOGCLEAR']._serialized_start=2058 - _globals['_AUDITLOGCLEAR']._serialized_end=2115 - _globals['_AUDITLOGDISABLE']._serialized_start=2117 - _globals['_AUDITLOGDISABLE']._serialized_end=2134 - _globals['_AUDITLOGENABLE']._serialized_start=2136 - _globals['_AUDITLOGENABLE']._serialized_end=2152 - _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=2155 - _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=2323 - _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=2326 - _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=2497 - _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=2500 - _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=2665 - _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=2668 - _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=2836 - _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=2839 - _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=3004 - _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=3007 - _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=3175 - _globals['_AUTHNROLETOGROUPADD']._serialized_start=3177 - _globals['_AUTHNROLETOGROUPADD']._serialized_end=3268 - _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=3270 - _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=3364 - _globals['_AUTHNROLETOUSERADD']._serialized_start=3366 - _globals['_AUTHNROLETOUSERADD']._serialized_end=3454 - _globals['_AUTHNROLETOUSERDELETE']._serialized_start=3456 - _globals['_AUTHNROLETOUSERDELETE']._serialized_end=3547 - _globals['_AUTHNUSERTOGROUPADD']._serialized_start=3549 - _globals['_AUTHNUSERTOGROUPADD']._serialized_end=3640 - _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=3642 - _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=3736 - _globals['_CONFIGURATIONADD']._serialized_start=3739 - _globals['_CONFIGURATIONADD']._serialized_end=3932 - _globals['_CONFIGURATIONCHANGE']._serialized_start=3935 - _globals['_CONFIGURATIONCHANGE']._serialized_end=4198 - _globals['_CONFIGURATIONDELETE']._serialized_start=4201 - _globals['_CONFIGURATIONDELETE']._serialized_end=4397 - _globals['_CREDENTIALCREATE']._serialized_start=4400 - _globals['_CREDENTIALCREATE']._serialized_end=4561 - _globals['_CREDENTIALDELETE']._serialized_start=4564 - _globals['_CREDENTIALDELETE']._serialized_end=4725 - _globals['_CREDENTIALEXPIRATION']._serialized_start=4728 - _globals['_CREDENTIALEXPIRATION']._serialized_end=4962 - _globals['_CREDENTIALREVOKATION']._serialized_start=4965 - _globals['_CREDENTIALREVOKATION']._serialized_end=5199 - _globals['_DATAMODELCHANGE']._serialized_start=5202 - _globals['_DATAMODELCHANGE']._serialized_end=5431 - _globals['_DATAMODELCREATE']._serialized_start=5433 - _globals['_DATAMODELCREATE']._serialized_end=5491 - _globals['_DATAMODELDELETE']._serialized_start=5493 - _globals['_DATAMODELDELETE']._serialized_end=5551 - _globals['_DATAACCESS']._serialized_start=5554 - _globals['_DATAACCESS']._serialized_end=5926 - _globals['_DATACREATE']._serialized_start=5929 - _globals['_DATACREATE']._serialized_end=6121 - _globals['_DATADELETE']._serialized_start=6124 - _globals['_DATADELETE']._serialized_end=6316 - _globals['_DATAMODIFICATION']._serialized_start=6319 - _globals['_DATAMODIFICATION']._serialized_end=6577 - _globals['_DATAEXPORT']._serialized_start=6580 - _globals['_DATAEXPORT']._serialized_end=6875 - _globals['_DPPDATAACCESS']._serialized_start=6878 - _globals['_DPPDATAACCESS']._serialized_end=7365 - _globals['_DPPDATACREATE']._serialized_start=7368 - _globals['_DPPDATACREATE']._serialized_end=7675 - _globals['_DPPDATADELETE']._serialized_start=7678 - _globals['_DPPDATADELETE']._serialized_end=7985 - _globals['_DPPDATAMODIFICATION']._serialized_start=7988 - _globals['_DPPDATAMODIFICATION']._serialized_end=8361 - _globals['_JOBCHANGE']._serialized_start=8364 - _globals['_JOBCHANGE']._serialized_end=8583 - _globals['_JOBCREATE']._serialized_start=8585 - _globals['_JOBCREATE']._serialized_end=8633 - _globals['_JOBDELETE']._serialized_start=8635 - _globals['_JOBDELETE']._serialized_end=8683 - _globals['_JOBSTATUSCHANGE']._serialized_start=8686 - _globals['_JOBSTATUSCHANGE']._serialized_end=8911 - _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=8914 - _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=9144 - _globals['_PASSWORDCHANGE']._serialized_start=9146 - _globals['_PASSWORDCHANGE']._serialized_end=9201 - _globals['_PASSWORDEXPIRATION']._serialized_start=9203 - _globals['_PASSWORDEXPIRATION']._serialized_end=9262 - _globals['_PASSWORDRESET']._serialized_start=9264 - _globals['_PASSWORDRESET']._serialized_end=9318 - _globals['_TENANTMODIFICATION']._serialized_start=9321 - _globals['_TENANTMODIFICATION']._serialized_end=9555 - _globals['_TENANTOFFBOARDING']._serialized_start=9557 - _globals['_TENANTOFFBOARDING']._serialized_end=9619 - _globals['_TENANTONBOARDING']._serialized_start=9621 - _globals['_TENANTONBOARDING']._serialized_end=9682 - _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=9684 - _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=9708 - _globals['_UNAUTHORIZEDREQUEST']._serialized_start=9710 - _globals['_UNAUTHORIZEDREQUEST']._serialized_end=9731 - _globals['_USERACTIVATE']._serialized_start=9733 - _globals['_USERACTIVATE']._serialized_end=9786 - _globals['_USERBLOCK']._serialized_start=9788 - _globals['_USERBLOCK']._serialized_end=9838 - _globals['_USERCREATE']._serialized_start=9840 - _globals['_USERCREATE']._serialized_end=9891 - _globals['_USERDATAMODIFICATION']._serialized_start=9894 - _globals['_USERDATAMODIFICATION']._serialized_end=10126 - _globals['_USERDELETE']._serialized_start=10128 - _globals['_USERDELETE']._serialized_end=10179 - _globals['_USERIMPERSONATIONSTART']._serialized_start=10182 - _globals['_USERIMPERSONATIONSTART']._serialized_end=10541 - _globals['_USERIMPERSONATIONFINISH']._serialized_start=10544 - _globals['_USERIMPERSONATIONFINISH']._serialized_end=10904 - _globals['_USERLOCK']._serialized_start=10906 - _globals['_USERLOCK']._serialized_end=10955 - _globals['_USERUNLOCK']._serialized_start=10957 - _globals['_USERUNLOCK']._serialized_end=11008 - _globals['_USERVERIFY']._serialized_start=11010 - _globals['_USERVERIFY']._serialized_end=11061 - _globals['_USERLOGINFAILURE']._serialized_start=11064 - _globals['_USERLOGINFAILURE']._serialized_end=11243 - _globals['_USERLOGINSUCCESS']._serialized_start=11246 - _globals['_USERLOGINSUCCESS']._serialized_end=11508 - _globals['_USERLOGOFF']._serialized_start=11510 - _globals['_USERLOGOFF']._serialized_end=11602 - _globals['_ZZZCUSTOMEVENT']._serialized_start=11604 - _globals['_ZZZCUSTOMEVENT']._serialized_end=11675 - _globals['_CMKONBOARDING']._serialized_start=11677 - _globals['_CMKONBOARDING']._serialized_end=11758 - _globals['_CMKOFFBOARDING']._serialized_start=11760 - _globals['_CMKOFFBOARDING']._serialized_end=11842 - _globals['_CMKSWITCH']._serialized_start=11844 - _globals['_CMKSWITCH']._serialized_end=11965 - _globals['_CMKTENANTMODIFICATION']._serialized_start=11968 - _globals['_CMKTENANTMODIFICATION']._serialized_end=12134 - _globals['_CMKCREATE']._serialized_start=12136 - _globals['_CMKCREATE']._serialized_end=12220 - _globals['_CMKDELETE']._serialized_start=12222 - _globals['_CMKDELETE']._serialized_end=12306 - _globals['_CMKRESTORE']._serialized_start=12308 - _globals['_CMKRESTORE']._serialized_end=12393 - _globals['_CMKDISABLE']._serialized_start=12395 - _globals['_CMKDISABLE']._serialized_end=12480 - _globals['_CMKENABLE']._serialized_start=12482 - _globals['_CMKENABLE']._serialized_end=12566 - _globals['_CMKROTATE']._serialized_start=12568 - _globals['_CMKROTATE']._serialized_end=12609 - _globals['_KEYCREATE']._serialized_start=12612 - _globals['_KEYCREATE']._serialized_end=12790 - _globals['_KEYDELETE']._serialized_start=12793 - _globals['_KEYDELETE']._serialized_end=12971 - _globals['_KEYRESTORE']._serialized_start=12974 - _globals['_KEYRESTORE']._serialized_end=13153 - _globals['_KEYPURGE']._serialized_start=13156 - _globals['_KEYPURGE']._serialized_end=13333 - _globals['_KEYROTATE']._serialized_start=13336 - _globals['_KEYROTATE']._serialized_end=13514 - _globals['_KEYENABLE']._serialized_start=13517 - _globals['_KEYENABLE']._serialized_end=13695 - _globals['_KEYDISABLE']._serialized_start=13698 - _globals['_KEYDISABLE']._serialized_end=13877 - _globals['_CMKUNAVAILABLE']._serialized_start=13879 - _globals['_CMKUNAVAILABLE']._serialized_end=13968 - _globals['_CMKAVAILABLE']._serialized_start=13970 - _globals['_CMKAVAILABLE']._serialized_end=14057 - _globals['_CMKDETACH']._serialized_start=14059 - _globals['_CMKDETACH']._serialized_end=14179 -# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi deleted file mode 100644 index 00187ed..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi +++ /dev/null @@ -1,1093 +0,0 @@ -import datetime - -from buf.validate import validate_pb2 as _validate_pb2 -from google.protobuf import struct_pb2 as _struct_pb2 -from google.protobuf import timestamp_pb2 as _timestamp_pb2 -from protoc.gen.jsonschema.v1 import options_pb2 as _options_pb2 -from google.protobuf.internal import containers as _containers -from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper -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 CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] - CREDENTIAL_TYPE_X509_CERTIFICATE: _ClassVar[CredentialType] - CREDENTIAL_TYPE_KEY: _ClassVar[CredentialType] - CREDENTIAL_TYPE_SECRET: _ClassVar[CredentialType] - -class FailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - FAILURE_REASON_UNSPECIFIED: _ClassVar[FailureReason] - FAILURE_REASON_PASSWORD: _ClassVar[FailureReason] - FAILURE_REASON_MFA_FAILED: _ClassVar[FailureReason] - FAILURE_REASON_USER_NOT_FOUND: _ClassVar[FailureReason] - FAILURE_REASON_USER_LOCKED: _ClassVar[FailureReason] - FAILURE_REASON_USER_BLOCKED: _ClassVar[FailureReason] - FAILURE_REASON_USER_UNVERIFIED: _ClassVar[FailureReason] - FAILURE_REASON_USER_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_USER_INVALID: _ClassVar[FailureReason] - FAILURE_REASON_INSECURE_CONNECTION: _ClassVar[FailureReason] - FAILURE_REASON_LOGIN_METHOD_DISABLED: _ClassVar[FailureReason] - FAILURE_REASON_TOKEN_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_TOKEN_REVOKED: _ClassVar[FailureReason] - FAILURE_REASON_TOKEN_INVALID: _ClassVar[FailureReason] - FAILURE_REASON_SESSION_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_SESSION_REVOKED: _ClassVar[FailureReason] - FAILURE_REASON_CERTIFICATE_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_CERTIFICATE_REVOKED: _ClassVar[FailureReason] - FAILURE_REASON_CERTIFICATE_INVALID: _ClassVar[FailureReason] - -class LoginMethod(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - LOGIN_METHOD_UNSPECIFIED: _ClassVar[LoginMethod] - LOGIN_METHOD_OPEN_ID_CONNECT: _ClassVar[LoginMethod] - LOGIN_METHOD_SAML: _ClassVar[LoginMethod] - LOGIN_METHOD_SAML2: _ClassVar[LoginMethod] - LOGIN_METHOD_EXTERNAL: _ClassVar[LoginMethod] - LOGIN_METHOD_SPNEGO: _ClassVar[LoginMethod] - LOGIN_METHOD_PASSWORD: _ClassVar[LoginMethod] - LOGIN_METHOD_RFC_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_SNC: _ClassVar[LoginMethod] - LOGIN_METHOD_LOGON_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_USER_SWITCH: _ClassVar[LoginMethod] - LOGIN_METHOD_X509_CERTIFICATE: _ClassVar[LoginMethod] - LOGIN_METHOD_APC_SESSION: _ClassVar[LoginMethod] - LOGIN_METHOD_INTERNAL: _ClassVar[LoginMethod] - LOGIN_METHOD_OAUTH2: _ClassVar[LoginMethod] - LOGIN_METHOD_REENTRANCE_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_HTTP_SESSION: _ClassVar[LoginMethod] - LOGIN_METHOD_ASSERTION_TICKET: _ClassVar[LoginMethod] - -class LogoffType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - LOGOFF_TYPE_UNSPECIFIED: _ClassVar[LogoffType] - LOGOFF_TYPE_REGULAR: _ClassVar[LogoffType] - LOGOFF_TYPE_FORCED: _ClassVar[LogoffType] - -class MaliciousBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MALICIOUS_BEHAVIOR_UNSPECIFIED: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_SEEN: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: _ClassVar[MaliciousBehavior] - -class MfaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MFA_TYPE_UNSPECIFIED: _ClassVar[MfaType] - MFA_TYPE_NONE: _ClassVar[MfaType] - MFA_TYPE_RSA: _ClassVar[MfaType] - MFA_TYPE_TOTP: _ClassVar[MfaType] - MFA_TYPE_WEB_AUTHN: _ClassVar[MfaType] - -class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - USER_TYPE_UNSPECIFIED: _ClassVar[UserType] - USER_TYPE_BUSINESS_USER: _ClassVar[UserType] - USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] - -class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: _ClassVar[DataExportChannelType] - DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: _ClassVar[DataExportChannelType] - DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: _ClassVar[DataExportChannelType] - DATA_EXPORT_CHANNEL_TYPE_PRINTER: _ClassVar[DataExportChannelType] - -class EventCategoryCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_IAM: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_CFG: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_DPP: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_RAL: _ClassVar[EventCategoryCode] - -class CMKAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - CMK_ACTION_UNSPECIFIED: _ClassVar[CMKAction] - CMK_ACTION_ONBOARD: _ClassVar[CMKAction] - CMK_ACTION_BLOCK: _ClassVar[CMKAction] - CMK_ACTION_SHUTDOWN: _ClassVar[CMKAction] - CMK_ACTION_CSEKFALLBACK: _ClassVar[CMKAction] - CMK_ACTION_RESTORE: _ClassVar[CMKAction] - CMK_ACTION_KMS_ONBOARD: _ClassVar[CMKAction] - CMK_ACTION_KMS_OFFBOARD: _ClassVar[CMKAction] - -class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - KEY_TYPE_UNSPECIFIED: _ClassVar[KeyType] - KEY_TYPE_SYSTEM: _ClassVar[KeyType] - KEY_TYPE_SERVICE: _ClassVar[KeyType] - KEY_TYPE_DATA: _ClassVar[KeyType] - KEY_TYPE_KEK: _ClassVar[KeyType] -CREDENTIAL_TYPE_UNSPECIFIED: CredentialType -CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType -CREDENTIAL_TYPE_KEY: CredentialType -CREDENTIAL_TYPE_SECRET: CredentialType -FAILURE_REASON_UNSPECIFIED: FailureReason -FAILURE_REASON_PASSWORD: FailureReason -FAILURE_REASON_MFA_FAILED: FailureReason -FAILURE_REASON_USER_NOT_FOUND: FailureReason -FAILURE_REASON_USER_LOCKED: FailureReason -FAILURE_REASON_USER_BLOCKED: FailureReason -FAILURE_REASON_USER_UNVERIFIED: FailureReason -FAILURE_REASON_USER_EXPIRED: FailureReason -FAILURE_REASON_USER_INVALID: FailureReason -FAILURE_REASON_INSECURE_CONNECTION: FailureReason -FAILURE_REASON_LOGIN_METHOD_DISABLED: FailureReason -FAILURE_REASON_TOKEN_EXPIRED: FailureReason -FAILURE_REASON_TOKEN_REVOKED: FailureReason -FAILURE_REASON_TOKEN_INVALID: FailureReason -FAILURE_REASON_SESSION_EXPIRED: FailureReason -FAILURE_REASON_SESSION_REVOKED: FailureReason -FAILURE_REASON_CERTIFICATE_EXPIRED: FailureReason -FAILURE_REASON_CERTIFICATE_REVOKED: FailureReason -FAILURE_REASON_CERTIFICATE_INVALID: FailureReason -LOGIN_METHOD_UNSPECIFIED: LoginMethod -LOGIN_METHOD_OPEN_ID_CONNECT: LoginMethod -LOGIN_METHOD_SAML: LoginMethod -LOGIN_METHOD_SAML2: LoginMethod -LOGIN_METHOD_EXTERNAL: LoginMethod -LOGIN_METHOD_SPNEGO: LoginMethod -LOGIN_METHOD_PASSWORD: LoginMethod -LOGIN_METHOD_RFC_TICKET: LoginMethod -LOGIN_METHOD_SNC: LoginMethod -LOGIN_METHOD_LOGON_TICKET: LoginMethod -LOGIN_METHOD_USER_SWITCH: LoginMethod -LOGIN_METHOD_X509_CERTIFICATE: LoginMethod -LOGIN_METHOD_APC_SESSION: LoginMethod -LOGIN_METHOD_INTERNAL: LoginMethod -LOGIN_METHOD_OAUTH2: LoginMethod -LOGIN_METHOD_REENTRANCE_TICKET: LoginMethod -LOGIN_METHOD_HTTP_SESSION: LoginMethod -LOGIN_METHOD_ASSERTION_TICKET: LoginMethod -LOGOFF_TYPE_UNSPECIFIED: LogoffType -LOGOFF_TYPE_REGULAR: LogoffType -LOGOFF_TYPE_FORCED: LogoffType -MALICIOUS_BEHAVIOR_UNSPECIFIED: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_SEEN: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: MaliciousBehavior -MFA_TYPE_UNSPECIFIED: MfaType -MFA_TYPE_NONE: MfaType -MFA_TYPE_RSA: MfaType -MFA_TYPE_TOTP: MfaType -MFA_TYPE_WEB_AUTHN: MfaType -USER_TYPE_UNSPECIFIED: UserType -USER_TYPE_BUSINESS_USER: UserType -USER_TYPE_TECHNICAL_USER: UserType -DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType -DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType -DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType -DATA_EXPORT_CHANNEL_TYPE_PRINTER: DataExportChannelType -EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: EventCategoryCode -EVENT_CATEGORY_CODE_IAM: EventCategoryCode -EVENT_CATEGORY_CODE_CFG: EventCategoryCode -EVENT_CATEGORY_CODE_DPP: EventCategoryCode -EVENT_CATEGORY_CODE_RAL: EventCategoryCode -CMK_ACTION_UNSPECIFIED: CMKAction -CMK_ACTION_ONBOARD: CMKAction -CMK_ACTION_BLOCK: CMKAction -CMK_ACTION_SHUTDOWN: CMKAction -CMK_ACTION_CSEKFALLBACK: CMKAction -CMK_ACTION_RESTORE: CMKAction -CMK_ACTION_KMS_ONBOARD: CMKAction -CMK_ACTION_KMS_OFFBOARD: CMKAction -KEY_TYPE_UNSPECIFIED: KeyType -KEY_TYPE_SYSTEM: KeyType -KEY_TYPE_SERVICE: KeyType -KEY_TYPE_DATA: KeyType -KEY_TYPE_KEK: KeyType - -class Metadata(_message.Message): - __slots__ = ("ts", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context", "infrastructure", "platform") - class AppContextEntry(_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: ... - class Infrastructure(_message.Message): - __slots__ = ("k8s", "cf", "other", "app") - class Kubernetes(_message.Message): - __slots__ = ("infrastructure_region", "cluster", "node", "pod") - INFRASTRUCTURE_REGION_FIELD_NUMBER: _ClassVar[int] - CLUSTER_FIELD_NUMBER: _ClassVar[int] - NODE_FIELD_NUMBER: _ClassVar[int] - POD_FIELD_NUMBER: _ClassVar[int] - infrastructure_region: str - cluster: str - node: str - pod: str - def __init__(self, infrastructure_region: _Optional[str] = ..., cluster: _Optional[str] = ..., node: _Optional[str] = ..., pod: _Optional[str] = ...) -> None: ... - class CloudFoundry(_message.Message): - __slots__ = ("btpregion", "org_id", "space_id", "app_id") - BTPREGION_FIELD_NUMBER: _ClassVar[int] - ORG_ID_FIELD_NUMBER: _ClassVar[int] - SPACE_ID_FIELD_NUMBER: _ClassVar[int] - APP_ID_FIELD_NUMBER: _ClassVar[int] - btpregion: str - org_id: str - space_id: str - app_id: str - def __init__(self, btpregion: _Optional[str] = ..., org_id: _Optional[str] = ..., space_id: _Optional[str] = ..., app_id: _Optional[str] = ...) -> None: ... - class Other(_message.Message): - __slots__ = ("runtime_type",) - RUNTIME_TYPE_FIELD_NUMBER: _ClassVar[int] - runtime_type: str - def __init__(self, runtime_type: _Optional[str] = ...) -> None: ... - class App(_message.Message): - __slots__ = ("image", "version") - IMAGE_FIELD_NUMBER: _ClassVar[int] - VERSION_FIELD_NUMBER: _ClassVar[int] - image: str - version: str - def __init__(self, image: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... - K8S_FIELD_NUMBER: _ClassVar[int] - CF_FIELD_NUMBER: _ClassVar[int] - OTHER_FIELD_NUMBER: _ClassVar[int] - APP_FIELD_NUMBER: _ClassVar[int] - k8s: Metadata.Infrastructure.Kubernetes - cf: Metadata.Infrastructure.CloudFoundry - other: Metadata.Infrastructure.Other - app: Metadata.Infrastructure.App - def __init__(self, k8s: _Optional[_Union[Metadata.Infrastructure.Kubernetes, _Mapping]] = ..., cf: _Optional[_Union[Metadata.Infrastructure.CloudFoundry, _Mapping]] = ..., other: _Optional[_Union[Metadata.Infrastructure.Other, _Mapping]] = ..., app: _Optional[_Union[Metadata.Infrastructure.App, _Mapping]] = ...) -> None: ... - class Platform(_message.Message): - __slots__ = ("btp", "unified_services", "other") - class BTP(_message.Message): - __slots__ = ("global_account_id", "sub_account_id") - GLOBAL_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] - SUB_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] - global_account_id: str - sub_account_id: str - def __init__(self, global_account_id: _Optional[str] = ..., sub_account_id: _Optional[str] = ...) -> None: ... - class UnifiedServices(_message.Message): - __slots__ = ("account_id", "folder_path", "resourcegroup_path") - ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] - FOLDER_PATH_FIELD_NUMBER: _ClassVar[int] - RESOURCEGROUP_PATH_FIELD_NUMBER: _ClassVar[int] - account_id: str - folder_path: str - resourcegroup_path: str - def __init__(self, account_id: _Optional[str] = ..., folder_path: _Optional[str] = ..., resourcegroup_path: _Optional[str] = ...) -> None: ... - class Other(_message.Message): - __slots__ = ("platform_name",) - PLATFORM_NAME_FIELD_NUMBER: _ClassVar[int] - platform_name: str - def __init__(self, platform_name: _Optional[str] = ...) -> None: ... - BTP_FIELD_NUMBER: _ClassVar[int] - UNIFIED_SERVICES_FIELD_NUMBER: _ClassVar[int] - OTHER_FIELD_NUMBER: _ClassVar[int] - btp: Metadata.Platform.BTP - unified_services: Metadata.Platform.UnifiedServices - other: Metadata.Platform.Other - def __init__(self, btp: _Optional[_Union[Metadata.Platform.BTP, _Mapping]] = ..., unified_services: _Optional[_Union[Metadata.Platform.UnifiedServices, _Mapping]] = ..., other: _Optional[_Union[Metadata.Platform.Other, _Mapping]] = ...) -> None: ... - TS_FIELD_NUMBER: _ClassVar[int] - SOURCE_IP_FIELD_NUMBER: _ClassVar[int] - USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] - USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] - APP_ID_FIELD_NUMBER: _ClassVar[int] - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] - APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] - INFRASTRUCTURE_FIELD_NUMBER: _ClassVar[int] - PLATFORM_FIELD_NUMBER: _ClassVar[int] - ts: str - source_ip: _containers.RepeatedScalarFieldContainer[str] - user_impersonated_id: str - user_initiator_id: str - app_id: str - tenant_id: str - user_session_context_id: str - app_context: _containers.ScalarMap[str, str] - infrastructure: Metadata.Infrastructure - platform: Metadata.Platform - def __init__(self, ts: _Optional[str] = ..., 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]] = ..., infrastructure: _Optional[_Union[Metadata.Infrastructure, _Mapping]] = ..., platform: _Optional[_Union[Metadata.Platform, _Mapping]] = ...) -> None: ... - -class AuditlogClear(_message.Message): - __slots__ = ("number_of_events",) - NUMBER_OF_EVENTS_FIELD_NUMBER: _ClassVar[int] - number_of_events: int - def __init__(self, number_of_events: _Optional[int] = ...) -> None: ... - -class AuditlogDisable(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class AuditlogEnable(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class AuthnPrivilegeToGroupAdd(_message.Message): - __slots__ = ("group", "privilege", "object_type", "object_id") - GROUP_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - group: str - privilege: str - object_type: str - object_id: str - def __init__(self, group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToGroupDelete(_message.Message): - __slots__ = ("group", "privilege", "object_type", "object_id") - GROUP_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - group: str - privilege: str - object_type: str - object_id: str - def __init__(self, group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToRoleAdd(_message.Message): - __slots__ = ("privilege", "role", "object_type", "object_id") - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - privilege: str - role: str - object_type: str - object_id: str - def __init__(self, privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToRoleDelete(_message.Message): - __slots__ = ("privilege", "role", "object_type", "object_id") - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - privilege: str - role: str - object_type: str - object_id: str - def __init__(self, privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToUserAdd(_message.Message): - __slots__ = ("privilege", "user", "object_type", "object_id") - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - privilege: str - user: str - object_type: str - object_id: str - def __init__(self, privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToUserDelete(_message.Message): - __slots__ = ("privilege", "user", "object_type", "object_id") - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - privilege: str - user: str - object_type: str - object_id: str - def __init__(self, privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnRoleToGroupAdd(_message.Message): - __slots__ = ("group", "role") - GROUP_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - group: str - role: str - def __init__(self, group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... - -class AuthnRoleToGroupDelete(_message.Message): - __slots__ = ("group", "role") - GROUP_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - group: str - role: str - def __init__(self, group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... - -class AuthnRoleToUserAdd(_message.Message): - __slots__ = ("role", "user") - ROLE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - role: str - user: str - def __init__(self, role: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... - -class AuthnRoleToUserDelete(_message.Message): - __slots__ = ("role", "user") - ROLE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - role: str - user: str - def __init__(self, role: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... - -class AuthnUserToGroupAdd(_message.Message): - __slots__ = ("group", "user") - GROUP_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - group: str - user: str - def __init__(self, group: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... - -class AuthnUserToGroupDelete(_message.Message): - __slots__ = ("group", "user") - GROUP_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - group: str - user: str - def __init__(self, group: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... - -class ConfigurationAdd(_message.Message): - __slots__ = ("value", "property_name", "object_type", "object_id") - VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - value: _struct_pb2.Value - property_name: str - object_type: str - object_id: str - def __init__(self, value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class ConfigurationChange(_message.Message): - __slots__ = ("new_value", "old_value", "property_name", "object_type", "object_id") - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - object_type: str - object_id: str - def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class ConfigurationDelete(_message.Message): - __slots__ = ("value", "property_name", "object_type", "object_id") - VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - value: _struct_pb2.Value - property_name: str - object_type: str - object_id: str - def __init__(self, value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class CredentialCreate(_message.Message): - __slots__ = ("credential_id", "credential_type") - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - credential_id: str - credential_type: CredentialType - def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... - -class CredentialDelete(_message.Message): - __slots__ = ("credential_id", "credential_type") - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - credential_id: str - credential_type: CredentialType - def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... - -class CredentialExpiration(_message.Message): - __slots__ = ("credential_id", "credential_type", "expiration_date") - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - EXPIRATION_DATE_FIELD_NUMBER: _ClassVar[int] - credential_id: str - credential_type: CredentialType - expiration_date: _timestamp_pb2.Timestamp - def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., expiration_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... - -class CredentialRevokation(_message.Message): - __slots__ = ("credential_id", "credential_type", "revokation_date") - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - REVOKATION_DATE_FIELD_NUMBER: _ClassVar[int] - credential_id: str - credential_type: CredentialType - revokation_date: _timestamp_pb2.Timestamp - def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., revokation_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... - -class DataModelChange(_message.Message): - __slots__ = ("model_id", "new_value", "old_value", "property_name") - MODEL_ID_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - model_id: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - def __init__(self, model_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... - -class DataModelCreate(_message.Message): - __slots__ = ("model_id",) - MODEL_ID_FIELD_NUMBER: _ClassVar[int] - model_id: str - def __init__(self, model_id: _Optional[str] = ...) -> None: ... - -class DataModelDelete(_message.Message): - __slots__ = ("model_id",) - MODEL_ID_FIELD_NUMBER: _ClassVar[int] - model_id: str - def __init__(self, model_id: _Optional[str] = ...) -> None: ... - -class DataAccess(_message.Message): - __slots__ = ("channel_type", "channel_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") - CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] - CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] - channel_type: str - channel_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - attachment_type: str - attachment_id: str - def __init__(self, channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... - -class DataCreate(_message.Message): - __slots__ = ("object_type", "object_id", "attribute", "value") - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DataDelete(_message.Message): - __slots__ = ("object_type", "object_id", "attribute", "value") - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DataModification(_message.Message): - __slots__ = ("object_type", "object_id", "attribute", "new_value", "old_value") - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - object_type: str - object_id: str - attribute: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DataExport(_message.Message): - __slots__ = ("channel_type", "channel_id", "object_type", "object_id", "destination_uri") - CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] - CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - DESTINATION_URI_FIELD_NUMBER: _ClassVar[int] - channel_type: DataExportChannelType - channel_id: str - object_type: str - object_id: str - destination_uri: str - def __init__(self, channel_type: _Optional[_Union[DataExportChannelType, str]] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., destination_uri: _Optional[str] = ...) -> None: ... - -class DppDataAccess(_message.Message): - __slots__ = ("channel_type", "channel_id", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") - CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] - CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] - channel_type: str - channel_id: str - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - attachment_type: str - attachment_id: str - def __init__(self, channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... - -class DppDataCreate(_message.Message): - __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DppDataDelete(_message.Message): - __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DppDataModification(_message.Message): - __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "new_value", "old_value") - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class JobChange(_message.Message): - __slots__ = ("job_id", "new_value", "old_value", "property_name") - JOB_ID_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - job_id: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - def __init__(self, job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... - -class JobCreate(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - -class JobDelete(_message.Message): - __slots__ = ("job_id",) - JOB_ID_FIELD_NUMBER: _ClassVar[int] - job_id: str - def __init__(self, job_id: _Optional[str] = ...) -> None: ... - -class JobStatusChange(_message.Message): - __slots__ = ("job_id", "new_value", "old_value", "property_name") - JOB_ID_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - job_id: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - def __init__(self, job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... - -class MaliciousRequestDetected(_message.Message): - __slots__ = ("parameter", "expected_value", "received_value", "behavior") - PARAMETER_FIELD_NUMBER: _ClassVar[int] - EXPECTED_VALUE_FIELD_NUMBER: _ClassVar[int] - RECEIVED_VALUE_FIELD_NUMBER: _ClassVar[int] - BEHAVIOR_FIELD_NUMBER: _ClassVar[int] - parameter: str - expected_value: str - received_value: str - behavior: MaliciousBehavior - def __init__(self, parameter: _Optional[str] = ..., expected_value: _Optional[str] = ..., received_value: _Optional[str] = ..., behavior: _Optional[_Union[MaliciousBehavior, str]] = ...) -> None: ... - -class PasswordChange(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class PasswordExpiration(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class PasswordReset(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class TenantModification(_message.Message): - __slots__ = ("new_value", "old_value", "property_name", "tenant_id") - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - tenant_id: str - def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ... - -class TenantOffboarding(_message.Message): - __slots__ = ("tenant_id",) - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - tenant_id: str - def __init__(self, tenant_id: _Optional[str] = ...) -> None: ... - -class TenantOnboarding(_message.Message): - __slots__ = ("tenant_id",) - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - tenant_id: str - def __init__(self, tenant_id: _Optional[str] = ...) -> None: ... - -class UnauthenticatedRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class UnauthorizedRequest(_message.Message): - __slots__ = () - def __init__(self) -> None: ... - -class UserActivate(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserBlock(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserCreate(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserDataModification(_message.Message): - __slots__ = ("new_value", "old_value", "property_name", "user_id") - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - user_id: str - def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ... - -class UserDelete(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserImpersonationStart(_message.Message): - __slots__ = ("user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") - 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] - user_initiator_id: str - user_initiator_type: UserType - user_impersonated_id: str - user_impersonated_type: UserType - context: str - def __init__(self, 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] = ...) -> None: ... - -class UserImpersonationFinish(_message.Message): - __slots__ = ("user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") - 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] - user_initiator_id: str - user_initiator_type: UserType - user_impersonated_id: str - user_impersonated_type: UserType - context: str - def __init__(self, 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] = ...) -> None: ... - -class UserLock(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserUnlock(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserVerify(_message.Message): - __slots__ = ("user_id",) - USER_ID_FIELD_NUMBER: _ClassVar[int] - user_id: str - def __init__(self, user_id: _Optional[str] = ...) -> None: ... - -class UserLoginFailure(_message.Message): - __slots__ = ("failure_reason", "method") - FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] - METHOD_FIELD_NUMBER: _ClassVar[int] - failure_reason: FailureReason - method: LoginMethod - def __init__(self, failure_reason: _Optional[_Union[FailureReason, str]] = ..., method: _Optional[_Union[LoginMethod, str]] = ...) -> None: ... - -class UserLoginSuccess(_message.Message): - __slots__ = ("is_admin", "method", "mfa_type", "user_type") - IS_ADMIN_FIELD_NUMBER: _ClassVar[int] - METHOD_FIELD_NUMBER: _ClassVar[int] - MFA_TYPE_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - is_admin: bool - method: LoginMethod - mfa_type: MfaType - user_type: UserType - def __init__(self, is_admin: _Optional[bool] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserLogoff(_message.Message): - __slots__ = ("logoff_type",) - LOGOFF_TYPE_FIELD_NUMBER: _ClassVar[int] - logoff_type: LogoffType - def __init__(self, logoff_type: _Optional[_Union[LogoffType, str]] = ...) -> None: ... - -class ZzzCustomEvent(_message.Message): - __slots__ = ("custom",) - CUSTOM_FIELD_NUMBER: _ClassVar[int] - custom: _struct_pb2.Value - def __init__(self, custom: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class CMKOnboarding(_message.Message): - __slots__ = ("system_id", "cmk_id") - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - system_id: str - cmk_id: str - def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class CMKOffboarding(_message.Message): - __slots__ = ("system_id", "cmk_id") - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - system_id: str - cmk_id: str - def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class CMKSwitch(_message.Message): - __slots__ = ("system_id", "cmk_id_old", "cmk_id_new") - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_OLD_FIELD_NUMBER: _ClassVar[int] - CMK_ID_NEW_FIELD_NUMBER: _ClassVar[int] - system_id: str - cmk_id_old: str - cmk_id_new: str - def __init__(self, system_id: _Optional[str] = ..., cmk_id_old: _Optional[str] = ..., cmk_id_new: _Optional[str] = ...) -> None: ... - -class CMKTenantModification(_message.Message): - __slots__ = ("system_id", "cmk_id", "cmk_action") - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ACTION_FIELD_NUMBER: _ClassVar[int] - system_id: str - cmk_id: str - cmk_action: CMKAction - def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ..., cmk_action: _Optional[_Union[CMKAction, str]] = ...) -> None: ... - -class CMKCreate(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKDelete(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKRestore(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKDisable(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKEnable(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKRotate(_message.Message): - __slots__ = ("cmk_id",) - CMK_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - def __init__(self, cmk_id: _Optional[str] = ...) -> None: ... - -class KeyCreate(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyDelete(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyRestore(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyPurge(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyRotate(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyEnable(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyDisable(_message.Message): - __slots__ = ("key_type", "key_id", "system_id", "cmk_id") - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class CMKUnavailable(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKAvailable(_message.Message): - __slots__ = ("cmk_id", "kms_system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKDetach(_message.Message): - __slots__ = ("cmk_id", "kms_system_id", "system_id") - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - cmk_id: str - kms_system_id: str - system_id: str - def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ..., system_id: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py deleted file mode 100644 index e69de29..0000000 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 deleted file mode 100644 index c507436..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py +++ /dev/null @@ -1,464 +0,0 @@ -# -*- coding: utf-8 -*- -# Generated by the protocol buffer compiler. DO NOT EDIT! -# NO CHECKED-IN PROTOBUF GENCODE -# source: sap/auditlog/auditevent/v2/auditevent.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, - '', - 'sap/auditlog/auditevent/v2/auditevent.proto' -) -# @@protoc_insertion_point(imports) - -_sym_db = _symbol_database.Default() - - -from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 -from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 -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') - -_globals = globals() -_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) -_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sap.auditlog.auditevent.v2.auditevent_pb2', _globals) -if not _descriptor._USE_C_DESCRIPTORS: - _globals['DESCRIPTOR']._loaded_options = None - _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' - _globals['_COMMON_APPCONTEXTENTRY']._loaded_options = None - _globals['_COMMON_APPCONTEXTENTRY']._serialized_options = b'8\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['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\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['privilege']._loaded_options = None - _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None - _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None - _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None - _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None - _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None - _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None - _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None - _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None - _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['_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['_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['_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['property_name']._loaded_options = None - _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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_id']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\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_id']._loaded_options = None - _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['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['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_id']._loaded_options = None - _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None - _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None - _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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['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_id']._loaded_options = None - _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\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_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['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_id']._loaded_options = None - _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['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['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_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['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_id']._loaded_options = None - _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['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_id']._loaded_options = None - _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['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_id']._loaded_options = None - _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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['property_name']._loaded_options = None - _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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['property_name']._loaded_options = None - _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['tenant_id']._loaded_options = None - _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['_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['user_id']._loaded_options = None - _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['context']._loaded_options = None - _globals['_USERIMPERSONATIONSTART'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\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_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['context']._loaded_options = None - _globals['_USERIMPERSONATIONFINISH'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\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['_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['_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 -# @@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 deleted file mode 100644 index 1e2322a..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi +++ /dev/null @@ -1,1319 +0,0 @@ -import datetime - -from buf.validate import validate_pb2 as _validate_pb2 -from google.protobuf import struct_pb2 as _struct_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 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 CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] - CREDENTIAL_TYPE_X509_CERTIFICATE: _ClassVar[CredentialType] - CREDENTIAL_TYPE_KEY: _ClassVar[CredentialType] - CREDENTIAL_TYPE_SECRET: _ClassVar[CredentialType] - -class FailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - FAILURE_REASON_UNSPECIFIED: _ClassVar[FailureReason] - FAILURE_REASON_PASSWORD: _ClassVar[FailureReason] - FAILURE_REASON_MFA_FAILED: _ClassVar[FailureReason] - FAILURE_REASON_USER_NOT_FOUND: _ClassVar[FailureReason] - FAILURE_REASON_USER_LOCKED: _ClassVar[FailureReason] - FAILURE_REASON_USER_BLOCKED: _ClassVar[FailureReason] - FAILURE_REASON_USER_UNVERIFIED: _ClassVar[FailureReason] - FAILURE_REASON_USER_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_USER_INVALID: _ClassVar[FailureReason] - FAILURE_REASON_INSECURE_CONNECTION: _ClassVar[FailureReason] - FAILURE_REASON_LOGIN_METHOD_DISABLED: _ClassVar[FailureReason] - FAILURE_REASON_TOKEN_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_TOKEN_REVOKED: _ClassVar[FailureReason] - FAILURE_REASON_TOKEN_INVALID: _ClassVar[FailureReason] - FAILURE_REASON_SESSION_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_SESSION_REVOKED: _ClassVar[FailureReason] - FAILURE_REASON_CERTIFICATE_EXPIRED: _ClassVar[FailureReason] - FAILURE_REASON_CERTIFICATE_REVOKED: _ClassVar[FailureReason] - FAILURE_REASON_CERTIFICATE_INVALID: _ClassVar[FailureReason] - FAILURE_REASON_GEOBLOCK: _ClassVar[FailureReason] - FAILURE_REASON_MFA_REQUESTED: _ClassVar[FailureReason] - FAILURE_REASON_CRED_REQUESTED: _ClassVar[FailureReason] - -class LoginMethod(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - LOGIN_METHOD_UNSPECIFIED: _ClassVar[LoginMethod] - LOGIN_METHOD_OPEN_ID_CONNECT: _ClassVar[LoginMethod] - LOGIN_METHOD_SAML: _ClassVar[LoginMethod] - LOGIN_METHOD_SAML2: _ClassVar[LoginMethod] - LOGIN_METHOD_EXTERNAL: _ClassVar[LoginMethod] - LOGIN_METHOD_SPNEGO: _ClassVar[LoginMethod] - LOGIN_METHOD_PASSWORD: _ClassVar[LoginMethod] - LOGIN_METHOD_RFC_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_SNC: _ClassVar[LoginMethod] - LOGIN_METHOD_LOGON_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_USER_SWITCH: _ClassVar[LoginMethod] - LOGIN_METHOD_X509_CERTIFICATE: _ClassVar[LoginMethod] - LOGIN_METHOD_APC_SESSION: _ClassVar[LoginMethod] - LOGIN_METHOD_INTERNAL: _ClassVar[LoginMethod] - LOGIN_METHOD_OAUTH2: _ClassVar[LoginMethod] - LOGIN_METHOD_REENTRANCE_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_HTTP_SESSION: _ClassVar[LoginMethod] - LOGIN_METHOD_ASSERTION_TICKET: _ClassVar[LoginMethod] - LOGIN_METHOD_REMCOOKIE: _ClassVar[LoginMethod] - LOGIN_METHOD_BIOMETRIC: _ClassVar[LoginMethod] - LOGIN_METHOD_PASSCODE: _ClassVar[LoginMethod] - LOGIN_METHOD_MOBSSO: _ClassVar[LoginMethod] - LOGIN_METHOD_EMAIL_TOKEN: _ClassVar[LoginMethod] - LOGIN_METHOD_BEARER_TOKEN: _ClassVar[LoginMethod] - -class LogoffType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - LOGOFF_TYPE_UNSPECIFIED: _ClassVar[LogoffType] - LOGOFF_TYPE_REGULAR: _ClassVar[LogoffType] - LOGOFF_TYPE_FORCED: _ClassVar[LogoffType] - -class MaliciousBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MALICIOUS_BEHAVIOR_UNSPECIFIED: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_SEEN: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: _ClassVar[MaliciousBehavior] - MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: _ClassVar[MaliciousBehavior] - -class MfaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - MFA_TYPE_UNSPECIFIED: _ClassVar[MfaType] - MFA_TYPE_NONE: _ClassVar[MfaType] - MFA_TYPE_RSA: _ClassVar[MfaType] - MFA_TYPE_TOTP: _ClassVar[MfaType] - MFA_TYPE_WEB_AUTHN: _ClassVar[MfaType] - MFA_TYPE_SMS: _ClassVar[MfaType] - MFA_TYPE_EMAIL: _ClassVar[MfaType] - -class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - USER_TYPE_UNSPECIFIED: _ClassVar[UserType] - USER_TYPE_BUSINESS_USER: _ClassVar[UserType] - USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] - -class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: _ClassVar[DataExportChannelType] - DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: _ClassVar[DataExportChannelType] - DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: _ClassVar[DataExportChannelType] - DATA_EXPORT_CHANNEL_TYPE_PRINTER: _ClassVar[DataExportChannelType] - -class EventCategoryCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_IAM: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_CFG: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_DPP: _ClassVar[EventCategoryCode] - EVENT_CATEGORY_CODE_RAL: _ClassVar[EventCategoryCode] - -class CMKAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - CMK_ACTION_UNSPECIFIED: _ClassVar[CMKAction] - CMK_ACTION_ONBOARD: _ClassVar[CMKAction] - CMK_ACTION_BLOCK: _ClassVar[CMKAction] - CMK_ACTION_SHUTDOWN: _ClassVar[CMKAction] - CMK_ACTION_CSEKFALLBACK: _ClassVar[CMKAction] - CMK_ACTION_RESTORE: _ClassVar[CMKAction] - CMK_ACTION_KMS_ONBOARD: _ClassVar[CMKAction] - CMK_ACTION_KMS_OFFBOARD: _ClassVar[CMKAction] - -class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - KEY_TYPE_UNSPECIFIED: _ClassVar[KeyType] - KEY_TYPE_SYSTEM: _ClassVar[KeyType] - KEY_TYPE_SERVICE: _ClassVar[KeyType] - KEY_TYPE_DATA: _ClassVar[KeyType] - KEY_TYPE_KEK: _ClassVar[KeyType] - -class VirusChannel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): - __slots__ = () - VIRUS_CHANNEL_UNSPECIFIED: _ClassVar[VirusChannel] - VIRUS_CHANNEL_UPLOAD: _ClassVar[VirusChannel] - VIRUS_CHANNEL_SCAN: _ClassVar[VirusChannel] - -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] -CREDENTIAL_TYPE_UNSPECIFIED: CredentialType -CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType -CREDENTIAL_TYPE_KEY: CredentialType -CREDENTIAL_TYPE_SECRET: CredentialType -FAILURE_REASON_UNSPECIFIED: FailureReason -FAILURE_REASON_PASSWORD: FailureReason -FAILURE_REASON_MFA_FAILED: FailureReason -FAILURE_REASON_USER_NOT_FOUND: FailureReason -FAILURE_REASON_USER_LOCKED: FailureReason -FAILURE_REASON_USER_BLOCKED: FailureReason -FAILURE_REASON_USER_UNVERIFIED: FailureReason -FAILURE_REASON_USER_EXPIRED: FailureReason -FAILURE_REASON_USER_INVALID: FailureReason -FAILURE_REASON_INSECURE_CONNECTION: FailureReason -FAILURE_REASON_LOGIN_METHOD_DISABLED: FailureReason -FAILURE_REASON_TOKEN_EXPIRED: FailureReason -FAILURE_REASON_TOKEN_REVOKED: FailureReason -FAILURE_REASON_TOKEN_INVALID: FailureReason -FAILURE_REASON_SESSION_EXPIRED: FailureReason -FAILURE_REASON_SESSION_REVOKED: FailureReason -FAILURE_REASON_CERTIFICATE_EXPIRED: FailureReason -FAILURE_REASON_CERTIFICATE_REVOKED: FailureReason -FAILURE_REASON_CERTIFICATE_INVALID: FailureReason -FAILURE_REASON_GEOBLOCK: FailureReason -FAILURE_REASON_MFA_REQUESTED: FailureReason -FAILURE_REASON_CRED_REQUESTED: FailureReason -LOGIN_METHOD_UNSPECIFIED: LoginMethod -LOGIN_METHOD_OPEN_ID_CONNECT: LoginMethod -LOGIN_METHOD_SAML: LoginMethod -LOGIN_METHOD_SAML2: LoginMethod -LOGIN_METHOD_EXTERNAL: LoginMethod -LOGIN_METHOD_SPNEGO: LoginMethod -LOGIN_METHOD_PASSWORD: LoginMethod -LOGIN_METHOD_RFC_TICKET: LoginMethod -LOGIN_METHOD_SNC: LoginMethod -LOGIN_METHOD_LOGON_TICKET: LoginMethod -LOGIN_METHOD_USER_SWITCH: LoginMethod -LOGIN_METHOD_X509_CERTIFICATE: LoginMethod -LOGIN_METHOD_APC_SESSION: LoginMethod -LOGIN_METHOD_INTERNAL: LoginMethod -LOGIN_METHOD_OAUTH2: LoginMethod -LOGIN_METHOD_REENTRANCE_TICKET: LoginMethod -LOGIN_METHOD_HTTP_SESSION: LoginMethod -LOGIN_METHOD_ASSERTION_TICKET: LoginMethod -LOGIN_METHOD_REMCOOKIE: LoginMethod -LOGIN_METHOD_BIOMETRIC: LoginMethod -LOGIN_METHOD_PASSCODE: LoginMethod -LOGIN_METHOD_MOBSSO: LoginMethod -LOGIN_METHOD_EMAIL_TOKEN: LoginMethod -LOGIN_METHOD_BEARER_TOKEN: LoginMethod -LOGOFF_TYPE_UNSPECIFIED: LogoffType -LOGOFF_TYPE_REGULAR: LogoffType -LOGOFF_TYPE_FORCED: LogoffType -MALICIOUS_BEHAVIOR_UNSPECIFIED: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_SEEN: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: MaliciousBehavior -MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: MaliciousBehavior -MFA_TYPE_UNSPECIFIED: MfaType -MFA_TYPE_NONE: MfaType -MFA_TYPE_RSA: MfaType -MFA_TYPE_TOTP: MfaType -MFA_TYPE_WEB_AUTHN: MfaType -MFA_TYPE_SMS: MfaType -MFA_TYPE_EMAIL: MfaType -USER_TYPE_UNSPECIFIED: UserType -USER_TYPE_BUSINESS_USER: UserType -USER_TYPE_TECHNICAL_USER: UserType -DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType -DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType -DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType -DATA_EXPORT_CHANNEL_TYPE_PRINTER: DataExportChannelType -EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: EventCategoryCode -EVENT_CATEGORY_CODE_IAM: EventCategoryCode -EVENT_CATEGORY_CODE_CFG: EventCategoryCode -EVENT_CATEGORY_CODE_DPP: EventCategoryCode -EVENT_CATEGORY_CODE_RAL: EventCategoryCode -CMK_ACTION_UNSPECIFIED: CMKAction -CMK_ACTION_ONBOARD: CMKAction -CMK_ACTION_BLOCK: CMKAction -CMK_ACTION_SHUTDOWN: CMKAction -CMK_ACTION_CSEKFALLBACK: CMKAction -CMK_ACTION_RESTORE: CMKAction -CMK_ACTION_KMS_ONBOARD: CMKAction -CMK_ACTION_KMS_OFFBOARD: CMKAction -KEY_TYPE_UNSPECIFIED: KeyType -KEY_TYPE_SYSTEM: KeyType -KEY_TYPE_SERVICE: KeyType -KEY_TYPE_DATA: KeyType -KEY_TYPE_KEK: KeyType -VIRUS_CHANNEL_UNSPECIFIED: VirusChannel -VIRUS_CHANNEL_UPLOAD: VirusChannel -VIRUS_CHANNEL_SCAN: VirusChannel -LOGIN_PROTOCOL_UNSPECIFIED: LoginProtocol -LOGIN_PROTOCOL_SAML2: LoginProtocol -LOGIN_PROTOCOL_OIDC: LoginProtocol -LOGIN_PROTOCOL_HTTP: LoginProtocol - -class Common(_message.Message): - __slots__ = ("timestamp", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context") - class AppContextEntry(_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: ... - TIMESTAMP_FIELD_NUMBER: _ClassVar[int] - SOURCE_IP_FIELD_NUMBER: _ClassVar[int] - USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] - USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] - APP_ID_FIELD_NUMBER: _ClassVar[int] - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] - APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] - timestamp: _timestamp_pb2.Timestamp - source_ip: _containers.RepeatedScalarFieldContainer[str] - user_impersonated_id: str - user_initiator_id: str - app_id: str - 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: ... - -class AuditlogClear(_message.Message): - __slots__ = ("common", "number_of_events") - COMMON_FIELD_NUMBER: _ClassVar[int] - NUMBER_OF_EVENTS_FIELD_NUMBER: _ClassVar[int] - common: Common - number_of_events: int - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., number_of_events: _Optional[int] = ...) -> None: ... - -class AuditlogDisable(_message.Message): - __slots__ = ("common",) - COMMON_FIELD_NUMBER: _ClassVar[int] - common: Common - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... - -class AuditlogEnable(_message.Message): - __slots__ = ("common",) - COMMON_FIELD_NUMBER: _ClassVar[int] - common: Common - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... - -class AuthnPrivilegeToGroupAdd(_message.Message): - __slots__ = ("common", "group", "privilege", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - GROUP_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - group: str - privilege: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToGroupDelete(_message.Message): - __slots__ = ("common", "group", "privilege", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - GROUP_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - group: str - privilege: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToRoleAdd(_message.Message): - __slots__ = ("common", "privilege", "role", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - privilege: str - role: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToRoleDelete(_message.Message): - __slots__ = ("common", "privilege", "role", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - privilege: str - role: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class AuthnPrivilegeToUserAdd(_message.Message): - __slots__ = ("common", "privilege", "user", "object_type", "object_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - privilege: str - user: str - object_type: str - object_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class AuthnPrivilegeToUserDelete(_message.Message): - __slots__ = ("common", "privilege", "user", "object_type", "object_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - PRIVILEGE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - privilege: str - user: str - object_type: str - object_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class AuthnRoleToGroupAdd(_message.Message): - __slots__ = ("common", "group", "role") - COMMON_FIELD_NUMBER: _ClassVar[int] - GROUP_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - common: Common - group: str - role: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... - -class AuthnRoleToGroupDelete(_message.Message): - __slots__ = ("common", "group", "role") - COMMON_FIELD_NUMBER: _ClassVar[int] - GROUP_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - common: Common - group: str - role: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... - -class AuthnRoleToUserAdd(_message.Message): - __slots__ = ("common", "role", "user", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - role: str - user: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., role: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class AuthnRoleToUserDelete(_message.Message): - __slots__ = ("common", "role", "user", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - ROLE_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - role: str - user: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., role: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class AuthnUserToGroupAdd(_message.Message): - __slots__ = ("common", "group", "user", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - GROUP_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - group: str - user: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class AuthnUserToGroupDelete(_message.Message): - __slots__ = ("common", "group", "user", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - GROUP_FIELD_NUMBER: _ClassVar[int] - USER_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - group: str - user: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class ConfigurationAdd(_message.Message): - __slots__ = ("common", "value", "property_name", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - value: _struct_pb2.Value - property_name: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class ConfigurationChange(_message.Message): - __slots__ = ("common", "new_value", "old_value", "property_name", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class ConfigurationDelete(_message.Message): - __slots__ = ("common", "value", "property_name", "object_type", "object_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - value: _struct_pb2.Value - property_name: str - object_type: str - object_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... - -class CredentialCreate(_message.Message): - __slots__ = ("common", "credential_id", "credential_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - credential_id: str - credential_type: CredentialType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... - -class CredentialDelete(_message.Message): - __slots__ = ("common", "credential_id", "credential_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - credential_id: str - credential_type: CredentialType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... - -class CredentialExpiration(_message.Message): - __slots__ = ("common", "credential_id", "credential_type", "expiration_date") - COMMON_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - EXPIRATION_DATE_FIELD_NUMBER: _ClassVar[int] - common: Common - credential_id: str - credential_type: CredentialType - expiration_date: _timestamp_pb2.Timestamp - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., expiration_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... - -class CredentialRevokation(_message.Message): - __slots__ = ("common", "credential_id", "credential_type", "revokation_date") - COMMON_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] - CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] - REVOKATION_DATE_FIELD_NUMBER: _ClassVar[int] - common: Common - credential_id: str - credential_type: CredentialType - revokation_date: _timestamp_pb2.Timestamp - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., revokation_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... - -class DataModelChange(_message.Message): - __slots__ = ("common", "model_id", "new_value", "old_value", "property_name") - COMMON_FIELD_NUMBER: _ClassVar[int] - MODEL_ID_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - common: Common - model_id: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... - -class DataModelCreate(_message.Message): - __slots__ = ("common", "model_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - MODEL_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - model_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ...) -> None: ... - -class DataModelDelete(_message.Message): - __slots__ = ("common", "model_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - MODEL_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - model_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ...) -> None: ... - -class DataAccess(_message.Message): - __slots__ = ("common", "channel_type", "channel_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] - CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - channel_type: str - channel_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - attachment_type: str - attachment_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... - -class DataCreate(_message.Message): - __slots__ = ("common", "object_type", "object_id", "attribute", "value") - COMMON_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - common: Common - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DataDelete(_message.Message): - __slots__ = ("common", "object_type", "object_id", "attribute", "value") - COMMON_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - common: Common - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DataModification(_message.Message): - __slots__ = ("common", "object_type", "object_id", "attribute", "new_value", "old_value") - COMMON_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - common: Common - object_type: str - object_id: str - attribute: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DataExport(_message.Message): - __slots__ = ("common", "channel_type", "channel_id", "object_type", "object_id", "destination_uri") - COMMON_FIELD_NUMBER: _ClassVar[int] - CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] - CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - DESTINATION_URI_FIELD_NUMBER: _ClassVar[int] - common: Common - channel_type: DataExportChannelType - channel_id: str - object_type: str - object_id: str - destination_uri: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[_Union[DataExportChannelType, str]] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., destination_uri: _Optional[str] = ...) -> None: ... - -class DppDataAccess(_message.Message): - __slots__ = ("common", "channel_type", "channel_id", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] - CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] - ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - channel_type: str - channel_id: str - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - attachment_type: str - attachment_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... - -class DppDataCreate(_message.Message): - __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") - COMMON_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - common: Common - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DppDataDelete(_message.Message): - __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") - COMMON_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - VALUE_FIELD_NUMBER: _ClassVar[int] - common: Common - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - value: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class DppDataModification(_message.Message): - __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "new_value", "old_value") - COMMON_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] - OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] - OBJECT_ID_FIELD_NUMBER: _ClassVar[int] - ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - common: Common - data_subject_type: str - data_subject_id: str - object_type: str - object_id: str - attribute: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class JobChange(_message.Message): - __slots__ = ("common", "job_id", "new_value", "old_value", "property_name") - COMMON_FIELD_NUMBER: _ClassVar[int] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - common: Common - job_id: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... - -class JobCreate(_message.Message): - __slots__ = ("common", "job_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - job_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ...) -> None: ... - -class JobDelete(_message.Message): - __slots__ = ("common", "job_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - job_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ...) -> None: ... - -class JobStatusChange(_message.Message): - __slots__ = ("common", "job_id", "new_value", "old_value", "property_name") - COMMON_FIELD_NUMBER: _ClassVar[int] - JOB_ID_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - common: Common - job_id: str - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... - -class MaliciousRequestDetected(_message.Message): - __slots__ = ("common", "parameter", "expected_value", "received_value", "behavior") - COMMON_FIELD_NUMBER: _ClassVar[int] - PARAMETER_FIELD_NUMBER: _ClassVar[int] - EXPECTED_VALUE_FIELD_NUMBER: _ClassVar[int] - RECEIVED_VALUE_FIELD_NUMBER: _ClassVar[int] - BEHAVIOR_FIELD_NUMBER: _ClassVar[int] - common: Common - parameter: str - expected_value: str - received_value: str - behavior: MaliciousBehavior - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., parameter: _Optional[str] = ..., expected_value: _Optional[str] = ..., received_value: _Optional[str] = ..., behavior: _Optional[_Union[MaliciousBehavior, str]] = ...) -> None: ... - -class PasswordChange(_message.Message): - __slots__ = ("common", "user_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... - -class PasswordExpiration(_message.Message): - __slots__ = ("common", "user_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... - -class PasswordReset(_message.Message): - __slots__ = ("common", "user_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... - -class TenantModification(_message.Message): - __slots__ = ("common", "new_value", "old_value", "property_name", "tenant_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - tenant_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ... - -class TenantOffboarding(_message.Message): - __slots__ = ("common", "tenant_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - tenant_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., tenant_id: _Optional[str] = ...) -> None: ... - -class TenantOnboarding(_message.Message): - __slots__ = ("common", "tenant_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - TENANT_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - tenant_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., tenant_id: _Optional[str] = ...) -> None: ... - -class UnauthenticatedRequest(_message.Message): - __slots__ = ("common",) - COMMON_FIELD_NUMBER: _ClassVar[int] - common: Common - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... - -class UnauthorizedRequest(_message.Message): - __slots__ = ("common", "unauthorized_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - UNAUTHORIZED_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - unauthorized_type: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., unauthorized_type: _Optional[str] = ...) -> None: ... - -class UserActivate(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserBlock(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserCreate(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserDataModification(_message.Message): - __slots__ = ("common", "new_value", "old_value", "property_name", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - NEW_VALUE_FIELD_NUMBER: _ClassVar[int] - OLD_VALUE_FIELD_NUMBER: _ClassVar[int] - PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - new_value: _struct_pb2.Value - old_value: _struct_pb2.Value - property_name: str - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserDelete(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserImpersonationStart(_message.Message): - __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") - 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] - common: Common - user_initiator_id: str - user_initiator_type: UserType - user_impersonated_id: str - user_impersonated_type: UserType - context: str - 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] = ...) -> None: ... - -class UserImpersonationFinish(_message.Message): - __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") - 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] - common: Common - user_initiator_id: str - user_initiator_type: UserType - user_impersonated_id: str - user_impersonated_type: UserType - context: str - 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] = ...) -> None: ... - -class UserLock(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserUnlock(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserVerify(_message.Message): - __slots__ = ("common", "user_id", "user_type") - COMMON_FIELD_NUMBER: _ClassVar[int] - USER_ID_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - common: Common - user_id: str - user_type: UserType - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... - -class UserLoginFailure(_message.Message): - __slots__ = ("common", "failure_reason", "method", "is_admin", "mfa_type", "user_type", "login_protocol") - COMMON_FIELD_NUMBER: _ClassVar[int] - FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] - METHOD_FIELD_NUMBER: _ClassVar[int] - IS_ADMIN_FIELD_NUMBER: _ClassVar[int] - MFA_TYPE_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] - common: Common - failure_reason: FailureReason - method: LoginMethod - is_admin: bool - mfa_type: MfaType - user_type: UserType - login_protocol: LoginProtocol - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., failure_reason: _Optional[_Union[FailureReason, str]] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., is_admin: _Optional[bool] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... - -class UserLoginSuccess(_message.Message): - __slots__ = ("common", "is_admin", "method", "mfa_type", "user_type", "login_protocol") - COMMON_FIELD_NUMBER: _ClassVar[int] - IS_ADMIN_FIELD_NUMBER: _ClassVar[int] - METHOD_FIELD_NUMBER: _ClassVar[int] - MFA_TYPE_FIELD_NUMBER: _ClassVar[int] - USER_TYPE_FIELD_NUMBER: _ClassVar[int] - LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] - common: Common - is_admin: bool - method: LoginMethod - mfa_type: MfaType - user_type: UserType - login_protocol: LoginProtocol - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., is_admin: _Optional[bool] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... - -class UserLogoff(_message.Message): - __slots__ = ("common", "logoff_type", "login_protocol") - COMMON_FIELD_NUMBER: _ClassVar[int] - LOGOFF_TYPE_FIELD_NUMBER: _ClassVar[int] - LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] - common: Common - logoff_type: LogoffType - login_protocol: LoginProtocol - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., logoff_type: _Optional[_Union[LogoffType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... - -class ZzzCustomEvent(_message.Message): - __slots__ = ("common", "custom") - COMMON_FIELD_NUMBER: _ClassVar[int] - CUSTOM_FIELD_NUMBER: _ClassVar[int] - common: Common - custom: _struct_pb2.Value - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., custom: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... - -class CMKOnboarding(_message.Message): - __slots__ = ("common", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class CMKOffboarding(_message.Message): - __slots__ = ("common", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class CMKSwitch(_message.Message): - __slots__ = ("common", "system_id", "cmk_id_old", "cmk_id_new") - COMMON_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_OLD_FIELD_NUMBER: _ClassVar[int] - CMK_ID_NEW_FIELD_NUMBER: _ClassVar[int] - common: Common - system_id: str - cmk_id_old: str - cmk_id_new: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id_old: _Optional[str] = ..., cmk_id_new: _Optional[str] = ...) -> None: ... - -class CMKTenantModification(_message.Message): - __slots__ = ("common", "system_id", "cmk_id", "cmk_action") - COMMON_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ACTION_FIELD_NUMBER: _ClassVar[int] - common: Common - system_id: str - cmk_id: str - cmk_action: CMKAction - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ..., cmk_action: _Optional[_Union[CMKAction, str]] = ...) -> None: ... - -class CMKCreate(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKDelete(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKRestore(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKDisable(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKEnable(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKRotate(_message.Message): - __slots__ = ("common", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyCreate(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyDelete(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyRestore(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyPurge(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyRotate(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyEnable(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyDisable(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeySuspend(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class KeyOnboardKeyChain(_message.Message): - __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - KEY_TYPE_FIELD_NUMBER: _ClassVar[int] - KEY_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - key_type: KeyType - key_id: str - system_id: str - cmk_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... - -class CMKDrop(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKSuspend(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class VirusFinding(_message.Message): - __slots__ = ("common", "virus_name", "file_name", "virus_channel") - COMMON_FIELD_NUMBER: _ClassVar[int] - VIRUS_NAME_FIELD_NUMBER: _ClassVar[int] - FILE_NAME_FIELD_NUMBER: _ClassVar[int] - VIRUS_CHANNEL_FIELD_NUMBER: _ClassVar[int] - common: Common - virus_name: str - file_name: str - virus_channel: VirusChannel - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., virus_name: _Optional[str] = ..., file_name: _Optional[str] = ..., virus_channel: _Optional[_Union[VirusChannel, str]] = ...) -> None: ... - -class CMKUnavailable(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKAvailable(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - kms_system_id: str - def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... - -class CMKDetach(_message.Message): - __slots__ = ("common", "cmk_id", "kms_system_id", "system_id") - COMMON_FIELD_NUMBER: _ClassVar[int] - CMK_ID_FIELD_NUMBER: _ClassVar[int] - KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] - common: Common - cmk_id: str - 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: ... From 38fb1844b3ae6ff0aeee1c929600757753f7b6a3 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 15:03:25 +0300 Subject: [PATCH 04/20] Remove unused files files --- .github/workflows/proto-verify.yaml | 2 +- .../core/auditlog_ng/example_send_event.py | 295 ------------------ .../core/auditlog_ng/requirements-client.txt | 8 - .../auditlog_ng/setup-python-environment.sh | 16 - .../core/auditlog_ng/user-guide.md | 9 +- 5 files changed, 4 insertions(+), 326 deletions(-) delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py delete mode 100644 src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt delete mode 100755 src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh diff --git a/.github/workflows/proto-verify.yaml b/.github/workflows/proto-verify.yaml index 44b6955..d1724e4 100644 --- a/.github/workflows/proto-verify.yaml +++ b/.github/workflows/proto-verify.yaml @@ -8,7 +8,7 @@ on: jobs: make-proto: name: Run make proto - runs-on: ${{ contains(github.server_url, 'github.com') && 'ubuntu-latest' || fromJSON('["self-hosted"]') }} + runs-on: ubuntu-latest steps: - name: Check out repository diff --git a/src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py b/src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py deleted file mode 100644 index 5bc12a6..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/example_send_event.py +++ /dev/null @@ -1,295 +0,0 @@ -#!/usr/bin/env python3 -""" -Example: Send audit events to an OTLP endpoint. - -Demonstrates sending events in both binary protobuf and JSON formats. - -Prerequisites: - - Update ENDPOINT, DEPLOYMENT_ID, NAMESPACE, TENANT_ID, and certificate paths - - Ensure the OTLP endpoint is running and accessible - - source ./setup-python-environment.sh - - pip install -r requirements-client.txt - -Usage: - python3 example_send_event.py -""" - -import os -import sys -import base64 -import json -from datetime import datetime, timezone -from pathlib import Path - -# Ensure the project src/ directory is on sys.path so that -# `sap_cloud_sdk` can be imported when running this script directly -# (e.g. `python3 example_send_event.py` from the auditlog_ng folder). -_SRC_DIR = str(Path(__file__).resolve().parents[3]) # …/src -if _SRC_DIR not in sys.path: - sys.path.insert(0, _SRC_DIR) - -from google.protobuf.json_format import MessageToDict, MessageToJson - -from sap_cloud_sdk.core.auditlog_ng import create_client, AuditClient, AuditLogNGConfig - -# Import generated protobuf messages -from sap_cloud_sdk.core.auditlog_ng.gen.sap.auditlog.auditevent.v2 import auditevent_pb2 as pb - -# Configuration - update these for your environment -# Example: "your-region.als.services.cloud.sap:443" -ENDPOINT = "" - -# Use your actual deployment ID, namespace, and tenant ID for real testing -DEPLOYMENT_ID = "" -NAMESPACE = "" -TENANT_ID = "" - -# Paths to mTLS certificates (PEM format) -CERT_FILE = "" -KEY_FILE = "" - - -def print_otlp_debug(event, event_type: str, format_type: str = "protobuf-binary"): - """Print debug information about the OTLP event being sent.""" - import uuid - - print("\n" + "=" * 60) - print(f"OTLP EVENT DEBUG INFO ({format_type.upper()})") - print("=" * 60) - - # 1. Event as JSON (readable format) - print("\n[Proto Event as JSON]") - event_dict = MessageToDict(event, preserving_proto_field_name=False) - print(json.dumps(event_dict, indent=2)) - - # 2. Format-specific body representation - if format_type == "json": - # JSON format - show the JSON string that will be sent - json_body = MessageToJson(event, preserving_proto_field_name=False) - auditlog_mime_type = "application/json" - print("\n[OTLP LogRecord Body - JSON]") - print(" Type: string_value") - print(" Content:") - print(f" {json_body}") - else: - # Binary format - show serialized bytes - serialized = event.SerializeToString() - auditlog_mime_type = "application/protobuf" - print("\n[OTLP LogRecord Body - Binary]") - print(" Type: bytes_value") - print(f" Size: {len(serialized)} bytes") - print(f" Base64: {base64.b64encode(serialized).decode()}") - - #3. OTLP Resource attributes that will be set - print("\n[OTLP Resource Attributes]") - print(f" sap.ucl.deployment_id: {DEPLOYMENT_ID}") - print(f" sap.ucl.system_namespace: {NAMESPACE}") - - # 4. OTLP LogRecord attributes that will be set - event_id = str(uuid.uuid4()) - print("\n[OTLP LogRecord Attributes]") - print(f" event_name: {event_type}") - print(f" cloudevents.event_id: {event_id}") - print(f" sap.tenancy.tenant_id: {TENANT_ID}") - print(f" sap.auditlogging.mime_type: {auditlog_mime_type}") - - print("\n" + "=" * 60) - - -def create_sample_event(): - """Create a sample DataAccess event for testing.""" - event = pb.DataAccess() - - # Set common fields - event.common.timestamp.FromDatetime(datetime.now(timezone.utc)) - event.common.user_initiator_id = "demo-user@example.com" - event.common.tenant_id = TENANT_ID - event.common.app_id = "python-audit-sdk-sample" - - # Set event-specific fields - event.channel_type = "API" - event.channel_id = "rest-api-v1" - event.object_type = "customer-record" - event.object_id = "cust-12345" - event.attribute = "email" - - return event - - -def example_insecure(): - """Example: Insecure connection (local testing).""" - print("Example: Insecure connection (local testing)") - print("-" * 40) - - with create_client( - endpoint="localhost:4317", - deployment_id=DEPLOYMENT_ID, - namespace=NAMESPACE, - insecure=True, - ) as client: - event = create_sample_event() - - # Send in binary format - event_id = client.send(event, "DataAccess") - print(f" ✓ Sent (binary): {event_id}") - - # Send in JSON format - event_id = client.send_json(event, "DataAccess") - print(f" ✓ Sent (JSON): {event_id}") - - -def example_mtls_binary(): - """Example: mTLS connection with binary protobuf format.""" - print("\n" + "=" * 60) - print("Example: mTLS + Binary Protobuf Format") - print("=" * 60) - print(f"Endpoint: {ENDPOINT}") - print(f"Deployment ID: {DEPLOYMENT_ID}") - print(f"Namespace: {NAMESPACE}") - print(f"Tenant ID: {TENANT_ID}") - - # Check certificate files exist - print("\n[0] Checking certificate files...") - cert_exists = os.path.exists(CERT_FILE) - key_exists = os.path.exists(KEY_FILE) - - if cert_exists: - print(f" ✓ Cert file exists: {CERT_FILE}") - else: - print(f" ✗ Cert file NOT FOUND: {CERT_FILE}") - if key_exists: - print(f" ✓ Key file exists: {KEY_FILE}") - else: - print(f" ✗ Key file NOT FOUND: {KEY_FILE}") - - if not (cert_exists and key_exists): - print("\n ⚠️ Skipping mTLS example - certificates not found") - print(" Update CERT_FILE and KEY_FILE paths for your environment") - return None - - # 1. Create protobuf event - print("\n[1] Creating DataAccess event...") - event = create_sample_event() - - print(f" Event: {event.DESCRIPTOR.name}") - print(f" User: {event.common.user_initiator_id}") - print(f" Object: {event.object_type} ({event.object_id})") - - # Print OTLP debug info - print_otlp_debug(event, "DataAccess", format_type="protobuf-binary") - - # 2. Create client and send in BINARY format - print("\n[2] Sending via OTLP (Binary Protobuf)...") - client = create_client( - endpoint=ENDPOINT, - deployment_id=DEPLOYMENT_ID, - namespace=NAMESPACE, - cert_file=CERT_FILE, - key_file=KEY_FILE, - insecure=False, - ) - - try: - event_id = client.send(event, "DataAccess", format="protobuf-binary") - print(f" ✓ Sent (binary)! Event ID: {event_id}") - return event_id - except Exception as e: - print(f" ✗ Error: {e}") - return None - finally: - client.close() - - -def example_mtls_json(): - """Example: mTLS connection with JSON format.""" - print("\n" + "=" * 60) - print("Example: mTLS + JSON Format") - print("=" * 60) - print(f"Endpoint: {ENDPOINT}") - print(f"Deployment ID: {DEPLOYMENT_ID}") - print(f"Namespace: {NAMESPACE}") - print(f"Tenant ID: {TENANT_ID}") - - # Check certificate files exist - cert_exists = os.path.exists(CERT_FILE) - key_exists = os.path.exists(KEY_FILE) - - if not (cert_exists and key_exists): - print("\n ⚠️ Skipping - certificates not found") - return None - - # 1. Create protobuf event - print("\n[1] Creating DataAccess event...") - event = create_sample_event() - - print(f" Event: {event.DESCRIPTOR.name}") - print(f" User: {event.common.user_initiator_id}") - print(f" Object: {event.object_type} ({event.object_id})") - - # Print OTLP debug info for JSON - print_otlp_debug(event, "DataAccess", format_type="json") - - # 2. Create client and send in JSON format - print("\n[2] Sending via OTLP (JSON)...") - client = create_client( - endpoint=ENDPOINT, - deployment_id=DEPLOYMENT_ID, - namespace=NAMESPACE, - cert_file=CERT_FILE, - key_file=KEY_FILE, - insecure=False, - ) - - try: - event_id = client.send_json(event, "DataAccess") - print(f" ✓ Sent (JSON)! Event ID: {event_id}") - return event_id - except Exception as e: - print(f" ✗ Error: {e}") - return None - finally: - client.close() - - -def example_mtls(): - """Example: mTLS connection - both binary and JSON formats.""" - print("\n" + "=" * 60) - print("Example: mTLS connection (both formats)") - print("=" * 60) - - # Send in binary format - binary_id = example_mtls_binary() - - # Send in JSON format - json_id = example_mtls_json() - - # Summary - print("\n" + "=" * 60) - print("SUMMARY") - print("=" * 60) - if binary_id: - print(f" ✓ Binary event ID: {binary_id}") - else: - print(" ✗ Binary event: FAILED") - if json_id: - print(f" ✓ JSON event ID: {json_id}") - else: - print(" ✗ JSON event: FAILED") - - -def main(): - print("=" * 60) - print("Audit Log Client Examples") - print("=" * 60) - - # Run examples - # example_insecure() # Uncomment for local testing - example_mtls() - - print("\n" + "=" * 60) - print("✅ DONE!") - print("=" * 60) - - -if __name__ == "__main__": - main() diff --git a/src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt b/src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt deleted file mode 100644 index 0fee74e..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/requirements-client.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Dependencies for audit client -# Install: pip install -r requirements-client.txt -grpcio>=1.60.0 -protobuf>=4.25.0 -protovalidate>=0.13.0 -opentelemetry-api>=1.28.0 -opentelemetry-sdk>=1.28.0 -opentelemetry-exporter-otlp-proto-grpc>=1.28.0 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh b/src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh deleted file mode 100755 index 930f947..0000000 --- a/src/sap_cloud_sdk/core/auditlog_ng/setup-python-environment.sh +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -echo "Setting up python environment" -echo "-----------------------------" -# -echo "(1) Setting up virtual environment" -python3 -m venv venv -echo "... done." -# -echo "(2) Activating virtual environment" -source ./venv/bin/activate -echo "... done." -# -echo "(3) Downloading dependencies" -pip install -r requirements-client.txt --extra-index-url https://buf.build/gen/python -echo "... done." \ No newline at end of file diff --git a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md index 8f5c5c7..b972b10 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md +++ b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md @@ -1,12 +1,12 @@ # Using the `auditlog_ng` Client in an Agent -This guide explains how to integrate the SAP Audit Log OTLP client [`audit_client.py`](audit_client.py) into a Python-based agent. +This guide explains how to integrate the SAP Audit Log NG OTLP client [`client.py`](client.py) into a Python-based agent. --- ## Overview -The [`audit_client.py`](audit_client.py) client sends audit log events as OpenTelemetry (OTLP) LogRecords over gRPC to the SAP Audit Log Service. It supports: +The [`client.py`](client.py) client sends audit log events as OpenTelemetry (OTLP) LogRecords over gRPC to the SAP Audit Log Service. It supports: - **mTLS** (mutual TLS with client certificates) - **Insecure** mode (local testing / no-auth) @@ -18,8 +18,6 @@ The [`audit_client.py`](audit_client.py) client sends audit log events as OpenTe ### 1. Required Dependencies -Contents of [`requirements-client.txt`](requirements-client.txt): - ``` grpcio>=1.60.0 protobuf>=4.25.0 @@ -241,6 +239,5 @@ Events are validated against protobuf constraints using `protovalidate` before s ## Running the Unit Tests ```bash - cd src/sap_cloud_sdk/core/auditlog_ng - ./run-test-client.sh + uv run pytest tests/core/unit/auditlog_ng/ ``` From faf7bc91d05a01423647b99131162221cf7bbe18 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 15:16:32 +0300 Subject: [PATCH 05/20] Remove unused imports --- src/sap_cloud_sdk/core/auditlog_ng/client.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py index 19da18e..b6ec5e1 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/client.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -27,11 +27,8 @@ AuditLogNGConfig, validate_source_arg, ) -from sap_cloud_sdk.core.auditlog_ng.exceptions import ( - TransportError, - ValidationError, -) -from sap_cloud_sdk.core.telemetry import Module, Operation, record_metrics +from sap_cloud_sdk.core.auditlog_ng.exceptions import ValidationError +from sap_cloud_sdk.core.telemetry import Module class AuditClient: From 6ab1d99344b6ba854d2d5b34d52eb348e285c1c3 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 17:26:31 +0300 Subject: [PATCH 06/20] Review fixes --- .github/workflows/proto-verify.yaml | 31 +- Makefile | 14 +- src/buf/__init__.py | 0 src/buf/validate/__init__.py | 0 src/buf/validate/validate_pb2.py | 465 ++++++ src/buf/validate/validate_pb2.pyi | 650 ++++++++ .../core/auditlog_ng/__init__.py | 2 - src/sap_cloud_sdk/core/auditlog_ng/client.py | 4 +- src/sap_cloud_sdk/core/auditlog_ng/config.py | 6 +- .../core/auditlog_ng/gen/__init__.py | 0 .../core/auditlog_ng/gen/protoc/__init__.py | 0 .../auditlog_ng/gen/protoc/gen/__init__.py | 0 .../gen/protoc/gen/jsonschema/__init__.py | 0 .../gen/protoc/gen/jsonschema/v1/__init__.py | 0 .../protoc/gen/jsonschema/v1/options_pb2.py | 38 + .../protoc/gen/jsonschema/v1/options_pb2.pyi | 22 + .../core/auditlog_ng/gen/sap/__init__.py | 0 .../auditlog_ng/gen/sap/auditlog/__init__.py | 0 .../gen/sap/auditlog/auditevent/__init__.py | 0 .../sap/auditlog/auditevent/v1/__init__.py | 0 .../auditlog/auditevent/v1/auditevent_pb2.py | 641 ++++++++ .../auditlog/auditevent/v1/auditevent_pb2.pyi | 1093 ++++++++++++++ .../sap/auditlog/auditevent/v2/__init__.py | 0 .../auditlog/auditevent/v2/auditevent_pb2.py | 464 ++++++ .../auditlog/auditevent/v2/auditevent_pb2.pyi | 1319 +++++++++++++++++ .../core/auditlog_ng/user-guide.md | 2 +- 26 files changed, 4720 insertions(+), 31 deletions(-) create mode 100644 src/buf/__init__.py create mode 100644 src/buf/validate/__init__.py create mode 100644 src/buf/validate/validate_pb2.py create mode 100644 src/buf/validate/validate_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py create mode 100644 src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi diff --git a/.github/workflows/proto-verify.yaml b/.github/workflows/proto-verify.yaml index d1724e4..49c454b 100644 --- a/.github/workflows/proto-verify.yaml +++ b/.github/workflows/proto-verify.yaml @@ -2,28 +2,33 @@ name: Proto generation check on: pull_request: - branches: - - main + paths: + - 'src/sap_cloud_sdk/core/auditlog_ng/proto/**' + - 'src/sap_cloud_sdk/core/auditlog_ng/buf.yaml' + - 'src/sap_cloud_sdk/core/auditlog_ng/buf.gen.yaml' + - 'src/sap_cloud_sdk/core/auditlog_ng/gen/**' + - 'src/buf/**' + - 'Makefile' + push: + branches: [main] + paths: + - 'src/sap_cloud_sdk/core/auditlog_ng/proto/**' + - 'Makefile' jobs: - make-proto: - name: Run make proto + verify-proto: + name: Verify generated proto code is up-to-date runs-on: ubuntu-latest steps: - name: Check out repository uses: actions/checkout@v4 - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.13" - - name: Install buf uses: bufbuild/buf-setup-action@v1 - - name: Verify buf - run: buf --version + - name: Regenerate proto code + run: make proto - - name: Run make proto - run: make proto \ No newline at end of file + - name: Check for uncommitted changes + run: git diff --exit-code diff --git a/Makefile b/Makefile index 5336631..9c6f8c7 100644 --- a/Makefile +++ b/Makefile @@ -8,14 +8,8 @@ BUF_DIR := src/buf .PHONY: proto proto: -# Generate code using buf CLI cd $(AUDITLOG_NG_DIR) && buf dep update && buf generate --include-imports - -# Add __init__.py files to generated code - find $(GEN_DIR) -type d -exec touch {}/__init__.py \; - -# Move /buf generated code to the root - rm -rf $(BUF_DIR); - mv $(GEN_DIR)/buf $(BUF_DIR); - rm -rf $(GEN_DIR)/buf; - + find $(GEN_DIR) -type d -exec touch {}/__init__.py \; + rm -rf $(BUF_DIR) + mv $(GEN_DIR)/buf $(BUF_DIR) + rm -rf $(GEN_DIR)/buf diff --git a/src/buf/__init__.py b/src/buf/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/buf/validate/__init__.py b/src/buf/validate/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/buf/validate/validate_pb2.py b/src/buf/validate/validate_pb2.py new file mode 100644 index 0000000..3a2a360 --- /dev/null +++ b/src/buf/validate/validate_pb2.py @@ -0,0 +1,465 @@ +# -*- 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\"\x90\x18\n\nFloatRules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x02\x42t\xc2Hq\no\n\x0b\x66loat.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa3\x01\n\x02lt\x18\x02 \x01(\x02\x42\x90\x01\xc2H\x8c\x01\n\x89\x01\n\x08\x66loat.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb4\x01\n\x03lte\x18\x03 \x01(\x02\x42\x9f\x01\xc2H\x9b\x01\n\x98\x01\n\tfloat.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf3\x07\n\x02gt\x18\x04 \x01(\x02\x42\xe0\x07\xc2H\xdc\x07\n\x8d\x01\n\x08\x66loat.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc3\x01\n\x0b\x66loat.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xcd\x01\n\x15\x66loat.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd3\x01\n\x0c\x66loat.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xdd\x01\n\x16\x66loat.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xbf\x08\n\x03gte\x18\x05 \x01(\x02\x42\xaa\x08\xc2H\xa6\x08\n\x9b\x01\n\tfloat.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd2\x01\n\x0c\x66loat.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdc\x01\n\x16\x66loat.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe2\x01\n\rfloat.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xec\x01\n\x17\x66loat.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x02\x42s\xc2Hp\nn\n\x08\x66loat.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x02\x42\x66\xc2Hc\na\n\x0c\x66loat.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12}\n\x06\x66inite\x18\x08 \x01(\x08\x42\x65\xc2Hb\n`\n\x0c\x66loat.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value 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\"\xa2\x18\n\x0b\x44oubleRules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x01\x42u\xc2Hr\np\n\x0c\x64ouble.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xa4\x01\n\x02lt\x18\x02 \x01(\x01\x42\x91\x01\xc2H\x8d\x01\n\x8a\x01\n\tdouble.lt\x1a}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xb5\x01\n\x03lte\x18\x03 \x01(\x01\x42\xa0\x01\xc2H\x9c\x01\n\x99\x01\n\ndouble.lte\x1a\x8a\x01!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xf8\x07\n\x02gt\x18\x04 \x01(\x01\x42\xe5\x07\xc2H\xe1\x07\n\x8e\x01\n\tdouble.gt\x1a\x80\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xc4\x01\n\x0c\x64ouble.gt_lt\x1a\xb3\x01has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xce\x01\n\x16\x64ouble.gt_lt_exclusive\x1a\xb3\x01has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xd4\x01\n\rdouble.gt_lte\x1a\xc2\x01has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xde\x01\n\x17\x64ouble.gt_lte_exclusive\x1a\xc2\x01has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xc4\x08\n\x03gte\x18\x05 \x01(\x01\x42\xaf\x08\xc2H\xab\x08\n\x9c\x01\n\ndouble.gte\x1a\x8d\x01!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xd3\x01\n\rdouble.gte_lt\x1a\xc1\x01has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xdd\x01\n\x17\x64ouble.gte_lt_exclusive\x1a\xc1\x01has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xe3\x01\n\x0e\x64ouble.gte_lte\x1a\xd0\x01has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xed\x01\n\x18\x64ouble.gte_lte_exclusive\x1a\xd0\x01has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x01\x42t\xc2Hq\no\n\tdouble.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x01\x42g\xc2Hd\nb\n\rdouble.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12~\n\x06\x66inite\x18\x08 \x01(\x08\x42\x66\xc2Hc\na\n\rdouble.finite\x1aPrules.finite ? (this.isNan() || this.isInf() ? \'value 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\"\xba\x15\n\nInt32Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42t\xc2Hq\no\n\x0bint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x05\x42|\xc2Hy\nw\n\x08int32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x05\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x05\x42\x88\x07\xc2H\x84\x07\nz\n\x08int32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x05\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x05\x42s\xc2Hp\nn\n\x08int32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x05\x42\x66\xc2Hc\na\n\x0cint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xba\x15\n\nInt64Rules\x12\x8a\x01\n\x05\x63onst\x18\x01 \x01(\x03\x42t\xc2Hq\no\n\x0bint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8e\x01\n\x02lt\x18\x02 \x01(\x03\x42|\xc2Hy\nw\n\x08int64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa1\x01\n\x03lte\x18\x03 \x01(\x03\x42\x8c\x01\xc2H\x88\x01\n\x85\x01\n\tint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\x9b\x07\n\x02gt\x18\x04 \x01(\x03\x42\x88\x07\xc2H\x84\x07\nz\n\x08int64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb3\x01\n\x0bint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbb\x01\n\x15int64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc3\x01\n\x0cint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcb\x01\n\x16int64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xe8\x07\n\x03gte\x18\x05 \x01(\x03\x42\xd3\x07\xc2H\xcf\x07\n\x88\x01\n\tint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc2\x01\n\x0cint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xca\x01\n\x16int64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd2\x01\n\rint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xda\x01\n\x17int64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x83\x01\n\x02in\x18\x06 \x03(\x03\x42s\xc2Hp\nn\n\x08int64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\x07 \x03(\x03\x42\x66\xc2Hc\na\n\x0cint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bUInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\rBu\xc2Hr\np\n\x0cuint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\rB}\xc2Hz\nx\n\tuint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\rB\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\rB\x8d\x07\xc2H\x89\x07\n{\n\tuint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\rB\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\rBt\xc2Hq\no\n\tuint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\rBg\xc2Hd\nb\n\ruint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bUInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x04\x42u\xc2Hr\np\n\x0cuint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x04\x42}\xc2Hz\nx\n\tuint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x04\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nuint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x04\x42\x8d\x07\xc2H\x89\x07\n{\n\tuint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0cuint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16uint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\ruint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17uint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x04\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nuint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\ruint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17uint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0euint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18uint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x04\x42t\xc2Hq\no\n\tuint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x04\x42g\xc2Hd\nb\n\ruint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bSInt32Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x11\x42u\xc2Hr\np\n\x0csint32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x11\x42}\xc2Hz\nx\n\tsint32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x11\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x11\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x11\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x11\x42t\xc2Hq\no\n\tsint32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x11\x42g\xc2Hd\nb\n\rsint32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xcb\x15\n\x0bSInt64Rules\x12\x8b\x01\n\x05\x63onst\x18\x01 \x01(\x12\x42u\xc2Hr\np\n\x0csint64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x8f\x01\n\x02lt\x18\x02 \x01(\x12\x42}\xc2Hz\nx\n\tsint64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa2\x01\n\x03lte\x18\x03 \x01(\x12\x42\x8d\x01\xc2H\x89\x01\n\x86\x01\n\nsint64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa0\x07\n\x02gt\x18\x04 \x01(\x12\x42\x8d\x07\xc2H\x89\x07\n{\n\tsint64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb4\x01\n\x0csint64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbc\x01\n\x16sint64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc4\x01\n\rsint64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcc\x01\n\x17sint64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xed\x07\n\x03gte\x18\x05 \x01(\x12\x42\xd8\x07\xc2H\xd4\x07\n\x89\x01\n\nsint64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc3\x01\n\rsint64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcb\x01\n\x17sint64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd3\x01\n\x0esint64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdb\x01\n\x18sint64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x84\x01\n\x02in\x18\x06 \x03(\x12\x42t\xc2Hq\no\n\tsint64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x07 \x03(\x12\x42g\xc2Hd\nb\n\rsint64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xdc\x15\n\x0c\x46ixed32Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x07\x42v\xc2Hs\nq\n\rfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x07\x42~\xc2H{\ny\n\nfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x07\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x07\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x07\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x07\x42u\xc2Hr\np\n\nfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x07\x42h\xc2He\nc\n\x0e\x66ixed32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xdc\x15\n\x0c\x46ixed64Rules\x12\x8c\x01\n\x05\x63onst\x18\x01 \x01(\x06\x42v\xc2Hs\nq\n\rfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x90\x01\n\x02lt\x18\x02 \x01(\x06\x42~\xc2H{\ny\n\nfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa3\x01\n\x03lte\x18\x03 \x01(\x06\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x0b\x66ixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xa5\x07\n\x02gt\x18\x04 \x01(\x06\x42\x92\x07\xc2H\x8e\x07\n|\n\nfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb5\x01\n\rfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbd\x01\n\x17\x66ixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc5\x01\n\x0e\x66ixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcd\x01\n\x18\x66ixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf2\x07\n\x03gte\x18\x05 \x01(\x06\x42\xdd\x07\xc2H\xd9\x07\n\x8a\x01\n\x0b\x66ixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc4\x01\n\x0e\x66ixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcc\x01\n\x18\x66ixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd4\x01\n\x0f\x66ixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdc\x01\n\x19\x66ixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x85\x01\n\x02in\x18\x06 \x03(\x06\x42u\xc2Hr\np\n\nfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x7f\n\x06not_in\x18\x07 \x03(\x06\x42h\xc2He\nc\n\x0e\x66ixed64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xee\x15\n\rSFixed32Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x0f\x42w\xc2Ht\nr\n\x0esfixed32.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x0f\x42\x7f\xc2H|\nz\n\x0bsfixed32.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x0f\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed32.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x0f\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed32.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed32.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed32.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed32.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed32.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x0f\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed32.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed32.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed32.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed32.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed32.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x0f\x42v\xc2Hs\nq\n\x0bsfixed32.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x0f\x42i\xc2Hf\nd\n\x0fsfixed32.not_in\x1aQthis in rules.not_in ? \'value 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\"\xee\x15\n\rSFixed64Rules\x12\x8d\x01\n\x05\x63onst\x18\x01 \x01(\x10\x42w\xc2Ht\nr\n\x0esfixed64.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x91\x01\n\x02lt\x18\x02 \x01(\x10\x42\x7f\xc2H|\nz\n\x0bsfixed64.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xa4\x01\n\x03lte\x18\x03 \x01(\x10\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0csfixed64.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xaa\x07\n\x02gt\x18\x04 \x01(\x10\x42\x97\x07\xc2H\x93\x07\n}\n\x0bsfixed64.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0esfixed64.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18sfixed64.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0fsfixed64.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19sfixed64.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\xf7\x07\n\x03gte\x18\x05 \x01(\x10\x42\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0csfixed64.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0fsfixed64.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19sfixed64.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10sfixed64.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1asfixed64.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\x86\x01\n\x02in\x18\x06 \x03(\x10\x42v\xc2Hs\nq\n\x0bsfixed64.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x80\x01\n\x06not_in\x18\x07 \x03(\x10\x42i\xc2Hf\nd\n\x0fsfixed64.not_in\x1aQthis in rules.not_in ? \'value 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\"\xd7\x01\n\tBoolRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x08\x42s\xc2Hp\nn\n\nbool.const\x1a`this != getField(rules, \'const\') ? \'value 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\x8d\x01\n\x05\x63onst\x18\x01 \x01(\tBw\xc2Ht\nr\n\x0cstring.const\x1a\x62this != getField(rules, \'const\') ? \'value must equal `%s`\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\x83\x01\n\x03len\x18\x13 \x01(\x04\x42q\xc2Hn\nl\n\nstring.len\x1a^uint(this.size()) != rules.len ? \'value length must be %s characters\'.format([rules.len]) : \'\'R\x03len\x12\xa1\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x0estring.min_len\x1anuint(this.size()) < rules.min_len ? \'value length must be at least %s characters\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x9f\x01\n\x07max_len\x18\x03 \x01(\x04\x42\x85\x01\xc2H\x81\x01\n\x7f\n\x0estring.max_len\x1amuint(this.size()) > rules.max_len ? \'value length must be at most %s characters\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\xa5\x01\n\tlen_bytes\x18\x14 \x01(\x04\x42\x87\x01\xc2H\x83\x01\n\x80\x01\n\x10string.len_bytes\x1aluint(bytes(this).size()) != rules.len_bytes ? \'value length must be %s bytes\'.format([rules.len_bytes]) : \'\'R\x08lenBytes\x12\xad\x01\n\tmin_bytes\x18\x04 \x01(\x04\x42\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x10string.min_bytes\x1atuint(bytes(this).size()) < rules.min_bytes ? \'value length must be at least %s bytes\'.format([rules.min_bytes]) : \'\'R\x08minBytes\x12\xac\x01\n\tmax_bytes\x18\x05 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x10string.max_bytes\x1asuint(bytes(this).size()) > rules.max_bytes ? \'value length must be at most %s bytes\'.format([rules.max_bytes]) : \'\'R\x08maxBytes\x12\x96\x01\n\x07pattern\x18\x06 \x01(\tB|\xc2Hy\nw\n\x0estring.pattern\x1a\x65!this.matches(rules.pattern) ? \'value does not match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x8c\x01\n\x06prefix\x18\x07 \x01(\tBt\xc2Hq\no\n\rstring.prefix\x1a^!this.startsWith(rules.prefix) ? \'value does not have prefix `%s`\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x8a\x01\n\x06suffix\x18\x08 \x01(\tBr\xc2Ho\nm\n\rstring.suffix\x1a\\!this.endsWith(rules.suffix) ? \'value does not have suffix `%s`\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x9a\x01\n\x08\x63ontains\x18\t \x01(\tB~\xc2H{\ny\n\x0fstring.contains\x1a\x66!this.contains(rules.contains) ? \'value does not contain substring `%s`\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xa5\x01\n\x0cnot_contains\x18\x17 \x01(\tB\x81\x01\xc2H~\n|\n\x13string.not_contains\x1a\x65this.contains(rules.not_contains) ? \'value contains substring `%s`\'.format([rules.not_contains]) : \'\'R\x0bnotContains\x12\x84\x01\n\x02in\x18\n \x03(\tBt\xc2Hq\no\n\tstring.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12~\n\x06not_in\x18\x0b \x03(\tBg\xc2Hd\nb\n\rstring.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xe6\x01\n\x05\x65mail\x18\x0c \x01(\x08\x42\xcd\x01\xc2H\xc9\x01\na\n\x0cstring.email\x12#value must 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\xf1\x01\n\x08hostname\x18\r \x01(\x08\x42\xd2\x01\xc2H\xce\x01\ne\n\x0fstring.hostname\x12\x1evalue must 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\xcb\x01\n\x02ip\x18\x0e \x01(\x08\x42\xb8\x01\xc2H\xb4\x01\nU\n\tstring.ip\x12 value must 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\xdc\x01\n\x04ipv4\x18\x0f \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv4\x12\"value must 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\xdc\x01\n\x04ipv6\x18\x10 \x01(\x08\x42\xc5\x01\xc2H\xc1\x01\n\\\n\x0bstring.ipv6\x12\"value must 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\xc4\x01\n\x03uri\x18\x11 \x01(\x08\x42\xaf\x01\xc2H\xab\x01\nQ\n\nstring.uri\x12\x19value must 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\x12x\n\x07uri_ref\x18\x12 \x01(\x08\x42]\xc2HZ\nX\n\x0estring.uri_ref\x12#value must be a valid URI Reference\x1a!!rules.uri_ref || this.isUriRef()H\x00R\x06uriRef\x12\x99\x02\n\x07\x61\x64\x64ress\x18\x15 \x01(\x08\x42\xfc\x01\xc2H\xf8\x01\n\x81\x01\n\x0estring.address\x12-value 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\xe2\x02\n\x13ipv6_with_prefixlen\x18\x1c \x01(\x08\x42\xaf\x02\xc2H\xab\x02\n\x93\x01\n\x1astring.ipv6_with_prefixlen\x12\x35value 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\xfc\x01\n\tip_prefix\x18\x1d \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nl\n\x10string.ip_prefix\x12\x1fvalue must 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\x8f\x02\n\x0bipv4_prefix\x18\x1e \x01(\x08\x42\xeb\x01\xc2H\xe7\x01\nu\n\x12string.ipv4_prefix\x12!value must 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\xfb\x01\n\x04ulid\x18# \x01(\x08\x42\xe4\x01\xc2H\xe0\x01\n\x82\x01\n\x0bstring.ulid\x12\x1avalue must 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\xb8\x05\n\x10well_known_regex\x18\x18 \x01(\x0e\x32\x18.buf.validate.KnownRegexB\xf1\x04\xc2H\xed\x04\n\xf0\x01\n#string.well_known_regex.header_name\x12&value 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\xe7\x01\n$string.well_known_regex.header_value\x12\'value 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\"\xac\x13\n\nBytesRules\x12\x87\x01\n\x05\x63onst\x18\x01 \x01(\x0c\x42q\xc2Hn\nl\n\x0b\x62ytes.const\x1a]this != getField(rules, \'const\') ? \'value must be %x\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12}\n\x03len\x18\r \x01(\x04\x42k\xc2Hh\nf\n\tbytes.len\x1aYuint(this.size()) != rules.len ? \'value length must be %s bytes\'.format([rules.len]) : \'\'R\x03len\x12\x98\x01\n\x07min_len\x18\x02 \x01(\x04\x42\x7f\xc2H|\nz\n\rbytes.min_len\x1aiuint(this.size()) < rules.min_len ? \'value length must be at least %s bytes\'.format([rules.min_len]) : \'\'R\x06minLen\x12\x90\x01\n\x07max_len\x18\x03 \x01(\x04\x42w\xc2Ht\nr\n\rbytes.max_len\x1a\x61uint(this.size()) > rules.max_len ? \'value must be at most %s bytes\'.format([rules.max_len]) : \'\'R\x06maxLen\x12\x99\x01\n\x07pattern\x18\x04 \x01(\tB\x7f\xc2H|\nz\n\rbytes.pattern\x1ai!string(this).matches(rules.pattern) ? \'value must match regex pattern `%s`\'.format([rules.pattern]) : \'\'R\x07pattern\x12\x89\x01\n\x06prefix\x18\x05 \x01(\x0c\x42q\xc2Hn\nl\n\x0c\x62ytes.prefix\x1a\\!this.startsWith(rules.prefix) ? \'value does not have prefix %x\'.format([rules.prefix]) : \'\'R\x06prefix\x12\x87\x01\n\x06suffix\x18\x06 \x01(\x0c\x42o\xc2Hl\nj\n\x0c\x62ytes.suffix\x1aZ!this.endsWith(rules.suffix) ? \'value does not have suffix %x\'.format([rules.suffix]) : \'\'R\x06suffix\x12\x8d\x01\n\x08\x63ontains\x18\x07 \x01(\x0c\x42q\xc2Hn\nl\n\x0e\x62ytes.contains\x1aZ!this.contains(rules.contains) ? \'value does not contain %x\'.format([rules.contains]) : \'\'R\x08\x63ontains\x12\xab\x01\n\x02in\x18\x08 \x03(\x0c\x42\x9a\x01\xc2H\x96\x01\n\x93\x01\n\x08\x62ytes.in\x1a\x86\x01getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12}\n\x06not_in\x18\t \x03(\x0c\x42\x66\xc2Hc\na\n\x0c\x62ytes.not_in\x1aQthis in rules.not_in ? \'value must not be in list %s\'.format([rules.not_in]) : \'\'R\x05notIn\x12\xef\x01\n\x02ip\x18\n \x01(\x08\x42\xdc\x01\xc2H\xd8\x01\nt\n\x08\x62ytes.ip\x12 value must 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\xea\x01\n\x04ipv4\x18\x0b \x01(\x08\x42\xd3\x01\xc2H\xcf\x01\ne\n\nbytes.ipv4\x12\"value must 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\xeb\x01\n\x04ipv6\x18\x0c \x01(\x08\x42\xd4\x01\xc2H\xd0\x01\nf\n\nbytes.ipv6\x12\"value must 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\xdb\x01\n\x04uuid\x18\x0f \x01(\x08\x42\xc4\x01\xc2H\xc0\x01\n^\n\nbytes.uuid\x12\x1avalue must 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\"\xfd\x03\n\tEnumRules\x12\x89\x01\n\x05\x63onst\x18\x01 \x01(\x05\x42s\xc2Hp\nn\n\nenum.const\x1a`this != getField(rules, \'const\') ? \'value 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\x82\x01\n\x02in\x18\x03 \x03(\x05\x42r\xc2Ho\nm\n\x07\x65num.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12|\n\x06not_in\x18\x04 \x03(\x05\x42\x65\xc2Hb\n`\n\x0b\x65num.not_in\x1aQthis in rules.not_in ? \'value 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\"\x9e\x04\n\rRepeatedRules\x12\xa8\x01\n\tmin_items\x18\x01 \x01(\x04\x42\x8a\x01\xc2H\x86\x01\n\x83\x01\n\x12repeated.min_items\x1amuint(this.size()) < rules.min_items ? \'value must contain at least %d item(s)\'.format([rules.min_items]) : \'\'R\x08minItems\x12\xac\x01\n\tmax_items\x18\x02 \x01(\x04\x42\x8e\x01\xc2H\x8a\x01\n\x87\x01\n\x12repeated.max_items\x1aquint(this.size()) > rules.max_items ? \'value 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\"\xc6\x17\n\rDurationRules\x12\xa8\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationBw\xc2Ht\nr\n\x0e\x64uration.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xac\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x19.google.protobuf.DurationB\x7f\xc2H|\nz\n\x0b\x64uration.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xbf\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x19.google.protobuf.DurationB\x8f\x01\xc2H\x8b\x01\n\x88\x01\n\x0c\x64uration.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12\xc5\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x19.google.protobuf.DurationB\x97\x07\xc2H\x93\x07\n}\n\x0b\x64uration.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb6\x01\n\x0e\x64uration.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbe\x01\n\x18\x64uration.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc6\x01\n\x0f\x64uration.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xce\x01\n\x19\x64uration.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x92\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x19.google.protobuf.DurationB\xe2\x07\xc2H\xde\x07\n\x8b\x01\n\x0c\x64uration.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc5\x01\n\x0f\x64uration.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xcd\x01\n\x19\x64uration.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd5\x01\n\x10\x64uration.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xdd\x01\n\x1a\x64uration.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12\xa1\x01\n\x02in\x18\x07 \x03(\x0b\x32\x19.google.protobuf.DurationBv\xc2Hs\nq\n\x0b\x64uration.in\x1a\x62!(this in getField(rules, \'in\')) ? \'value must be in list %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\x9b\x01\n\x06not_in\x18\x08 \x03(\x0b\x32\x19.google.protobuf.DurationBi\xc2Hf\nd\n\x0f\x64uration.not_in\x1aQthis in rules.not_in ? \'value 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\"\x98\x06\n\x0e\x46ieldMaskRules\x12\xc6\x01\n\x05\x63onst\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.FieldMaskB\x93\x01\xc2H\x8f\x01\n\x8c\x01\n\x10\x66ield_mask.const\x1axthis.paths != getField(rules, \'const\').paths ? \'value must equal paths %s\'.format([getField(rules, \'const\').paths]) : \'\'R\x05\x63onst\x12\xdd\x01\n\x02in\x18\x02 \x03(\tB\xcc\x01\xc2H\xc8\x01\n\xc5\x01\n\rfield_mask.in\x1a\xb3\x01!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'value must only contain paths in %s\'.format([getField(rules, \'in\')]) : \'\'R\x02in\x12\xfa\x01\n\x06not_in\x18\x03 \x03(\tB\xe2\x01\xc2H\xde\x01\n\xdb\x01\n\x11\x66ield_mask.not_in\x1a\xc5\x01!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'value 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\"\xca\x18\n\x0eTimestampRules\x12\xaa\x01\n\x05\x63onst\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.TimestampBx\xc2Hu\ns\n\x0ftimestamp.const\x1a`this != getField(rules, \'const\') ? \'value must equal %s\'.format([getField(rules, \'const\')]) : \'\'R\x05\x63onst\x12\xaf\x01\n\x02lt\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x80\x01\xc2H}\n{\n\x0ctimestamp.lt\x1ak!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value must be less than %s\'.format([rules.lt]) : \'\'H\x00R\x02lt\x12\xc1\x01\n\x03lte\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x90\x01\xc2H\x8c\x01\n\x89\x01\n\rtimestamp.lte\x1ax!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value must be less than or equal to %s\'.format([rules.lte]) : \'\'H\x00R\x03lte\x12s\n\x06lt_now\x18\x07 \x01(\x08\x42Z\xc2HW\nU\n\x10timestamp.lt_now\x1a\x41(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'H\x00R\x05ltNow\x12\xcb\x07\n\x02gt\x18\x05 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\x9c\x07\xc2H\x98\x07\n~\n\x0ctimestamp.gt\x1an!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\xb7\x01\n\x0ftimestamp.gt_lt\x1a\xa3\x01has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xbf\x01\n\x19timestamp.gt_lt_exclusive\x1a\xa1\x01has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\xc7\x01\n\x10timestamp.gt_lte\x1a\xb2\x01has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\xcf\x01\n\x1atimestamp.gt_lte_exclusive\x1a\xb0\x01has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value must be greater than %s or less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'H\x01R\x02gt\x12\x98\x08\n\x03gte\x18\x06 \x01(\x0b\x32\x1a.google.protobuf.TimestampB\xe7\x07\xc2H\xe3\x07\n\x8c\x01\n\rtimestamp.gte\x1a{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\xc6\x01\n\x10timestamp.gte_lt\x1a\xb1\x01has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xce\x01\n\x1atimestamp.gte_lt_exclusive\x1a\xaf\x01has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\xd6\x01\n\x11timestamp.gte_lte\x1a\xc0\x01has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\xde\x01\n\x1btimestamp.gte_lte_exclusive\x1a\xbe\x01has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value must be greater than or equal to %s or less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'H\x01R\x03gte\x12v\n\x06gt_now\x18\x08 \x01(\x08\x42]\xc2HZ\nX\n\x10timestamp.gt_now\x1a\x44(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'H\x01R\x05gtNow\x12\xc0\x01\n\x06within\x18\t \x01(\x0b\x32\x19.google.protobuf.DurationB\x8c\x01\xc2H\x88\x01\n\x85\x01\n\x10timestamp.within\x1aqthis < now-rules.within || this > now+rules.within ? \'value 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'\302Hq\no\n\013float.const\032`this != getField(rules, \'const\') ? \'value 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\214\001\n\211\001\n\010float.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value 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\233\001\n\230\001\n\tfloat.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value 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\334\007\n\215\001\n\010float.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\303\001\n\013float.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\315\001\n\025float.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\323\001\n\014float.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\335\001\n\026float.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value 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\246\010\n\233\001\n\tfloat.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\322\001\n\014float.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\334\001\n\026float.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\342\001\n\rfloat.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\354\001\n\027float.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value 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'\302Hp\nn\n\010float.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014float.not_in\032Qthis in rules.not_in ? \'value 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'\302Hb\n`\n\014float.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value 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'\302Hr\np\n\014double.const\032`this != getField(rules, \'const\') ? \'value 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\215\001\n\212\001\n\tdouble.lt\032}!has(rules.gte) && !has(rules.gt) && (this.isNan() || this >= rules.lt)? \'value 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\234\001\n\231\001\n\ndouble.lte\032\212\001!has(rules.gte) && !has(rules.gt) && (this.isNan() || this > rules.lte)? \'value 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\341\007\n\216\001\n\tdouble.gt\032\200\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this <= rules.gt)? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\304\001\n\014double.gt_lt\032\263\001has(rules.lt) && rules.lt >= rules.gt && (this.isNan() || this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\316\001\n\026double.gt_lt_exclusive\032\263\001has(rules.lt) && rules.lt < rules.gt && (this.isNan() || (rules.lt <= this && this <= rules.gt))? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\324\001\n\rdouble.gt_lte\032\302\001has(rules.lte) && rules.lte >= rules.gt && (this.isNan() || this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\336\001\n\027double.gt_lte_exclusive\032\302\001has(rules.lte) && rules.lte < rules.gt && (this.isNan() || (rules.lte < this && this <= rules.gt))? \'value 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\253\010\n\234\001\n\ndouble.gte\032\215\001!has(rules.lt) && !has(rules.lte) && (this.isNan() || this < rules.gte)? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\323\001\n\rdouble.gte_lt\032\301\001has(rules.lt) && rules.lt >= rules.gte && (this.isNan() || this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\335\001\n\027double.gte_lt_exclusive\032\301\001has(rules.lt) && rules.lt < rules.gte && (this.isNan() || (rules.lt <= this && this < rules.gte))? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\343\001\n\016double.gte_lte\032\320\001has(rules.lte) && rules.lte >= rules.gte && (this.isNan() || this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\355\001\n\030double.gte_lte_exclusive\032\320\001has(rules.lte) && rules.lte < rules.gte && (this.isNan() || (rules.lte < this && this < rules.gte))? \'value 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'\302Hq\no\n\tdouble.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rdouble.not_in\032Qthis in rules.not_in ? \'value 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'\302Hc\na\n\rdouble.finite\032Prules.finite ? (this.isNan() || this.isInf() ? \'value 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'\302Hq\no\n\013int32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hy\nw\n\010int32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\210\001\n\205\001\n\tint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\204\007\nz\n\010int32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\317\007\n\210\001\n\tint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hp\nn\n\010int32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014int32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hq\no\n\013int64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hy\nw\n\010int64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\210\001\n\205\001\n\tint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\204\007\nz\n\010int64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\263\001\n\013int64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\273\001\n\025int64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\303\001\n\014int64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\313\001\n\026int64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\317\007\n\210\001\n\tint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\302\001\n\014int64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\312\001\n\026int64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\322\001\n\rint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\332\001\n\027int64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hp\nn\n\010int64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014int64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014uint32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tuint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nuint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tuint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nuint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tuint32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\ruint32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014uint64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tuint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nuint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tuint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014uint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026uint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\ruint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027uint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nuint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\ruint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027uint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016uint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030uint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tuint64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\ruint64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014sint32.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tsint32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nsint32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tsint32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nsint32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tsint32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rsint32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hr\np\n\014sint64.const\032`this != getField(rules, \'const\') ? \'value 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'\302Hz\nx\n\tsint64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\211\001\n\206\001\n\nsint64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\211\007\n{\n\tsint64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\264\001\n\014sint64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\274\001\n\026sint64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\304\001\n\rsint64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\314\001\n\027sint64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\324\007\n\211\001\n\nsint64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\303\001\n\rsint64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\313\001\n\027sint64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\323\001\n\016sint64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\333\001\n\030sint64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hq\no\n\tsint64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rsint64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hs\nq\n\rfixed32.const\032`this != getField(rules, \'const\') ? \'value 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'\302H{\ny\n\nfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\212\001\n\207\001\n\013fixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\216\007\n|\n\nfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\331\007\n\212\001\n\013fixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hr\np\n\nfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302He\nc\n\016fixed32.not_in\032Qthis in rules.not_in ? \'value 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'\302Hs\nq\n\rfixed64.const\032`this != getField(rules, \'const\') ? \'value 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'\302H{\ny\n\nfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\212\001\n\207\001\n\013fixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\216\007\n|\n\nfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\265\001\n\rfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\275\001\n\027fixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\305\001\n\016fixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\315\001\n\030fixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\331\007\n\212\001\n\013fixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\304\001\n\016fixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\314\001\n\030fixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\324\001\n\017fixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\334\001\n\031fixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hr\np\n\nfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302He\nc\n\016fixed64.not_in\032Qthis in rules.not_in ? \'value 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'\302Ht\nr\n\016sfixed32.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013sfixed32.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014sfixed32.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013sfixed32.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed32.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed32.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed32.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed32.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014sfixed32.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed32.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed32.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed32.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed32.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013sfixed32.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017sfixed32.not_in\032Qthis in rules.not_in ? \'value 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'\302Ht\nr\n\016sfixed64.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013sfixed64.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014sfixed64.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013sfixed64.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016sfixed64.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030sfixed64.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017sfixed64.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031sfixed64.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014sfixed64.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017sfixed64.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031sfixed64.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020sfixed64.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032sfixed64.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013sfixed64.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017sfixed64.not_in\032Qthis in rules.not_in ? \'value 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'\302Hp\nn\n\nbool.const\032`this != getField(rules, \'const\') ? \'value 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'\302Ht\nr\n\014string.const\032bthis != getField(rules, \'const\') ? \'value 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'\302Hn\nl\n\nstring.len\032^uint(this.size()) != rules.len ? \'value length 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'\302H\203\001\n\200\001\n\016string.min_len\032nuint(this.size()) < rules.min_len ? \'value length 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'\302H\201\001\n\177\n\016string.max_len\032muint(this.size()) > rules.max_len ? \'value length 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'\302H\203\001\n\200\001\n\020string.len_bytes\032luint(bytes(this).size()) != rules.len_bytes ? \'value length 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\213\001\n\210\001\n\020string.min_bytes\032tuint(bytes(this).size()) < rules.min_bytes ? \'value length 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\212\001\n\207\001\n\020string.max_bytes\032suint(bytes(this).size()) > rules.max_bytes ? \'value length 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'\302Hy\nw\n\016string.pattern\032e!this.matches(rules.pattern) ? \'value 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'\302Hq\no\n\rstring.prefix\032^!this.startsWith(rules.prefix) ? \'value 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'\302Ho\nm\n\rstring.suffix\032\\!this.endsWith(rules.suffix) ? \'value 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'\302H{\ny\n\017string.contains\032f!this.contains(rules.contains) ? \'value 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'\302H~\n|\n\023string.not_contains\032ethis.contains(rules.not_contains) ? \'value 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'\302Hq\no\n\tstring.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hd\nb\n\rstring.not_in\032Qthis in rules.not_in ? \'value 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\311\001\na\n\014string.email\022#value must 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\316\001\ne\n\017string.hostname\022\036value must 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\264\001\nU\n\tstring.ip\022 value must 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\301\001\n\\\n\013string.ipv4\022\"value must 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\301\001\n\\\n\013string.ipv6\022\"value must 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\253\001\nQ\n\nstring.uri\022\031value must 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'\302HZ\nX\n\016string.uri_ref\022#value must 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\370\001\n\201\001\n\016string.address\022-value 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\253\002\n\223\001\n\032string.ipv6_with_prefixlen\0225value 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\330\001\nl\n\020string.ip_prefix\022\037value must 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\347\001\nu\n\022string.ipv4_prefix\022!value must 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\340\001\n\202\001\n\013string.ulid\022\032value must 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['well_known_regex']._loaded_options = None + _globals['_STRINGRULES'].fields_by_name['well_known_regex']._serialized_options = b'\302H\355\004\n\360\001\n#string.well_known_regex.header_name\022&value 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\347\001\n$string.well_known_regex.header_value\022\'value 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'\302Hn\nl\n\013bytes.const\032]this != getField(rules, \'const\') ? \'value 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'\302Hh\nf\n\tbytes.len\032Yuint(this.size()) != rules.len ? \'value length 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'\302H|\nz\n\rbytes.min_len\032iuint(this.size()) < rules.min_len ? \'value length 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'\302Ht\nr\n\rbytes.max_len\032auint(this.size()) > rules.max_len ? \'value 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'\302H|\nz\n\rbytes.pattern\032i!string(this).matches(rules.pattern) ? \'value 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'\302Hn\nl\n\014bytes.prefix\032\\!this.startsWith(rules.prefix) ? \'value 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'\302Hl\nj\n\014bytes.suffix\032Z!this.endsWith(rules.suffix) ? \'value 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'\302Hn\nl\n\016bytes.contains\032Z!this.contains(rules.contains) ? \'value 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\226\001\n\223\001\n\010bytes.in\032\206\001getField(rules, \'in\').size() > 0 && !(this in getField(rules, \'in\')) ? \'value 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'\302Hc\na\n\014bytes.not_in\032Qthis in rules.not_in ? \'value 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\330\001\nt\n\010bytes.ip\022 value must 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\317\001\ne\n\nbytes.ipv4\022\"value must 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\320\001\nf\n\nbytes.ipv6\022\"value must 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\300\001\n^\n\nbytes.uuid\022\032value must 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'\302Hp\nn\n\nenum.const\032`this != getField(rules, \'const\') ? \'value 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'\302Ho\nm\n\007enum.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hb\n`\n\013enum.not_in\032Qthis in rules.not_in ? \'value 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\206\001\n\203\001\n\022repeated.min_items\032muint(this.size()) < rules.min_items ? \'value 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\212\001\n\207\001\n\022repeated.max_items\032quint(this.size()) > rules.max_items ? \'value 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'\302Ht\nr\n\016duration.const\032`this != getField(rules, \'const\') ? \'value 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'\302H|\nz\n\013duration.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\213\001\n\210\001\n\014duration.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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\223\007\n}\n\013duration.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\266\001\n\016duration.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\276\001\n\030duration.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\306\001\n\017duration.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\316\001\n\031duration.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\336\007\n\213\001\n\014duration.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\305\001\n\017duration.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\315\001\n\031duration.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\325\001\n\020duration.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\335\001\n\032duration.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302Hs\nq\n\013duration.in\032b!(this in getField(rules, \'in\')) ? \'value 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'\302Hf\nd\n\017duration.not_in\032Qthis in rules.not_in ? \'value 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\217\001\n\214\001\n\020field_mask.const\032xthis.paths != getField(rules, \'const\').paths ? \'value 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\310\001\n\305\001\n\rfield_mask.in\032\263\001!this.paths.all(p, p in getField(rules, \'in\') || getField(rules, \'in\').exists(f, p.startsWith(f+\'.\'))) ? \'value 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\336\001\n\333\001\n\021field_mask.not_in\032\305\001!this.paths.all(p, !(p in getField(rules, \'not_in\') || getField(rules, \'not_in\').exists(f, p.startsWith(f+\'.\')))) ? \'value 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'\302Hu\ns\n\017timestamp.const\032`this != getField(rules, \'const\') ? \'value 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'\302H}\n{\n\014timestamp.lt\032k!has(rules.gte) && !has(rules.gt) && this >= rules.lt? \'value 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\214\001\n\211\001\n\rtimestamp.lte\032x!has(rules.gte) && !has(rules.gt) && this > rules.lte? \'value 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'\302HW\nU\n\020timestamp.lt_now\032A(rules.lt_now && this > now) ? \'value must be less than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['gt']._serialized_options = b'\302H\230\007\n~\n\014timestamp.gt\032n!has(rules.lt) && !has(rules.lte) && this <= rules.gt? \'value must be greater than %s\'.format([rules.gt]) : \'\'\n\267\001\n\017timestamp.gt_lt\032\243\001has(rules.lt) && rules.lt >= rules.gt && (this >= rules.lt || this <= rules.gt)? \'value must be greater than %s and less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\277\001\n\031timestamp.gt_lt_exclusive\032\241\001has(rules.lt) && rules.lt < rules.gt && (rules.lt <= this && this <= rules.gt)? \'value must be greater than %s or less than %s\'.format([rules.gt, rules.lt]) : \'\'\n\307\001\n\020timestamp.gt_lte\032\262\001has(rules.lte) && rules.lte >= rules.gt && (this > rules.lte || this <= rules.gt)? \'value must be greater than %s and less than or equal to %s\'.format([rules.gt, rules.lte]) : \'\'\n\317\001\n\032timestamp.gt_lte_exclusive\032\260\001has(rules.lte) && rules.lte < rules.gt && (rules.lte < this && this <= rules.gt)? \'value 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\343\007\n\214\001\n\rtimestamp.gte\032{!has(rules.lt) && !has(rules.lte) && this < rules.gte? \'value must be greater than or equal to %s\'.format([rules.gte]) : \'\'\n\306\001\n\020timestamp.gte_lt\032\261\001has(rules.lt) && rules.lt >= rules.gte && (this >= rules.lt || this < rules.gte)? \'value must be greater than or equal to %s and less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\316\001\n\032timestamp.gte_lt_exclusive\032\257\001has(rules.lt) && rules.lt < rules.gte && (rules.lt <= this && this < rules.gte)? \'value must be greater than or equal to %s or less than %s\'.format([rules.gte, rules.lt]) : \'\'\n\326\001\n\021timestamp.gte_lte\032\300\001has(rules.lte) && rules.lte >= rules.gte && (this > rules.lte || this < rules.gte)? \'value must be greater than or equal to %s and less than or equal to %s\'.format([rules.gte, rules.lte]) : \'\'\n\336\001\n\033timestamp.gte_lte_exclusive\032\276\001has(rules.lte) && rules.lte < rules.gte && (rules.lte < this && this < rules.gte)? \'value 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'\302HZ\nX\n\020timestamp.gt_now\032D(rules.gt_now && this < now) ? \'value must be greater than now\' : \'\'' + _globals['_TIMESTAMPRULES'].fields_by_name['within']._loaded_options = None + _globals['_TIMESTAMPRULES'].fields_by_name['within']._serialized_options = b'\302H\210\001\n\205\001\n\020timestamp.within\032qthis < now-rules.within || this > now+rules.within ? \'value 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=55581 + _globals['_IGNORE']._serialized_end=55742 + _globals['_KNOWNREGEX']._serialized_start=55744 + _globals['_KNOWNREGEX']._serialized_end=55854 + _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=5101 + _globals['_DOUBLERULES']._serialized_start=5104 + _globals['_DOUBLERULES']._serialized_end=8210 + _globals['_INT32RULES']._serialized_start=8213 + _globals['_INT32RULES']._serialized_end=10959 + _globals['_INT64RULES']._serialized_start=10962 + _globals['_INT64RULES']._serialized_end=13708 + _globals['_UINT32RULES']._serialized_start=13711 + _globals['_UINT32RULES']._serialized_end=16474 + _globals['_UINT64RULES']._serialized_start=16477 + _globals['_UINT64RULES']._serialized_end=19240 + _globals['_SINT32RULES']._serialized_start=19243 + _globals['_SINT32RULES']._serialized_end=22006 + _globals['_SINT64RULES']._serialized_start=22009 + _globals['_SINT64RULES']._serialized_end=24772 + _globals['_FIXED32RULES']._serialized_start=24775 + _globals['_FIXED32RULES']._serialized_end=27555 + _globals['_FIXED64RULES']._serialized_start=27558 + _globals['_FIXED64RULES']._serialized_end=30338 + _globals['_SFIXED32RULES']._serialized_start=30341 + _globals['_SFIXED32RULES']._serialized_end=33139 + _globals['_SFIXED64RULES']._serialized_start=33142 + _globals['_SFIXED64RULES']._serialized_end=35940 + _globals['_BOOLRULES']._serialized_start=35943 + _globals['_BOOLRULES']._serialized_end=36158 + _globals['_STRINGRULES']._serialized_start=36161 + _globals['_STRINGRULES']._serialized_end=43792 + _globals['_BYTESRULES']._serialized_start=43795 + _globals['_BYTESRULES']._serialized_end=46271 + _globals['_ENUMRULES']._serialized_start=46274 + _globals['_ENUMRULES']._serialized_end=46783 + _globals['_REPEATEDRULES']._serialized_start=46786 + _globals['_REPEATEDRULES']._serialized_end=47328 + _globals['_MAPRULES']._serialized_start=47331 + _globals['_MAPRULES']._serialized_end=47759 + _globals['_ANYRULES']._serialized_start=47761 + _globals['_ANYRULES']._serialized_end=47810 + _globals['_DURATIONRULES']._serialized_start=47813 + _globals['_DURATIONRULES']._serialized_end=50827 + _globals['_FIELDMASKRULES']._serialized_start=50830 + _globals['_FIELDMASKRULES']._serialized_end=51622 + _globals['_TIMESTAMPRULES']._serialized_start=51625 + _globals['_TIMESTAMPRULES']._serialized_end=54771 + _globals['_VIOLATIONS']._serialized_start=54773 + _globals['_VIOLATIONS']._serialized_end=54842 + _globals['_VIOLATION']._serialized_start=54845 + _globals['_VIOLATION']._serialized_end=55042 + _globals['_FIELDPATH']._serialized_start=55044 + _globals['_FIELDPATH']._serialized_end=55115 + _globals['_FIELDPATHELEMENT']._serialized_start=55118 + _globals['_FIELDPATHELEMENT']._serialized_end=55578 +# @@protoc_insertion_point(module_scope) diff --git a/src/buf/validate/validate_pb2.pyi b/src/buf/validate/validate_pb2.pyi new file mode 100644 index 0000000..6b2091f --- /dev/null +++ b/src/buf/validate/validate_pb2.pyi @@ -0,0 +1,650 @@ +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", "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] + 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 + 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] = ..., 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/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py index 4ad82d6..af6605c 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py @@ -33,7 +33,6 @@ from sap_cloud_sdk.core.auditlog_ng.exceptions import ( AuditLogNGError, ClientCreationError, - TransportError, ValidationError, ) @@ -122,6 +121,5 @@ def create_client( # Exceptions "AuditLogNGError", "ClientCreationError", - "TransportError", "ValidationError", ] diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py index b6ec5e1..18cb241 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/client.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -25,7 +25,7 @@ from sap_cloud_sdk.core.auditlog_ng.config import ( AuditLogNGConfig, - validate_source_arg, + _validate_source_arg, ) from sap_cloud_sdk.core.auditlog_ng.exceptions import ValidationError from sap_cloud_sdk.core.telemetry import Module @@ -148,7 +148,7 @@ def send( raise ValidationError(f"Audit event validation failed: {e}") from e tenant_id = event.common.tenant_id - validate_source_arg(tenant_id, "tenant_id") + _validate_source_arg(tenant_id, "tenant_id") event_id = str(uuid.uuid4()) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/config.py b/src/sap_cloud_sdk/core/auditlog_ng/config.py index cf21145..d89c851 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/config.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/config.py @@ -13,7 +13,7 @@ _SOURCE_ARG_PATTERN = re.compile(r"[a-zA-Z0-9._/~-]+") -def validate_source_arg(value: str, name: str) -> None: +def _validate_source_arg(value: str, name: str) -> None: """Validate that *value* only contains characters in ``[a-zA-Z0-9._-/~]``. Args: @@ -67,5 +67,5 @@ def __post_init__(self) -> None: """Validate required fields.""" if not self.endpoint: raise ValueError("endpoint is required") - validate_source_arg(self.deployment_id, "deployment_id") - validate_source_arg(self.namespace, "namespace") + _validate_source_arg(self.deployment_id, "deployment_id") + _validate_source_arg(self.namespace, "namespace") diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py new file mode 100644 index 0000000..6b94e2b --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.py @@ -0,0 +1,38 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: protoc/gen/jsonschema/v1/options.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, + '', + 'protoc/gen/jsonschema/v1/options.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from google.protobuf import descriptor_pb2 as google_dot_protobuf_dot_descriptor__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n&protoc/gen/jsonschema/v1/options.proto\x12\x18protoc.gen.jsonschema.v1\x1a google/protobuf/descriptor.proto\"\x9a\x01\n\x0c\x46ieldOptions\x12\x16\n\x06ignore\x18\x01 \x01(\x08R\x06ignore\x12\x1a\n\x08required\x18\x02 \x01(\x08R\x08required\x12\x1d\n\nmin_length\x18\x03 \x01(\x05R\tminLength\x12\x1d\n\nmax_length\x18\x04 \x01(\x05R\tmaxLength\x12\x18\n\x07pattern\x18\x05 \x01(\tR\x07pattern:k\n\rfield_options\x12\x1d.google.protobuf.FieldOptions\x18\xe5\x08 \x01(\x0b\x32&.protoc.gen.jsonschema.v1.FieldOptionsR\x0c\x66ieldOptionsB*Z(github.com/chrusty/protoc-gen-jsonschemab\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'protoc.gen.jsonschema.v1.options_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z(github.com/chrusty/protoc-gen-jsonschema' + _globals['_FIELDOPTIONS']._serialized_start=103 + _globals['_FIELDOPTIONS']._serialized_end=257 +# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi new file mode 100644 index 0000000..8613731 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/protoc/gen/jsonschema/v1/options_pb2.pyi @@ -0,0 +1,22 @@ +from google.protobuf import descriptor_pb2 as _descriptor_pb2 +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from typing import ClassVar as _ClassVar, Optional as _Optional + +DESCRIPTOR: _descriptor.FileDescriptor +FIELD_OPTIONS_FIELD_NUMBER: _ClassVar[int] +field_options: _descriptor.FieldDescriptor + +class FieldOptions(_message.Message): + __slots__ = ("ignore", "required", "min_length", "max_length", "pattern") + IGNORE_FIELD_NUMBER: _ClassVar[int] + REQUIRED_FIELD_NUMBER: _ClassVar[int] + MIN_LENGTH_FIELD_NUMBER: _ClassVar[int] + MAX_LENGTH_FIELD_NUMBER: _ClassVar[int] + PATTERN_FIELD_NUMBER: _ClassVar[int] + ignore: bool + required: bool + min_length: int + max_length: int + pattern: str + def __init__(self, ignore: _Optional[bool] = ..., required: _Optional[bool] = ..., min_length: _Optional[int] = ..., max_length: _Optional[int] = ..., pattern: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py new file mode 100644 index 0000000..aa07901 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.py @@ -0,0 +1,641 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: sap/auditlog/auditevent/v1/auditevent.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, + '', + 'sap/auditlog/auditevent/v1/auditevent.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 +from protoc.gen.jsonschema.v1 import options_pb2 as protoc_dot_gen_dot_jsonschema_dot_v1_dot_options__pb2 + + +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n+sap/auditlog/auditevent/v1/auditevent.proto\x12\x1asap.auditlog.auditevent.v1\x1a\x1b\x62uf/validate/validate.proto\x1a\x1cgoogle/protobuf/struct.proto\x1a\x1fgoogle/protobuf/timestamp.proto\x1a&protoc/gen/jsonschema/v1/options.proto\"\xb8\x0e\n\x08Metadata\x12\x15\n\x02ts\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x02ts\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\x12U\n\x0b\x61pp_context\x18\x08 \x03(\x0b\x32\x34.sap.auditlog.auditevent.v1.Metadata.AppContextEntryR\nappContext\x12[\n\x0einfrastructure\x18\t \x01(\x0b\x32\x33.sap.auditlog.auditevent.v1.Metadata.InfrastructureR\x0einfrastructure\x12I\n\x08platform\x18\n \x01(\x0b\x32-.sap.auditlog.auditevent.v1.Metadata.PlatformR\x08platform\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\x1a\xc6\x05\n\x0eInfrastructure\x12R\n\x03k8s\x18\x01 \x01(\x0b\x32>.sap.auditlog.auditevent.v1.Metadata.Infrastructure.KubernetesH\x00R\x03k8s\x12R\n\x02\x63\x66\x18\x02 \x01(\x0b\x32@.sap.auditlog.auditevent.v1.Metadata.Infrastructure.CloudFoundryH\x00R\x02\x63\x66\x12Q\n\x05other\x18\x03 \x01(\x0b\x32\x39.sap.auditlog.auditevent.v1.Metadata.Infrastructure.OtherH\x00R\x05other\x12I\n\x03\x61pp\x18\x04 \x01(\x0b\x32\x37.sap.auditlog.auditevent.v1.Metadata.Infrastructure.AppR\x03\x61pp\x1a\x81\x01\n\nKubernetes\x12\x33\n\x15infrastructure_region\x18\x01 \x01(\tR\x14infrastructureRegion\x12\x18\n\x07\x63luster\x18\x02 \x01(\tR\x07\x63luster\x12\x12\n\x04node\x18\x03 \x01(\tR\x04node\x12\x10\n\x03pod\x18\x04 \x01(\tR\x03pod\x1au\n\x0c\x43loudFoundry\x12\x1c\n\tbtpregion\x18\x01 \x01(\tR\tbtpregion\x12\x15\n\x06org_id\x18\x02 \x01(\tR\x05orgId\x12\x19\n\x08space_id\x18\x03 \x01(\tR\x07spaceId\x12\x15\n\x06\x61pp_id\x18\x04 \x01(\tR\x05\x61ppId\x1a*\n\x05Other\x12!\n\x0cruntime_type\x18\x01 \x01(\tR\x0bruntimeType\x1a\x35\n\x03\x41pp\x12\x14\n\x05image\x18\x01 \x01(\tR\x05image\x12\x18\n\x07version\x18\x02 \x01(\tR\x07versionB\x10\n\x07runtime\x12\x05\xbaH\x02\x08\x01\x1a\xa7\x04\n\x08Platform\x12\x45\n\x03\x62tp\x18\x01 \x01(\x0b\x32\x31.sap.auditlog.auditevent.v1.Metadata.Platform.BTPH\x00R\x03\x62tp\x12j\n\x10unified_services\x18\x02 \x01(\x0b\x32=.sap.auditlog.auditevent.v1.Metadata.Platform.UnifiedServicesH\x00R\x0funifiedServices\x12K\n\x05other\x18\x03 \x01(\x0b\x32\x33.sap.auditlog.auditevent.v1.Metadata.Platform.OtherH\x00R\x05other\x1aW\n\x03\x42TP\x12*\n\x11global_account_id\x18\x01 \x01(\tR\x0fglobalAccountId\x12$\n\x0esub_account_id\x18\x02 \x01(\tR\x0csubAccountId\x1a\x80\x01\n\x0fUnifiedServices\x12\x1d\n\naccount_id\x18\x01 \x01(\tR\taccountId\x12\x1f\n\x0b\x66older_path\x18\x02 \x01(\tR\nfolderPath\x12-\n\x12resourcegroup_path\x18\x03 \x01(\tR\x11resourcegroupPath\x1a,\n\x05Other\x12#\n\rplatform_name\x18\x01 \x01(\tR\x0cplatformNameB\x11\n\x08platform\x12\x05\xbaH\x02\x08\x01\"9\n\rAuditlogClear\x12(\n\x10number_of_events\x18\x01 \x01(\x05R\x0enumberOfEvents\"\x11\n\x0f\x41uditlogDisable\"\x10\n\x0e\x41uditlogEnable\"\xa8\x01\n\x18\x41uthnPrivilegeToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12*\n\tprivilege\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xab\x01\n\x1b\x41uthnPrivilegeToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12*\n\tprivilege\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa5\x01\n\x17\x41uthnPrivilegeToRoleAdd\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa8\x01\n\x1a\x41uthnPrivilegeToRoleDelete\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa5\x01\n\x17\x41uthnPrivilegeToUserAdd\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"\xa8\x01\n\x1a\x41uthnPrivilegeToUserDelete\x12*\n\tprivilege\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tprivilege\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\x12\x1f\n\x0bobject_type\x18\x03 \x01(\tR\nobjectType\x12\x1b\n\tobject_id\x18\x04 \x01(\tR\x08objectId\"[\n\x13\x41uthnRoleToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\"^\n\x16\x41uthnRoleToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04role\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\"X\n\x12\x41uthnRoleToUserAdd\x12 \n\x04role\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"[\n\x15\x41uthnRoleToUserDelete\x12 \n\x04role\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04role\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"[\n\x13\x41uthnUserToGroupAdd\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"^\n\x16\x41uthnUserToGroupDelete\x12\"\n\x05group\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05group\x12 \n\x04user\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x04user\"\xc1\x01\n\x10\x43onfigurationAdd\x12\x33\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x05value\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\x87\x02\n\x13\x43onfigurationChange\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\xc4\x01\n\x13\x43onfigurationDelete\x12\x33\n\x05value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x05value\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\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\"\xa1\x01\n\x10\x43redentialCreate\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\"\xa1\x01\n\x10\x43redentialDelete\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\"\xea\x01\n\x14\x43redentialExpiration\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\x12\x43\n\x0f\x65xpiration_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0e\x65xpirationDate\"\xea\x01\n\x14\x43redentialRevokation\x12\x31\n\rcredential_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0c\x63redentialId\x12Z\n\x0f\x63redential_type\x18\x02 \x01(\x0e\x32*.sap.auditlog.auditevent.v1.CredentialTypeB\x05\xaa\x46\x02\x10\x01R\x0e\x63redentialType\x12\x43\n\x0frevokation_date\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.TimestampR\x0erevokationDate\"\xe5\x01\n\x0f\x44\x61taModelChange\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\":\n\x0f\x44\x61taModelCreate\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\":\n\x0f\x44\x61taModelDelete\x12\'\n\x08model_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x07modelId\"\xf4\x02\n\nDataAccess\x12/\n\x0c\x63hannel_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\x07 \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\x08 \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xc0\x01\n\nDataCreate\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xc0\x01\n\nDataDelete\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\x82\x02\n\x10\x44\x61taModification\x12-\n\x0bobject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x04 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x05 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xa7\x02\n\nDataExport\x12[\n\x0c\x63hannel_type\x18\x01 \x01(\x0e\x32\x31.sap.auditlog.auditevent.v1.DataExportChannelTypeB\x05\xaa\x46\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12\x35\n\x0f\x64\x65stination_uri\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0e\x64\x65stinationUri\"\xe7\x03\n\rDppDataAccess\x12/\n\x0c\x63hannel_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0b\x63hannelType\x12+\n\nchannel_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tchannelId\x12\x38\n\x11\x64\x61ta_subject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x06 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x07 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x08 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\x12+\n\x0f\x61ttachment_type\x18\t \x01(\tB\x02\x18\x01R\x0e\x61ttachmentType\x12\'\n\rattachment_id\x18\n \x01(\tB\x02\x18\x01R\x0c\x61ttachmentId\"\xb3\x02\n\rDppDataCreate\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xb3\x02\n\rDppDataDelete\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12,\n\x05value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x05value\"\xf5\x02\n\x13\x44ppDataModification\x12\x38\n\x11\x64\x61ta_subject_type\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0f\x64\x61taSubjectType\x12\x34\n\x0f\x64\x61ta_subject_id\x18\x02 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\rdataSubjectId\x12-\n\x0bobject_type\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\nobjectType\x12)\n\tobject_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08objectId\x12*\n\tattribute\x18\x05 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tattribute\x12\x33\n\tnew_value\x18\x06 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08newValue\x12\x33\n\told_value\x18\x07 \x01(\x0b\x32\x16.google.protobuf.ValueR\x08oldValue\"\xdb\x01\n\tJobChange\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"0\n\tJobCreate\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\"0\n\tJobDelete\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\"\xe1\x01\n\x0fJobStatusChange\x12#\n\x06job_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x05jobId\x12:\n\tnew_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x03 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\"\xe6\x01\n\x18MaliciousRequestDetected\x12*\n\tparameter\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\tparameter\x12%\n\x0e\x65xpected_value\x18\x02 \x01(\tR\rexpectedValue\x12%\n\x0ereceived_value\x18\x03 \x01(\tR\rreceivedValue\x12P\n\x08\x62\x65havior\x18\x04 \x01(\x0e\x32-.sap.auditlog.auditevent.v1.MaliciousBehaviorB\x05\xaa\x46\x02\x10\x01R\x08\x62\x65havior\"7\n\x0ePasswordChange\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\";\n\x12PasswordExpiration\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"6\n\rPasswordReset\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xea\x01\n\x12TenantModification\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12)\n\ttenant_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\">\n\x11TenantOffboarding\x12)\n\ttenant_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\"=\n\x10TenantOnboarding\x12)\n\ttenant_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x08tenantId\"\x18\n\x16UnauthenticatedRequest\"\x15\n\x13UnauthorizedRequest\"5\n\x0cUserActivate\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"2\n\tUserBlock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserCreate\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xe8\x01\n\x14UserDataModification\x12:\n\tnew_value\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08newValue\x12:\n\told_value\x18\x02 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x08oldValue\x12\x31\n\rproperty_name\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0cpropertyName\x12%\n\x07user_id\x18\x04 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserDelete\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xe7\x02\n\x16UserImpersonationStart\x12\x38\n\x11user_initiator_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x02 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x11userInitiatorType\x12>\n\x14user_impersonated_id\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"\xe8\x02\n\x17UserImpersonationFinish\x12\x38\n\x11user_initiator_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x0fuserInitiatorId\x12T\n\x13user_initiator_type\x18\x02 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x11userInitiatorType\x12>\n\x14user_impersonated_id\x18\x03 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x12userImpersonatedId\x12Z\n\x16user_impersonated_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeR\x14userImpersonatedType\x12!\n\x07\x63ontext\x18\x05 \x01(\tB\x07\xbaH\x04r\x02\x10\x01R\x07\x63ontext\"1\n\x08UserLock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserUnlock\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"3\n\nUserVerify\x12%\n\x07user_id\x18\x01 \x01(\tB\x0c\xaa\x46\x02\x10\x01\xbaH\x04r\x02\x10\x01R\x06userId\"\xb3\x01\n\x10UserLoginFailure\x12W\n\x0e\x66\x61ilure_reason\x18\x01 \x01(\x0e\x32).sap.auditlog.auditevent.v1.FailureReasonB\x05\xaa\x46\x02\x10\x01R\rfailureReason\x12\x46\n\x06method\x18\x02 \x01(\x0e\x32\'.sap.auditlog.auditevent.v1.LoginMethodB\x05\xaa\x46\x02\x10\x01R\x06method\"\x86\x02\n\x10UserLoginSuccess\x12\x19\n\x08is_admin\x18\x01 \x01(\x08R\x07isAdmin\x12\x46\n\x06method\x18\x02 \x01(\x0e\x32\'.sap.auditlog.auditevent.v1.LoginMethodB\x05\xaa\x46\x02\x10\x01R\x06method\x12\x45\n\x08mfa_type\x18\x03 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.MfaTypeB\x05\xaa\x46\x02\x10\x01R\x07mfaType\x12H\n\tuser_type\x18\x04 \x01(\x0e\x32$.sap.auditlog.auditevent.v1.UserTypeB\x05\xaa\x46\x02\x10\x01R\x08userType\"\\\n\nUserLogoff\x12N\n\x0blogoff_type\x18\x01 \x01(\x0e\x32&.sap.auditlog.auditevent.v1.LogoffTypeB\x05\xaa\x46\x02\x10\x01R\nlogoffType\"G\n\x0eZzzCustomEvent\x12\x35\n\x06\x63ustom\x18\x01 \x01(\x0b\x32\x16.google.protobuf.ValueB\x05\xaa\x46\x02\x10\x01R\x06\x63ustom\"Q\n\rCMKOnboarding\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"R\n\x0e\x43MKOffboarding\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"y\n\tCMKSwitch\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12#\n\ncmk_id_old\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08\x63mkIdOld\x12#\n\ncmk_id_new\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08\x63mkIdNew\"\xa6\x01\n\x15\x43MKTenantModification\x12\"\n\tsystem_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12K\n\ncmk_action\x18\x03 \x01(\x0e\x32%.sap.auditlog.auditevent.v1.CMKActionB\x05\xaa\x46\x02\x10\x01R\tcmkAction\"T\n\tCMKCreate\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"T\n\tCMKDelete\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"U\n\nCMKRestore\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"U\n\nCMKDisable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"T\n\tCMKEnable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\")\n\tCMKRotate\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyCreate\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyDelete\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb3\x01\n\nKeyRestore\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb1\x01\n\x08KeyPurge\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyRotate\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb2\x01\n\tKeyEnable\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"\xb3\x01\n\nKeyDisable\x12\x45\n\x08key_type\x18\x01 \x01(\x0e\x32#.sap.auditlog.auditevent.v1.KeyTypeB\x05\xaa\x46\x02\x10\x01R\x07keyType\x12\x1c\n\x06key_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05keyId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x08systemId\x12\x1c\n\x06\x63mk_id\x18\x04 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\"Y\n\x0e\x43MKUnavailable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"W\n\x0c\x43MKAvailable\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\"x\n\tCMKDetach\x12\x1c\n\x06\x63mk_id\x18\x01 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x05\x63mkId\x12)\n\rkms_system_id\x18\x02 \x01(\tB\x05\xaa\x46\x02\x10\x01R\x0bkmsSystemId\x12\"\n\tsystem_id\x18\x03 \x01(\tB\x05\xaa\x46\x02\x10\x01R\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*\xad\x05\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*\x96\x04\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*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*s\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*`\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\x42\x1dZ\x1bsap.com/auditlog/auditeventb\x06proto3') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sap.auditlog.auditevent.v1.auditevent_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' + _globals['_METADATA_APPCONTEXTENTRY']._loaded_options = None + _globals['_METADATA_APPCONTEXTENTRY']._serialized_options = b'8\001' + _globals['_METADATA_INFRASTRUCTURE'].oneofs_by_name['runtime']._loaded_options = None + _globals['_METADATA_INFRASTRUCTURE'].oneofs_by_name['runtime']._serialized_options = b'\272H\002\010\001' + _globals['_METADATA_PLATFORM'].oneofs_by_name['platform']._loaded_options = None + _globals['_METADATA_PLATFORM'].oneofs_by_name['platform']._serialized_options = b'\272H\002\010\001' + _globals['_METADATA'].fields_by_name['ts']._loaded_options = None + _globals['_METADATA'].fields_by_name['ts']._serialized_options = b'\252F\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['privilege']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['role']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['group']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CONFIGURATIONADD'].fields_by_name['value']._loaded_options = None + _globals['_CONFIGURATIONADD'].fields_by_name['value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._loaded_options = None + _globals['_CONFIGURATIONADD'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_CONFIGURATIONCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CONFIGURATIONDELETE'].fields_by_name['value']._loaded_options = None + _globals['_CONFIGURATIONDELETE'].fields_by_name['value']._serialized_options = b'\252F\002\020\001' + _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._loaded_options = None + _globals['_CONFIGURATIONDELETE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\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['_CREDENTIALCREATE'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALCREATE'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALCREATE'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALDELETE'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALDELETE'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALEXPIRATION'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._loaded_options = None + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._loaded_options = None + _globals['_CREDENTIALREVOKATION'].fields_by_name['credential_type']._serialized_options = b'\252F\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODELCREATE'].fields_by_name['model_id']._loaded_options = None + _globals['_DATAMODELCREATE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODELDELETE'].fields_by_name['model_id']._loaded_options = None + _globals['_DATAMODELDELETE'].fields_by_name['model_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['channel_type']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['channel_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['object_type']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['object_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAACCESS'].fields_by_name['attribute']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['object_type']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['object_id']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATACREATE'].fields_by_name['attribute']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['object_type']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['object_id']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATADELETE'].fields_by_name['attribute']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['channel_type']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['channel_id']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['object_type']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['object_id']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DATAEXPORT'].fields_by_name['destination_uri']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['destination_uri']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['channel_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAACCESS'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['data_subject_type']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATACREATE'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATADELETE'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['data_subject_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_type']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['attribute']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBCREATE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBCREATE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBDELETE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBDELETE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['job_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._loaded_options = None + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['parameter']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._loaded_options = None + _globals['_MALICIOUSREQUESTDETECTED'].fields_by_name['behavior']._serialized_options = b'\252F\002\020\001' + _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._loaded_options = None + _globals['_PASSWORDCHANGE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._loaded_options = None + _globals['_PASSWORDEXPIRATION'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_PASSWORDRESET'].fields_by_name['user_id']._loaded_options = None + _globals['_PASSWORDRESET'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._loaded_options = None + _globals['_TENANTOFFBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._loaded_options = None + _globals['_TENANTONBOARDING'].fields_by_name['tenant_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERACTIVATE'].fields_by_name['user_id']._loaded_options = None + _globals['_USERACTIVATE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERBLOCK'].fields_by_name['user_id']._loaded_options = None + _globals['_USERBLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERCREATE'].fields_by_name['user_id']._loaded_options = None + _globals['_USERCREATE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['new_value']._serialized_options = b'\252F\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['old_value']._serialized_options = b'\252F\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['property_name']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERDELETE'].fields_by_name['user_id']._loaded_options = None + _globals['_USERDELETE'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_initiator_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['user_impersonated_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['user_initiator_id']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_initiator_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['user_impersonated_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\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['user_id']._loaded_options = None + _globals['_USERLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERUNLOCK'].fields_by_name['user_id']._loaded_options = None + _globals['_USERUNLOCK'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERVERIFY'].fields_by_name['user_id']._loaded_options = None + _globals['_USERVERIFY'].fields_by_name['user_id']._serialized_options = b'\252F\002\020\001\272H\004r\002\020\001' + _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['failure_reason']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINFAILURE'].fields_by_name['method']._loaded_options = None + _globals['_USERLOGINFAILURE'].fields_by_name['method']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['method']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['method']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['mfa_type']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._loaded_options = None + _globals['_USERLOGINSUCCESS'].fields_by_name['user_type']._serialized_options = b'\252F\002\020\001' + _globals['_USERLOGOFF'].fields_by_name['logoff_type']._loaded_options = None + _globals['_USERLOGOFF'].fields_by_name['logoff_type']._serialized_options = b'\252F\002\020\001' + _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._loaded_options = None + _globals['_ZZZCUSTOMEVENT'].fields_by_name['custom']._serialized_options = b'\252F\002\020\001' + _globals['_CMKONBOARDING'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKONBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKOFFBOARDING'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKSWITCH'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['cmk_id_old']._serialized_options = b'\252F\002\020\001' + _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._loaded_options = None + _globals['_CMKSWITCH'].fields_by_name['cmk_id_new']._serialized_options = b'\252F\002\020\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._loaded_options = None + _globals['_CMKTENANTMODIFICATION'].fields_by_name['cmk_action']._serialized_options = b'\252F\002\020\001' + _globals['_CMKCREATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKCREATE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKCREATE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDELETE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDELETE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDELETE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKRESTORE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKRESTORE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDISABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDISABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKENABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKENABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKENABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKROTATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKROTATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYCREATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYCREATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDELETE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYDELETE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYRESTORE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYRESTORE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYPURGE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYPURGE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYROTATE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYROTATE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYENABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYENABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['key_type']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['key_type']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['key_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['key_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['system_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_KEYDISABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_KEYDISABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKUNAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKAVAILABLE'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDETACH'].fields_by_name['cmk_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['cmk_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDETACH'].fields_by_name['kms_system_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['kms_system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CMKDETACH'].fields_by_name['system_id']._loaded_options = None + _globals['_CMKDETACH'].fields_by_name['system_id']._serialized_options = b'\252F\002\020\001' + _globals['_CREDENTIALTYPE']._serialized_start=14182 + _globals['_CREDENTIALTYPE']._serialized_end=14322 + _globals['_FAILUREREASON']._serialized_start=14325 + _globals['_FAILUREREASON']._serialized_end=15010 + _globals['_LOGINMETHOD']._serialized_start=15013 + _globals['_LOGINMETHOD']._serialized_end=15547 + _globals['_LOGOFFTYPE']._serialized_start=15549 + _globals['_LOGOFFTYPE']._serialized_end=15639 + _globals['_MALICIOUSBEHAVIOR']._serialized_start=15642 + _globals['_MALICIOUSBEHAVIOR']._serialized_end=15874 + _globals['_MFATYPE']._serialized_start=15876 + _globals['_MFATYPE']._serialized_end=15991 + _globals['_USERTYPE']._serialized_start=15993 + _globals['_USERTYPE']._serialized_end=16089 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_start=16092 + _globals['_DATAEXPORTCHANNELTYPE']._serialized_end=16275 + _globals['_EVENTCATEGORYCODE']._serialized_start=16278 + _globals['_EVENTCATEGORYCODE']._serialized_end=16454 + _globals['_CMKACTION']._serialized_start=16457 + _globals['_CMKACTION']._serialized_end=16677 + _globals['_KEYTYPE']._serialized_start=16679 + _globals['_KEYTYPE']._serialized_end=16794 + _globals['_METADATA']._serialized_start=208 + _globals['_METADATA']._serialized_end=2056 + _globals['_METADATA_APPCONTEXTENTRY']._serialized_start=728 + _globals['_METADATA_APPCONTEXTENTRY']._serialized_end=789 + _globals['_METADATA_INFRASTRUCTURE']._serialized_start=792 + _globals['_METADATA_INFRASTRUCTURE']._serialized_end=1502 + _globals['_METADATA_INFRASTRUCTURE_KUBERNETES']._serialized_start=1137 + _globals['_METADATA_INFRASTRUCTURE_KUBERNETES']._serialized_end=1266 + _globals['_METADATA_INFRASTRUCTURE_CLOUDFOUNDRY']._serialized_start=1268 + _globals['_METADATA_INFRASTRUCTURE_CLOUDFOUNDRY']._serialized_end=1385 + _globals['_METADATA_INFRASTRUCTURE_OTHER']._serialized_start=1387 + _globals['_METADATA_INFRASTRUCTURE_OTHER']._serialized_end=1429 + _globals['_METADATA_INFRASTRUCTURE_APP']._serialized_start=1431 + _globals['_METADATA_INFRASTRUCTURE_APP']._serialized_end=1484 + _globals['_METADATA_PLATFORM']._serialized_start=1505 + _globals['_METADATA_PLATFORM']._serialized_end=2056 + _globals['_METADATA_PLATFORM_BTP']._serialized_start=1773 + _globals['_METADATA_PLATFORM_BTP']._serialized_end=1860 + _globals['_METADATA_PLATFORM_UNIFIEDSERVICES']._serialized_start=1863 + _globals['_METADATA_PLATFORM_UNIFIEDSERVICES']._serialized_end=1991 + _globals['_METADATA_PLATFORM_OTHER']._serialized_start=1993 + _globals['_METADATA_PLATFORM_OTHER']._serialized_end=2037 + _globals['_AUDITLOGCLEAR']._serialized_start=2058 + _globals['_AUDITLOGCLEAR']._serialized_end=2115 + _globals['_AUDITLOGDISABLE']._serialized_start=2117 + _globals['_AUDITLOGDISABLE']._serialized_end=2134 + _globals['_AUDITLOGENABLE']._serialized_start=2136 + _globals['_AUDITLOGENABLE']._serialized_end=2152 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_start=2155 + _globals['_AUTHNPRIVILEGETOGROUPADD']._serialized_end=2323 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_start=2326 + _globals['_AUTHNPRIVILEGETOGROUPDELETE']._serialized_end=2497 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_start=2500 + _globals['_AUTHNPRIVILEGETOROLEADD']._serialized_end=2665 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_start=2668 + _globals['_AUTHNPRIVILEGETOROLEDELETE']._serialized_end=2836 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_start=2839 + _globals['_AUTHNPRIVILEGETOUSERADD']._serialized_end=3004 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_start=3007 + _globals['_AUTHNPRIVILEGETOUSERDELETE']._serialized_end=3175 + _globals['_AUTHNROLETOGROUPADD']._serialized_start=3177 + _globals['_AUTHNROLETOGROUPADD']._serialized_end=3268 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_start=3270 + _globals['_AUTHNROLETOGROUPDELETE']._serialized_end=3364 + _globals['_AUTHNROLETOUSERADD']._serialized_start=3366 + _globals['_AUTHNROLETOUSERADD']._serialized_end=3454 + _globals['_AUTHNROLETOUSERDELETE']._serialized_start=3456 + _globals['_AUTHNROLETOUSERDELETE']._serialized_end=3547 + _globals['_AUTHNUSERTOGROUPADD']._serialized_start=3549 + _globals['_AUTHNUSERTOGROUPADD']._serialized_end=3640 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_start=3642 + _globals['_AUTHNUSERTOGROUPDELETE']._serialized_end=3736 + _globals['_CONFIGURATIONADD']._serialized_start=3739 + _globals['_CONFIGURATIONADD']._serialized_end=3932 + _globals['_CONFIGURATIONCHANGE']._serialized_start=3935 + _globals['_CONFIGURATIONCHANGE']._serialized_end=4198 + _globals['_CONFIGURATIONDELETE']._serialized_start=4201 + _globals['_CONFIGURATIONDELETE']._serialized_end=4397 + _globals['_CREDENTIALCREATE']._serialized_start=4400 + _globals['_CREDENTIALCREATE']._serialized_end=4561 + _globals['_CREDENTIALDELETE']._serialized_start=4564 + _globals['_CREDENTIALDELETE']._serialized_end=4725 + _globals['_CREDENTIALEXPIRATION']._serialized_start=4728 + _globals['_CREDENTIALEXPIRATION']._serialized_end=4962 + _globals['_CREDENTIALREVOKATION']._serialized_start=4965 + _globals['_CREDENTIALREVOKATION']._serialized_end=5199 + _globals['_DATAMODELCHANGE']._serialized_start=5202 + _globals['_DATAMODELCHANGE']._serialized_end=5431 + _globals['_DATAMODELCREATE']._serialized_start=5433 + _globals['_DATAMODELCREATE']._serialized_end=5491 + _globals['_DATAMODELDELETE']._serialized_start=5493 + _globals['_DATAMODELDELETE']._serialized_end=5551 + _globals['_DATAACCESS']._serialized_start=5554 + _globals['_DATAACCESS']._serialized_end=5926 + _globals['_DATACREATE']._serialized_start=5929 + _globals['_DATACREATE']._serialized_end=6121 + _globals['_DATADELETE']._serialized_start=6124 + _globals['_DATADELETE']._serialized_end=6316 + _globals['_DATAMODIFICATION']._serialized_start=6319 + _globals['_DATAMODIFICATION']._serialized_end=6577 + _globals['_DATAEXPORT']._serialized_start=6580 + _globals['_DATAEXPORT']._serialized_end=6875 + _globals['_DPPDATAACCESS']._serialized_start=6878 + _globals['_DPPDATAACCESS']._serialized_end=7365 + _globals['_DPPDATACREATE']._serialized_start=7368 + _globals['_DPPDATACREATE']._serialized_end=7675 + _globals['_DPPDATADELETE']._serialized_start=7678 + _globals['_DPPDATADELETE']._serialized_end=7985 + _globals['_DPPDATAMODIFICATION']._serialized_start=7988 + _globals['_DPPDATAMODIFICATION']._serialized_end=8361 + _globals['_JOBCHANGE']._serialized_start=8364 + _globals['_JOBCHANGE']._serialized_end=8583 + _globals['_JOBCREATE']._serialized_start=8585 + _globals['_JOBCREATE']._serialized_end=8633 + _globals['_JOBDELETE']._serialized_start=8635 + _globals['_JOBDELETE']._serialized_end=8683 + _globals['_JOBSTATUSCHANGE']._serialized_start=8686 + _globals['_JOBSTATUSCHANGE']._serialized_end=8911 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_start=8914 + _globals['_MALICIOUSREQUESTDETECTED']._serialized_end=9144 + _globals['_PASSWORDCHANGE']._serialized_start=9146 + _globals['_PASSWORDCHANGE']._serialized_end=9201 + _globals['_PASSWORDEXPIRATION']._serialized_start=9203 + _globals['_PASSWORDEXPIRATION']._serialized_end=9262 + _globals['_PASSWORDRESET']._serialized_start=9264 + _globals['_PASSWORDRESET']._serialized_end=9318 + _globals['_TENANTMODIFICATION']._serialized_start=9321 + _globals['_TENANTMODIFICATION']._serialized_end=9555 + _globals['_TENANTOFFBOARDING']._serialized_start=9557 + _globals['_TENANTOFFBOARDING']._serialized_end=9619 + _globals['_TENANTONBOARDING']._serialized_start=9621 + _globals['_TENANTONBOARDING']._serialized_end=9682 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_start=9684 + _globals['_UNAUTHENTICATEDREQUEST']._serialized_end=9708 + _globals['_UNAUTHORIZEDREQUEST']._serialized_start=9710 + _globals['_UNAUTHORIZEDREQUEST']._serialized_end=9731 + _globals['_USERACTIVATE']._serialized_start=9733 + _globals['_USERACTIVATE']._serialized_end=9786 + _globals['_USERBLOCK']._serialized_start=9788 + _globals['_USERBLOCK']._serialized_end=9838 + _globals['_USERCREATE']._serialized_start=9840 + _globals['_USERCREATE']._serialized_end=9891 + _globals['_USERDATAMODIFICATION']._serialized_start=9894 + _globals['_USERDATAMODIFICATION']._serialized_end=10126 + _globals['_USERDELETE']._serialized_start=10128 + _globals['_USERDELETE']._serialized_end=10179 + _globals['_USERIMPERSONATIONSTART']._serialized_start=10182 + _globals['_USERIMPERSONATIONSTART']._serialized_end=10541 + _globals['_USERIMPERSONATIONFINISH']._serialized_start=10544 + _globals['_USERIMPERSONATIONFINISH']._serialized_end=10904 + _globals['_USERLOCK']._serialized_start=10906 + _globals['_USERLOCK']._serialized_end=10955 + _globals['_USERUNLOCK']._serialized_start=10957 + _globals['_USERUNLOCK']._serialized_end=11008 + _globals['_USERVERIFY']._serialized_start=11010 + _globals['_USERVERIFY']._serialized_end=11061 + _globals['_USERLOGINFAILURE']._serialized_start=11064 + _globals['_USERLOGINFAILURE']._serialized_end=11243 + _globals['_USERLOGINSUCCESS']._serialized_start=11246 + _globals['_USERLOGINSUCCESS']._serialized_end=11508 + _globals['_USERLOGOFF']._serialized_start=11510 + _globals['_USERLOGOFF']._serialized_end=11602 + _globals['_ZZZCUSTOMEVENT']._serialized_start=11604 + _globals['_ZZZCUSTOMEVENT']._serialized_end=11675 + _globals['_CMKONBOARDING']._serialized_start=11677 + _globals['_CMKONBOARDING']._serialized_end=11758 + _globals['_CMKOFFBOARDING']._serialized_start=11760 + _globals['_CMKOFFBOARDING']._serialized_end=11842 + _globals['_CMKSWITCH']._serialized_start=11844 + _globals['_CMKSWITCH']._serialized_end=11965 + _globals['_CMKTENANTMODIFICATION']._serialized_start=11968 + _globals['_CMKTENANTMODIFICATION']._serialized_end=12134 + _globals['_CMKCREATE']._serialized_start=12136 + _globals['_CMKCREATE']._serialized_end=12220 + _globals['_CMKDELETE']._serialized_start=12222 + _globals['_CMKDELETE']._serialized_end=12306 + _globals['_CMKRESTORE']._serialized_start=12308 + _globals['_CMKRESTORE']._serialized_end=12393 + _globals['_CMKDISABLE']._serialized_start=12395 + _globals['_CMKDISABLE']._serialized_end=12480 + _globals['_CMKENABLE']._serialized_start=12482 + _globals['_CMKENABLE']._serialized_end=12566 + _globals['_CMKROTATE']._serialized_start=12568 + _globals['_CMKROTATE']._serialized_end=12609 + _globals['_KEYCREATE']._serialized_start=12612 + _globals['_KEYCREATE']._serialized_end=12790 + _globals['_KEYDELETE']._serialized_start=12793 + _globals['_KEYDELETE']._serialized_end=12971 + _globals['_KEYRESTORE']._serialized_start=12974 + _globals['_KEYRESTORE']._serialized_end=13153 + _globals['_KEYPURGE']._serialized_start=13156 + _globals['_KEYPURGE']._serialized_end=13333 + _globals['_KEYROTATE']._serialized_start=13336 + _globals['_KEYROTATE']._serialized_end=13514 + _globals['_KEYENABLE']._serialized_start=13517 + _globals['_KEYENABLE']._serialized_end=13695 + _globals['_KEYDISABLE']._serialized_start=13698 + _globals['_KEYDISABLE']._serialized_end=13877 + _globals['_CMKUNAVAILABLE']._serialized_start=13879 + _globals['_CMKUNAVAILABLE']._serialized_end=13968 + _globals['_CMKAVAILABLE']._serialized_start=13970 + _globals['_CMKAVAILABLE']._serialized_end=14057 + _globals['_CMKDETACH']._serialized_start=14059 + _globals['_CMKDETACH']._serialized_end=14179 +# @@protoc_insertion_point(module_scope) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi new file mode 100644 index 0000000..00187ed --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v1/auditevent_pb2.pyi @@ -0,0 +1,1093 @@ +import datetime + +from buf.validate import validate_pb2 as _validate_pb2 +from google.protobuf import struct_pb2 as _struct_pb2 +from google.protobuf import timestamp_pb2 as _timestamp_pb2 +from protoc.gen.jsonschema.v1 import options_pb2 as _options_pb2 +from google.protobuf.internal import containers as _containers +from google.protobuf.internal import enum_type_wrapper as _enum_type_wrapper +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 CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] + CREDENTIAL_TYPE_X509_CERTIFICATE: _ClassVar[CredentialType] + CREDENTIAL_TYPE_KEY: _ClassVar[CredentialType] + CREDENTIAL_TYPE_SECRET: _ClassVar[CredentialType] + +class FailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FAILURE_REASON_UNSPECIFIED: _ClassVar[FailureReason] + FAILURE_REASON_PASSWORD: _ClassVar[FailureReason] + FAILURE_REASON_MFA_FAILED: _ClassVar[FailureReason] + FAILURE_REASON_USER_NOT_FOUND: _ClassVar[FailureReason] + FAILURE_REASON_USER_LOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_BLOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_UNVERIFIED: _ClassVar[FailureReason] + FAILURE_REASON_USER_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_USER_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_INSECURE_CONNECTION: _ClassVar[FailureReason] + FAILURE_REASON_LOGIN_METHOD_DISABLED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_INVALID: _ClassVar[FailureReason] + +class LoginMethod(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGIN_METHOD_UNSPECIFIED: _ClassVar[LoginMethod] + LOGIN_METHOD_OPEN_ID_CONNECT: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML2: _ClassVar[LoginMethod] + LOGIN_METHOD_EXTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_SPNEGO: _ClassVar[LoginMethod] + LOGIN_METHOD_PASSWORD: _ClassVar[LoginMethod] + LOGIN_METHOD_RFC_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_SNC: _ClassVar[LoginMethod] + LOGIN_METHOD_LOGON_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_USER_SWITCH: _ClassVar[LoginMethod] + LOGIN_METHOD_X509_CERTIFICATE: _ClassVar[LoginMethod] + LOGIN_METHOD_APC_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_INTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_OAUTH2: _ClassVar[LoginMethod] + LOGIN_METHOD_REENTRANCE_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_HTTP_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_ASSERTION_TICKET: _ClassVar[LoginMethod] + +class LogoffType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGOFF_TYPE_UNSPECIFIED: _ClassVar[LogoffType] + LOGOFF_TYPE_REGULAR: _ClassVar[LogoffType] + LOGOFF_TYPE_FORCED: _ClassVar[LogoffType] + +class MaliciousBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MALICIOUS_BEHAVIOR_UNSPECIFIED: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: _ClassVar[MaliciousBehavior] + +class MfaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MFA_TYPE_UNSPECIFIED: _ClassVar[MfaType] + MFA_TYPE_NONE: _ClassVar[MfaType] + MFA_TYPE_RSA: _ClassVar[MfaType] + MFA_TYPE_TOTP: _ClassVar[MfaType] + MFA_TYPE_WEB_AUTHN: _ClassVar[MfaType] + +class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + USER_TYPE_UNSPECIFIED: _ClassVar[UserType] + USER_TYPE_BUSINESS_USER: _ClassVar[UserType] + USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] + +class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_PRINTER: _ClassVar[DataExportChannelType] + +class EventCategoryCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_IAM: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_CFG: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_DPP: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_RAL: _ClassVar[EventCategoryCode] + +class CMKAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CMK_ACTION_UNSPECIFIED: _ClassVar[CMKAction] + CMK_ACTION_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_BLOCK: _ClassVar[CMKAction] + CMK_ACTION_SHUTDOWN: _ClassVar[CMKAction] + CMK_ACTION_CSEKFALLBACK: _ClassVar[CMKAction] + CMK_ACTION_RESTORE: _ClassVar[CMKAction] + CMK_ACTION_KMS_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_KMS_OFFBOARD: _ClassVar[CMKAction] + +class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + KEY_TYPE_UNSPECIFIED: _ClassVar[KeyType] + KEY_TYPE_SYSTEM: _ClassVar[KeyType] + KEY_TYPE_SERVICE: _ClassVar[KeyType] + KEY_TYPE_DATA: _ClassVar[KeyType] + KEY_TYPE_KEK: _ClassVar[KeyType] +CREDENTIAL_TYPE_UNSPECIFIED: CredentialType +CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType +CREDENTIAL_TYPE_KEY: CredentialType +CREDENTIAL_TYPE_SECRET: CredentialType +FAILURE_REASON_UNSPECIFIED: FailureReason +FAILURE_REASON_PASSWORD: FailureReason +FAILURE_REASON_MFA_FAILED: FailureReason +FAILURE_REASON_USER_NOT_FOUND: FailureReason +FAILURE_REASON_USER_LOCKED: FailureReason +FAILURE_REASON_USER_BLOCKED: FailureReason +FAILURE_REASON_USER_UNVERIFIED: FailureReason +FAILURE_REASON_USER_EXPIRED: FailureReason +FAILURE_REASON_USER_INVALID: FailureReason +FAILURE_REASON_INSECURE_CONNECTION: FailureReason +FAILURE_REASON_LOGIN_METHOD_DISABLED: FailureReason +FAILURE_REASON_TOKEN_EXPIRED: FailureReason +FAILURE_REASON_TOKEN_REVOKED: FailureReason +FAILURE_REASON_TOKEN_INVALID: FailureReason +FAILURE_REASON_SESSION_EXPIRED: FailureReason +FAILURE_REASON_SESSION_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_EXPIRED: FailureReason +FAILURE_REASON_CERTIFICATE_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_INVALID: FailureReason +LOGIN_METHOD_UNSPECIFIED: LoginMethod +LOGIN_METHOD_OPEN_ID_CONNECT: LoginMethod +LOGIN_METHOD_SAML: LoginMethod +LOGIN_METHOD_SAML2: LoginMethod +LOGIN_METHOD_EXTERNAL: LoginMethod +LOGIN_METHOD_SPNEGO: LoginMethod +LOGIN_METHOD_PASSWORD: LoginMethod +LOGIN_METHOD_RFC_TICKET: LoginMethod +LOGIN_METHOD_SNC: LoginMethod +LOGIN_METHOD_LOGON_TICKET: LoginMethod +LOGIN_METHOD_USER_SWITCH: LoginMethod +LOGIN_METHOD_X509_CERTIFICATE: LoginMethod +LOGIN_METHOD_APC_SESSION: LoginMethod +LOGIN_METHOD_INTERNAL: LoginMethod +LOGIN_METHOD_OAUTH2: LoginMethod +LOGIN_METHOD_REENTRANCE_TICKET: LoginMethod +LOGIN_METHOD_HTTP_SESSION: LoginMethod +LOGIN_METHOD_ASSERTION_TICKET: LoginMethod +LOGOFF_TYPE_UNSPECIFIED: LogoffType +LOGOFF_TYPE_REGULAR: LogoffType +LOGOFF_TYPE_FORCED: LogoffType +MALICIOUS_BEHAVIOR_UNSPECIFIED: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: MaliciousBehavior +MFA_TYPE_UNSPECIFIED: MfaType +MFA_TYPE_NONE: MfaType +MFA_TYPE_RSA: MfaType +MFA_TYPE_TOTP: MfaType +MFA_TYPE_WEB_AUTHN: MfaType +USER_TYPE_UNSPECIFIED: UserType +USER_TYPE_BUSINESS_USER: UserType +USER_TYPE_TECHNICAL_USER: UserType +DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_PRINTER: DataExportChannelType +EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: EventCategoryCode +EVENT_CATEGORY_CODE_IAM: EventCategoryCode +EVENT_CATEGORY_CODE_CFG: EventCategoryCode +EVENT_CATEGORY_CODE_DPP: EventCategoryCode +EVENT_CATEGORY_CODE_RAL: EventCategoryCode +CMK_ACTION_UNSPECIFIED: CMKAction +CMK_ACTION_ONBOARD: CMKAction +CMK_ACTION_BLOCK: CMKAction +CMK_ACTION_SHUTDOWN: CMKAction +CMK_ACTION_CSEKFALLBACK: CMKAction +CMK_ACTION_RESTORE: CMKAction +CMK_ACTION_KMS_ONBOARD: CMKAction +CMK_ACTION_KMS_OFFBOARD: CMKAction +KEY_TYPE_UNSPECIFIED: KeyType +KEY_TYPE_SYSTEM: KeyType +KEY_TYPE_SERVICE: KeyType +KEY_TYPE_DATA: KeyType +KEY_TYPE_KEK: KeyType + +class Metadata(_message.Message): + __slots__ = ("ts", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context", "infrastructure", "platform") + class AppContextEntry(_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: ... + class Infrastructure(_message.Message): + __slots__ = ("k8s", "cf", "other", "app") + class Kubernetes(_message.Message): + __slots__ = ("infrastructure_region", "cluster", "node", "pod") + INFRASTRUCTURE_REGION_FIELD_NUMBER: _ClassVar[int] + CLUSTER_FIELD_NUMBER: _ClassVar[int] + NODE_FIELD_NUMBER: _ClassVar[int] + POD_FIELD_NUMBER: _ClassVar[int] + infrastructure_region: str + cluster: str + node: str + pod: str + def __init__(self, infrastructure_region: _Optional[str] = ..., cluster: _Optional[str] = ..., node: _Optional[str] = ..., pod: _Optional[str] = ...) -> None: ... + class CloudFoundry(_message.Message): + __slots__ = ("btpregion", "org_id", "space_id", "app_id") + BTPREGION_FIELD_NUMBER: _ClassVar[int] + ORG_ID_FIELD_NUMBER: _ClassVar[int] + SPACE_ID_FIELD_NUMBER: _ClassVar[int] + APP_ID_FIELD_NUMBER: _ClassVar[int] + btpregion: str + org_id: str + space_id: str + app_id: str + def __init__(self, btpregion: _Optional[str] = ..., org_id: _Optional[str] = ..., space_id: _Optional[str] = ..., app_id: _Optional[str] = ...) -> None: ... + class Other(_message.Message): + __slots__ = ("runtime_type",) + RUNTIME_TYPE_FIELD_NUMBER: _ClassVar[int] + runtime_type: str + def __init__(self, runtime_type: _Optional[str] = ...) -> None: ... + class App(_message.Message): + __slots__ = ("image", "version") + IMAGE_FIELD_NUMBER: _ClassVar[int] + VERSION_FIELD_NUMBER: _ClassVar[int] + image: str + version: str + def __init__(self, image: _Optional[str] = ..., version: _Optional[str] = ...) -> None: ... + K8S_FIELD_NUMBER: _ClassVar[int] + CF_FIELD_NUMBER: _ClassVar[int] + OTHER_FIELD_NUMBER: _ClassVar[int] + APP_FIELD_NUMBER: _ClassVar[int] + k8s: Metadata.Infrastructure.Kubernetes + cf: Metadata.Infrastructure.CloudFoundry + other: Metadata.Infrastructure.Other + app: Metadata.Infrastructure.App + def __init__(self, k8s: _Optional[_Union[Metadata.Infrastructure.Kubernetes, _Mapping]] = ..., cf: _Optional[_Union[Metadata.Infrastructure.CloudFoundry, _Mapping]] = ..., other: _Optional[_Union[Metadata.Infrastructure.Other, _Mapping]] = ..., app: _Optional[_Union[Metadata.Infrastructure.App, _Mapping]] = ...) -> None: ... + class Platform(_message.Message): + __slots__ = ("btp", "unified_services", "other") + class BTP(_message.Message): + __slots__ = ("global_account_id", "sub_account_id") + GLOBAL_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + SUB_ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + global_account_id: str + sub_account_id: str + def __init__(self, global_account_id: _Optional[str] = ..., sub_account_id: _Optional[str] = ...) -> None: ... + class UnifiedServices(_message.Message): + __slots__ = ("account_id", "folder_path", "resourcegroup_path") + ACCOUNT_ID_FIELD_NUMBER: _ClassVar[int] + FOLDER_PATH_FIELD_NUMBER: _ClassVar[int] + RESOURCEGROUP_PATH_FIELD_NUMBER: _ClassVar[int] + account_id: str + folder_path: str + resourcegroup_path: str + def __init__(self, account_id: _Optional[str] = ..., folder_path: _Optional[str] = ..., resourcegroup_path: _Optional[str] = ...) -> None: ... + class Other(_message.Message): + __slots__ = ("platform_name",) + PLATFORM_NAME_FIELD_NUMBER: _ClassVar[int] + platform_name: str + def __init__(self, platform_name: _Optional[str] = ...) -> None: ... + BTP_FIELD_NUMBER: _ClassVar[int] + UNIFIED_SERVICES_FIELD_NUMBER: _ClassVar[int] + OTHER_FIELD_NUMBER: _ClassVar[int] + btp: Metadata.Platform.BTP + unified_services: Metadata.Platform.UnifiedServices + other: Metadata.Platform.Other + def __init__(self, btp: _Optional[_Union[Metadata.Platform.BTP, _Mapping]] = ..., unified_services: _Optional[_Union[Metadata.Platform.UnifiedServices, _Mapping]] = ..., other: _Optional[_Union[Metadata.Platform.Other, _Mapping]] = ...) -> None: ... + TS_FIELD_NUMBER: _ClassVar[int] + SOURCE_IP_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] + APP_ID_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] + INFRASTRUCTURE_FIELD_NUMBER: _ClassVar[int] + PLATFORM_FIELD_NUMBER: _ClassVar[int] + ts: str + source_ip: _containers.RepeatedScalarFieldContainer[str] + user_impersonated_id: str + user_initiator_id: str + app_id: str + tenant_id: str + user_session_context_id: str + app_context: _containers.ScalarMap[str, str] + infrastructure: Metadata.Infrastructure + platform: Metadata.Platform + def __init__(self, ts: _Optional[str] = ..., 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]] = ..., infrastructure: _Optional[_Union[Metadata.Infrastructure, _Mapping]] = ..., platform: _Optional[_Union[Metadata.Platform, _Mapping]] = ...) -> None: ... + +class AuditlogClear(_message.Message): + __slots__ = ("number_of_events",) + NUMBER_OF_EVENTS_FIELD_NUMBER: _ClassVar[int] + number_of_events: int + def __init__(self, number_of_events: _Optional[int] = ...) -> None: ... + +class AuditlogDisable(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AuditlogEnable(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class AuthnPrivilegeToGroupAdd(_message.Message): + __slots__ = ("group", "privilege", "object_type", "object_id") + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToGroupDelete(_message.Message): + __slots__ = ("group", "privilege", "object_type", "object_id") + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleAdd(_message.Message): + __slots__ = ("privilege", "role", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleDelete(_message.Message): + __slots__ = ("privilege", "role", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToUserAdd(_message.Message): + __slots__ = ("privilege", "user", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + user: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToUserDelete(_message.Message): + __slots__ = ("privilege", "user", "object_type", "object_id") + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + privilege: str + user: str + object_type: str + object_id: str + def __init__(self, privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnRoleToGroupAdd(_message.Message): + __slots__ = ("group", "role") + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + group: str + role: str + def __init__(self, group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToGroupDelete(_message.Message): + __slots__ = ("group", "role") + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + group: str + role: str + def __init__(self, group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToUserAdd(_message.Message): + __slots__ = ("role", "user") + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + role: str + user: str + def __init__(self, role: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class AuthnRoleToUserDelete(_message.Message): + __slots__ = ("role", "user") + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + role: str + user: str + def __init__(self, role: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class AuthnUserToGroupAdd(_message.Message): + __slots__ = ("group", "user") + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + group: str + user: str + def __init__(self, group: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class AuthnUserToGroupDelete(_message.Message): + __slots__ = ("group", "user") + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + group: str + user: str + def __init__(self, group: _Optional[str] = ..., user: _Optional[str] = ...) -> None: ... + +class ConfigurationAdd(_message.Message): + __slots__ = ("value", "property_name", "object_type", "object_id") + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationChange(_message.Message): + __slots__ = ("new_value", "old_value", "property_name", "object_type", "object_id") + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationDelete(_message.Message): + __slots__ = ("value", "property_name", "object_type", "object_id") + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class CredentialCreate(_message.Message): + __slots__ = ("credential_id", "credential_type") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialDelete(_message.Message): + __slots__ = ("credential_id", "credential_type") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialExpiration(_message.Message): + __slots__ = ("credential_id", "credential_type", "expiration_date") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_DATE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + expiration_date: _timestamp_pb2.Timestamp + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., expiration_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CredentialRevokation(_message.Message): + __slots__ = ("credential_id", "credential_type", "revokation_date") + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + REVOKATION_DATE_FIELD_NUMBER: _ClassVar[int] + credential_id: str + credential_type: CredentialType + revokation_date: _timestamp_pb2.Timestamp + def __init__(self, credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., revokation_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class DataModelChange(_message.Message): + __slots__ = ("model_id", "new_value", "old_value", "property_name") + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + model_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, model_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class DataModelCreate(_message.Message): + __slots__ = ("model_id",) + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + model_id: str + def __init__(self, model_id: _Optional[str] = ...) -> None: ... + +class DataModelDelete(_message.Message): + __slots__ = ("model_id",) + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + model_id: str + def __init__(self, model_id: _Optional[str] = ...) -> None: ... + +class DataAccess(_message.Message): + __slots__ = ("channel_type", "channel_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + channel_type: str + channel_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DataCreate(_message.Message): + __slots__ = ("object_type", "object_id", "attribute", "value") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataDelete(_message.Message): + __slots__ = ("object_type", "object_id", "attribute", "value") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataModification(_message.Message): + __slots__ = ("object_type", "object_id", "attribute", "new_value", "old_value") + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataExport(_message.Message): + __slots__ = ("channel_type", "channel_id", "object_type", "object_id", "destination_uri") + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + DESTINATION_URI_FIELD_NUMBER: _ClassVar[int] + channel_type: DataExportChannelType + channel_id: str + object_type: str + object_id: str + destination_uri: str + def __init__(self, channel_type: _Optional[_Union[DataExportChannelType, str]] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., destination_uri: _Optional[str] = ...) -> None: ... + +class DppDataAccess(_message.Message): + __slots__ = ("channel_type", "channel_id", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + channel_type: str + channel_id: str + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DppDataCreate(_message.Message): + __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataDelete(_message.Message): + __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataModification(_message.Message): + __slots__ = ("data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "new_value", "old_value") + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class JobChange(_message.Message): + __slots__ = ("job_id", "new_value", "old_value", "property_name") + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class JobCreate(_message.Message): + __slots__ = ("job_id",) + JOB_ID_FIELD_NUMBER: _ClassVar[int] + job_id: str + def __init__(self, job_id: _Optional[str] = ...) -> None: ... + +class JobDelete(_message.Message): + __slots__ = ("job_id",) + JOB_ID_FIELD_NUMBER: _ClassVar[int] + job_id: str + def __init__(self, job_id: _Optional[str] = ...) -> None: ... + +class JobStatusChange(_message.Message): + __slots__ = ("job_id", "new_value", "old_value", "property_name") + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class MaliciousRequestDetected(_message.Message): + __slots__ = ("parameter", "expected_value", "received_value", "behavior") + PARAMETER_FIELD_NUMBER: _ClassVar[int] + EXPECTED_VALUE_FIELD_NUMBER: _ClassVar[int] + RECEIVED_VALUE_FIELD_NUMBER: _ClassVar[int] + BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + parameter: str + expected_value: str + received_value: str + behavior: MaliciousBehavior + def __init__(self, parameter: _Optional[str] = ..., expected_value: _Optional[str] = ..., received_value: _Optional[str] = ..., behavior: _Optional[_Union[MaliciousBehavior, str]] = ...) -> None: ... + +class PasswordChange(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class PasswordExpiration(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class PasswordReset(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class TenantModification(_message.Message): + __slots__ = ("new_value", "old_value", "property_name", "tenant_id") + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + tenant_id: str + def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOffboarding(_message.Message): + __slots__ = ("tenant_id",) + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + tenant_id: str + def __init__(self, tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOnboarding(_message.Message): + __slots__ = ("tenant_id",) + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + tenant_id: str + def __init__(self, tenant_id: _Optional[str] = ...) -> None: ... + +class UnauthenticatedRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class UnauthorizedRequest(_message.Message): + __slots__ = () + def __init__(self) -> None: ... + +class UserActivate(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserBlock(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserCreate(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserDataModification(_message.Message): + __slots__ = ("new_value", "old_value", "property_name", "user_id") + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + user_id: str + def __init__(self, new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., user_id: _Optional[str] = ...) -> None: ... + +class UserDelete(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserImpersonationStart(_message.Message): + __slots__ = ("user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + def __init__(self, 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] = ...) -> None: ... + +class UserImpersonationFinish(_message.Message): + __slots__ = ("user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + def __init__(self, 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] = ...) -> None: ... + +class UserLock(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserUnlock(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserVerify(_message.Message): + __slots__ = ("user_id",) + USER_ID_FIELD_NUMBER: _ClassVar[int] + user_id: str + def __init__(self, user_id: _Optional[str] = ...) -> None: ... + +class UserLoginFailure(_message.Message): + __slots__ = ("failure_reason", "method") + FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + failure_reason: FailureReason + method: LoginMethod + def __init__(self, failure_reason: _Optional[_Union[FailureReason, str]] = ..., method: _Optional[_Union[LoginMethod, str]] = ...) -> None: ... + +class UserLoginSuccess(_message.Message): + __slots__ = ("is_admin", "method", "mfa_type", "user_type") + IS_ADMIN_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + MFA_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + is_admin: bool + method: LoginMethod + mfa_type: MfaType + user_type: UserType + def __init__(self, is_admin: _Optional[bool] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserLogoff(_message.Message): + __slots__ = ("logoff_type",) + LOGOFF_TYPE_FIELD_NUMBER: _ClassVar[int] + logoff_type: LogoffType + def __init__(self, logoff_type: _Optional[_Union[LogoffType, str]] = ...) -> None: ... + +class ZzzCustomEvent(_message.Message): + __slots__ = ("custom",) + CUSTOM_FIELD_NUMBER: _ClassVar[int] + custom: _struct_pb2.Value + def __init__(self, custom: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class CMKOnboarding(_message.Message): + __slots__ = ("system_id", "cmk_id") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id: str + def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKOffboarding(_message.Message): + __slots__ = ("system_id", "cmk_id") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id: str + def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKSwitch(_message.Message): + __slots__ = ("system_id", "cmk_id_old", "cmk_id_new") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_OLD_FIELD_NUMBER: _ClassVar[int] + CMK_ID_NEW_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id_old: str + cmk_id_new: str + def __init__(self, system_id: _Optional[str] = ..., cmk_id_old: _Optional[str] = ..., cmk_id_new: _Optional[str] = ...) -> None: ... + +class CMKTenantModification(_message.Message): + __slots__ = ("system_id", "cmk_id", "cmk_action") + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ACTION_FIELD_NUMBER: _ClassVar[int] + system_id: str + cmk_id: str + cmk_action: CMKAction + def __init__(self, system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ..., cmk_action: _Optional[_Union[CMKAction, str]] = ...) -> None: ... + +class CMKCreate(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDelete(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRestore(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDisable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKEnable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRotate(_message.Message): + __slots__ = ("cmk_id",) + CMK_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + def __init__(self, cmk_id: _Optional[str] = ...) -> None: ... + +class KeyCreate(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDelete(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRestore(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyPurge(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRotate(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyEnable(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDisable(_message.Message): + __slots__ = ("key_type", "key_id", "system_id", "cmk_id") + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKUnavailable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKAvailable(_message.Message): + __slots__ = ("cmk_id", "kms_system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDetach(_message.Message): + __slots__ = ("cmk_id", "kms_system_id", "system_id") + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + cmk_id: str + kms_system_id: str + system_id: str + def __init__(self, cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ..., system_id: _Optional[str] = ...) -> None: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/__init__.py new file mode 100644 index 0000000..e69de29 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 new file mode 100644 index 0000000..c507436 --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.py @@ -0,0 +1,464 @@ +# -*- coding: utf-8 -*- +# Generated by the protocol buffer compiler. DO NOT EDIT! +# NO CHECKED-IN PROTOBUF GENCODE +# source: sap/auditlog/auditevent/v2/auditevent.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, + '', + 'sap/auditlog/auditevent/v2/auditevent.proto' +) +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + + +from buf.validate import validate_pb2 as buf_dot_validate_dot_validate__pb2 +from google.protobuf import struct_pb2 as google_dot_protobuf_dot_struct__pb2 +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') + +_globals = globals() +_builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) +_builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'sap.auditlog.auditevent.v2.auditevent_pb2', _globals) +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None + _globals['DESCRIPTOR']._serialized_options = b'Z\033sap.com/auditlog/auditevent' + _globals['_COMMON_APPCONTEXTENTRY']._loaded_options = None + _globals['_COMMON_APPCONTEXTENTRY']._serialized_options = b'8\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['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPADD'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\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['privilege']._loaded_options = None + _globals['_AUTHNPRIVILEGETOGROUPDELETE'].fields_by_name['privilege']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNPRIVILEGETOROLEDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNPRIVILEGETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPADD'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['role']._loaded_options = None + _globals['_AUTHNROLETOGROUPDELETE'].fields_by_name['role']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNROLETOUSERADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNROLETOUSERDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPADD'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['user']._loaded_options = None + _globals['_AUTHNUSERTOGROUPDELETE'].fields_by_name['user']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['_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['_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['_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['property_name']._loaded_options = None + _globals['_DATAMODELCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\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_id']._loaded_options = None + _globals['_DATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['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['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_id']._loaded_options = None + _globals['_DATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None + _globals['_DATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None + _globals['_DATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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['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_id']._loaded_options = None + _globals['_DATAEXPORT'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['channel_id']._serialized_options = b'\272H\004r\002\020\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_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['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_id']._loaded_options = None + _globals['_DPPDATAACCESS'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['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['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_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['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_id']._loaded_options = None + _globals['_DPPDATACREATE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['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_id']._loaded_options = None + _globals['_DPPDATADELETE'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['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_id']._loaded_options = None + _globals['_DPPDATAMODIFICATION'].fields_by_name['object_id']._serialized_options = b'\272H\004r\002\020\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['_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['property_name']._loaded_options = None + _globals['_JOBCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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['property_name']._loaded_options = None + _globals['_JOBSTATUSCHANGE'].fields_by_name['property_name']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['tenant_id']._loaded_options = None + _globals['_TENANTMODIFICATION'].fields_by_name['tenant_id']._serialized_options = b'\272H\004r\002\020\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['_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['_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['_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['_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['_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['user_id']._loaded_options = None + _globals['_USERDATAMODIFICATION'].fields_by_name['user_id']._serialized_options = b'\272H\004r\002\020\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['_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_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['context']._loaded_options = None + _globals['_USERIMPERSONATIONSTART'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\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_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['context']._loaded_options = None + _globals['_USERIMPERSONATIONFINISH'].fields_by_name['context']._serialized_options = b'\272H\004r\002\020\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['_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['_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 +# @@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 new file mode 100644 index 0000000..1e2322a --- /dev/null +++ b/src/sap_cloud_sdk/core/auditlog_ng/gen/sap/auditlog/auditevent/v2/auditevent_pb2.pyi @@ -0,0 +1,1319 @@ +import datetime + +from buf.validate import validate_pb2 as _validate_pb2 +from google.protobuf import struct_pb2 as _struct_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 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 CredentialType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CREDENTIAL_TYPE_UNSPECIFIED: _ClassVar[CredentialType] + CREDENTIAL_TYPE_X509_CERTIFICATE: _ClassVar[CredentialType] + CREDENTIAL_TYPE_KEY: _ClassVar[CredentialType] + CREDENTIAL_TYPE_SECRET: _ClassVar[CredentialType] + +class FailureReason(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + FAILURE_REASON_UNSPECIFIED: _ClassVar[FailureReason] + FAILURE_REASON_PASSWORD: _ClassVar[FailureReason] + FAILURE_REASON_MFA_FAILED: _ClassVar[FailureReason] + FAILURE_REASON_USER_NOT_FOUND: _ClassVar[FailureReason] + FAILURE_REASON_USER_LOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_BLOCKED: _ClassVar[FailureReason] + FAILURE_REASON_USER_UNVERIFIED: _ClassVar[FailureReason] + FAILURE_REASON_USER_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_USER_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_INSECURE_CONNECTION: _ClassVar[FailureReason] + FAILURE_REASON_LOGIN_METHOD_DISABLED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_TOKEN_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_SESSION_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_EXPIRED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_REVOKED: _ClassVar[FailureReason] + FAILURE_REASON_CERTIFICATE_INVALID: _ClassVar[FailureReason] + FAILURE_REASON_GEOBLOCK: _ClassVar[FailureReason] + FAILURE_REASON_MFA_REQUESTED: _ClassVar[FailureReason] + FAILURE_REASON_CRED_REQUESTED: _ClassVar[FailureReason] + +class LoginMethod(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGIN_METHOD_UNSPECIFIED: _ClassVar[LoginMethod] + LOGIN_METHOD_OPEN_ID_CONNECT: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML: _ClassVar[LoginMethod] + LOGIN_METHOD_SAML2: _ClassVar[LoginMethod] + LOGIN_METHOD_EXTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_SPNEGO: _ClassVar[LoginMethod] + LOGIN_METHOD_PASSWORD: _ClassVar[LoginMethod] + LOGIN_METHOD_RFC_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_SNC: _ClassVar[LoginMethod] + LOGIN_METHOD_LOGON_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_USER_SWITCH: _ClassVar[LoginMethod] + LOGIN_METHOD_X509_CERTIFICATE: _ClassVar[LoginMethod] + LOGIN_METHOD_APC_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_INTERNAL: _ClassVar[LoginMethod] + LOGIN_METHOD_OAUTH2: _ClassVar[LoginMethod] + LOGIN_METHOD_REENTRANCE_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_HTTP_SESSION: _ClassVar[LoginMethod] + LOGIN_METHOD_ASSERTION_TICKET: _ClassVar[LoginMethod] + LOGIN_METHOD_REMCOOKIE: _ClassVar[LoginMethod] + LOGIN_METHOD_BIOMETRIC: _ClassVar[LoginMethod] + LOGIN_METHOD_PASSCODE: _ClassVar[LoginMethod] + LOGIN_METHOD_MOBSSO: _ClassVar[LoginMethod] + LOGIN_METHOD_EMAIL_TOKEN: _ClassVar[LoginMethod] + LOGIN_METHOD_BEARER_TOKEN: _ClassVar[LoginMethod] + +class LogoffType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + LOGOFF_TYPE_UNSPECIFIED: _ClassVar[LogoffType] + LOGOFF_TYPE_REGULAR: _ClassVar[LogoffType] + LOGOFF_TYPE_FORCED: _ClassVar[LogoffType] + +class MaliciousBehavior(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MALICIOUS_BEHAVIOR_UNSPECIFIED: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: _ClassVar[MaliciousBehavior] + MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: _ClassVar[MaliciousBehavior] + +class MfaType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + MFA_TYPE_UNSPECIFIED: _ClassVar[MfaType] + MFA_TYPE_NONE: _ClassVar[MfaType] + MFA_TYPE_RSA: _ClassVar[MfaType] + MFA_TYPE_TOTP: _ClassVar[MfaType] + MFA_TYPE_WEB_AUTHN: _ClassVar[MfaType] + MFA_TYPE_SMS: _ClassVar[MfaType] + MFA_TYPE_EMAIL: _ClassVar[MfaType] + +class UserType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + USER_TYPE_UNSPECIFIED: _ClassVar[UserType] + USER_TYPE_BUSINESS_USER: _ClassVar[UserType] + USER_TYPE_TECHNICAL_USER: _ClassVar[UserType] + +class DataExportChannelType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: _ClassVar[DataExportChannelType] + DATA_EXPORT_CHANNEL_TYPE_PRINTER: _ClassVar[DataExportChannelType] + +class EventCategoryCode(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_IAM: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_CFG: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_DPP: _ClassVar[EventCategoryCode] + EVENT_CATEGORY_CODE_RAL: _ClassVar[EventCategoryCode] + +class CMKAction(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + CMK_ACTION_UNSPECIFIED: _ClassVar[CMKAction] + CMK_ACTION_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_BLOCK: _ClassVar[CMKAction] + CMK_ACTION_SHUTDOWN: _ClassVar[CMKAction] + CMK_ACTION_CSEKFALLBACK: _ClassVar[CMKAction] + CMK_ACTION_RESTORE: _ClassVar[CMKAction] + CMK_ACTION_KMS_ONBOARD: _ClassVar[CMKAction] + CMK_ACTION_KMS_OFFBOARD: _ClassVar[CMKAction] + +class KeyType(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + KEY_TYPE_UNSPECIFIED: _ClassVar[KeyType] + KEY_TYPE_SYSTEM: _ClassVar[KeyType] + KEY_TYPE_SERVICE: _ClassVar[KeyType] + KEY_TYPE_DATA: _ClassVar[KeyType] + KEY_TYPE_KEK: _ClassVar[KeyType] + +class VirusChannel(int, metaclass=_enum_type_wrapper.EnumTypeWrapper): + __slots__ = () + VIRUS_CHANNEL_UNSPECIFIED: _ClassVar[VirusChannel] + VIRUS_CHANNEL_UPLOAD: _ClassVar[VirusChannel] + VIRUS_CHANNEL_SCAN: _ClassVar[VirusChannel] + +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] +CREDENTIAL_TYPE_UNSPECIFIED: CredentialType +CREDENTIAL_TYPE_X509_CERTIFICATE: CredentialType +CREDENTIAL_TYPE_KEY: CredentialType +CREDENTIAL_TYPE_SECRET: CredentialType +FAILURE_REASON_UNSPECIFIED: FailureReason +FAILURE_REASON_PASSWORD: FailureReason +FAILURE_REASON_MFA_FAILED: FailureReason +FAILURE_REASON_USER_NOT_FOUND: FailureReason +FAILURE_REASON_USER_LOCKED: FailureReason +FAILURE_REASON_USER_BLOCKED: FailureReason +FAILURE_REASON_USER_UNVERIFIED: FailureReason +FAILURE_REASON_USER_EXPIRED: FailureReason +FAILURE_REASON_USER_INVALID: FailureReason +FAILURE_REASON_INSECURE_CONNECTION: FailureReason +FAILURE_REASON_LOGIN_METHOD_DISABLED: FailureReason +FAILURE_REASON_TOKEN_EXPIRED: FailureReason +FAILURE_REASON_TOKEN_REVOKED: FailureReason +FAILURE_REASON_TOKEN_INVALID: FailureReason +FAILURE_REASON_SESSION_EXPIRED: FailureReason +FAILURE_REASON_SESSION_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_EXPIRED: FailureReason +FAILURE_REASON_CERTIFICATE_REVOKED: FailureReason +FAILURE_REASON_CERTIFICATE_INVALID: FailureReason +FAILURE_REASON_GEOBLOCK: FailureReason +FAILURE_REASON_MFA_REQUESTED: FailureReason +FAILURE_REASON_CRED_REQUESTED: FailureReason +LOGIN_METHOD_UNSPECIFIED: LoginMethod +LOGIN_METHOD_OPEN_ID_CONNECT: LoginMethod +LOGIN_METHOD_SAML: LoginMethod +LOGIN_METHOD_SAML2: LoginMethod +LOGIN_METHOD_EXTERNAL: LoginMethod +LOGIN_METHOD_SPNEGO: LoginMethod +LOGIN_METHOD_PASSWORD: LoginMethod +LOGIN_METHOD_RFC_TICKET: LoginMethod +LOGIN_METHOD_SNC: LoginMethod +LOGIN_METHOD_LOGON_TICKET: LoginMethod +LOGIN_METHOD_USER_SWITCH: LoginMethod +LOGIN_METHOD_X509_CERTIFICATE: LoginMethod +LOGIN_METHOD_APC_SESSION: LoginMethod +LOGIN_METHOD_INTERNAL: LoginMethod +LOGIN_METHOD_OAUTH2: LoginMethod +LOGIN_METHOD_REENTRANCE_TICKET: LoginMethod +LOGIN_METHOD_HTTP_SESSION: LoginMethod +LOGIN_METHOD_ASSERTION_TICKET: LoginMethod +LOGIN_METHOD_REMCOOKIE: LoginMethod +LOGIN_METHOD_BIOMETRIC: LoginMethod +LOGIN_METHOD_PASSCODE: LoginMethod +LOGIN_METHOD_MOBSSO: LoginMethod +LOGIN_METHOD_EMAIL_TOKEN: LoginMethod +LOGIN_METHOD_BEARER_TOKEN: LoginMethod +LOGOFF_TYPE_UNSPECIFIED: LogoffType +LOGOFF_TYPE_REGULAR: LogoffType +LOGOFF_TYPE_FORCED: LogoffType +MALICIOUS_BEHAVIOR_UNSPECIFIED: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_NOT_FOUND: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_SEEN: MaliciousBehavior +MALICIOUS_BEHAVIOR_PARAMETER_VALUE_MODIFIED: MaliciousBehavior +MFA_TYPE_UNSPECIFIED: MfaType +MFA_TYPE_NONE: MfaType +MFA_TYPE_RSA: MfaType +MFA_TYPE_TOTP: MfaType +MFA_TYPE_WEB_AUTHN: MfaType +MFA_TYPE_SMS: MfaType +MFA_TYPE_EMAIL: MfaType +USER_TYPE_UNSPECIFIED: UserType +USER_TYPE_BUSINESS_USER: UserType +USER_TYPE_TECHNICAL_USER: UserType +DATA_EXPORT_CHANNEL_TYPE_UNSPECIFIED: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_DOWNLOAD: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_API_ACCESS: DataExportChannelType +DATA_EXPORT_CHANNEL_TYPE_PRINTER: DataExportChannelType +EVENT_CATEGORY_CODE_SEC_UNSPECIFIED: EventCategoryCode +EVENT_CATEGORY_CODE_IAM: EventCategoryCode +EVENT_CATEGORY_CODE_CFG: EventCategoryCode +EVENT_CATEGORY_CODE_DPP: EventCategoryCode +EVENT_CATEGORY_CODE_RAL: EventCategoryCode +CMK_ACTION_UNSPECIFIED: CMKAction +CMK_ACTION_ONBOARD: CMKAction +CMK_ACTION_BLOCK: CMKAction +CMK_ACTION_SHUTDOWN: CMKAction +CMK_ACTION_CSEKFALLBACK: CMKAction +CMK_ACTION_RESTORE: CMKAction +CMK_ACTION_KMS_ONBOARD: CMKAction +CMK_ACTION_KMS_OFFBOARD: CMKAction +KEY_TYPE_UNSPECIFIED: KeyType +KEY_TYPE_SYSTEM: KeyType +KEY_TYPE_SERVICE: KeyType +KEY_TYPE_DATA: KeyType +KEY_TYPE_KEK: KeyType +VIRUS_CHANNEL_UNSPECIFIED: VirusChannel +VIRUS_CHANNEL_UPLOAD: VirusChannel +VIRUS_CHANNEL_SCAN: VirusChannel +LOGIN_PROTOCOL_UNSPECIFIED: LoginProtocol +LOGIN_PROTOCOL_SAML2: LoginProtocol +LOGIN_PROTOCOL_OIDC: LoginProtocol +LOGIN_PROTOCOL_HTTP: LoginProtocol + +class Common(_message.Message): + __slots__ = ("timestamp", "source_ip", "user_impersonated_id", "user_initiator_id", "app_id", "tenant_id", "user_session_context_id", "app_context") + class AppContextEntry(_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: ... + TIMESTAMP_FIELD_NUMBER: _ClassVar[int] + SOURCE_IP_FIELD_NUMBER: _ClassVar[int] + USER_IMPERSONATED_ID_FIELD_NUMBER: _ClassVar[int] + USER_INITIATOR_ID_FIELD_NUMBER: _ClassVar[int] + APP_ID_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + USER_SESSION_CONTEXT_ID_FIELD_NUMBER: _ClassVar[int] + APP_CONTEXT_FIELD_NUMBER: _ClassVar[int] + timestamp: _timestamp_pb2.Timestamp + source_ip: _containers.RepeatedScalarFieldContainer[str] + user_impersonated_id: str + user_initiator_id: str + app_id: str + 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: ... + +class AuditlogClear(_message.Message): + __slots__ = ("common", "number_of_events") + COMMON_FIELD_NUMBER: _ClassVar[int] + NUMBER_OF_EVENTS_FIELD_NUMBER: _ClassVar[int] + common: Common + number_of_events: int + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., number_of_events: _Optional[int] = ...) -> None: ... + +class AuditlogDisable(_message.Message): + __slots__ = ("common",) + COMMON_FIELD_NUMBER: _ClassVar[int] + common: Common + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... + +class AuditlogEnable(_message.Message): + __slots__ = ("common",) + COMMON_FIELD_NUMBER: _ClassVar[int] + common: Common + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... + +class AuthnPrivilegeToGroupAdd(_message.Message): + __slots__ = ("common", "group", "privilege", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToGroupDelete(_message.Message): + __slots__ = ("common", "group", "privilege", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + privilege: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., privilege: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleAdd(_message.Message): + __slots__ = ("common", "privilege", "role", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToRoleDelete(_message.Message): + __slots__ = ("common", "privilege", "role", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + role: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., role: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class AuthnPrivilegeToUserAdd(_message.Message): + __slots__ = ("common", "privilege", "user", "object_type", "object_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + user: str + object_type: str + object_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnPrivilegeToUserDelete(_message.Message): + __slots__ = ("common", "privilege", "user", "object_type", "object_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + PRIVILEGE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + privilege: str + user: str + object_type: str + object_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., privilege: _Optional[str] = ..., user: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnRoleToGroupAdd(_message.Message): + __slots__ = ("common", "group", "role") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + role: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToGroupDelete(_message.Message): + __slots__ = ("common", "group", "role") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + role: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., role: _Optional[str] = ...) -> None: ... + +class AuthnRoleToUserAdd(_message.Message): + __slots__ = ("common", "role", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + role: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., role: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnRoleToUserDelete(_message.Message): + __slots__ = ("common", "role", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + ROLE_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + role: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., role: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnUserToGroupAdd(_message.Message): + __slots__ = ("common", "group", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class AuthnUserToGroupDelete(_message.Message): + __slots__ = ("common", "group", "user", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + GROUP_FIELD_NUMBER: _ClassVar[int] + USER_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + group: str + user: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., group: _Optional[str] = ..., user: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class ConfigurationAdd(_message.Message): + __slots__ = ("common", "value", "property_name", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationChange(_message.Message): + __slots__ = ("common", "new_value", "old_value", "property_name", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class ConfigurationDelete(_message.Message): + __slots__ = ("common", "value", "property_name", "object_type", "object_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + value: _struct_pb2.Value + property_name: str + object_type: str + object_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ...) -> None: ... + +class CredentialCreate(_message.Message): + __slots__ = ("common", "credential_id", "credential_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialDelete(_message.Message): + __slots__ = ("common", "credential_id", "credential_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ...) -> None: ... + +class CredentialExpiration(_message.Message): + __slots__ = ("common", "credential_id", "credential_type", "expiration_date") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + EXPIRATION_DATE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + expiration_date: _timestamp_pb2.Timestamp + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., expiration_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class CredentialRevokation(_message.Message): + __slots__ = ("common", "credential_id", "credential_type", "revokation_date") + COMMON_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_ID_FIELD_NUMBER: _ClassVar[int] + CREDENTIAL_TYPE_FIELD_NUMBER: _ClassVar[int] + REVOKATION_DATE_FIELD_NUMBER: _ClassVar[int] + common: Common + credential_id: str + credential_type: CredentialType + revokation_date: _timestamp_pb2.Timestamp + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., credential_id: _Optional[str] = ..., credential_type: _Optional[_Union[CredentialType, str]] = ..., revokation_date: _Optional[_Union[datetime.datetime, _timestamp_pb2.Timestamp, _Mapping]] = ...) -> None: ... + +class DataModelChange(_message.Message): + __slots__ = ("common", "model_id", "new_value", "old_value", "property_name") + COMMON_FIELD_NUMBER: _ClassVar[int] + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + common: Common + model_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class DataModelCreate(_message.Message): + __slots__ = ("common", "model_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + model_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ...) -> None: ... + +class DataModelDelete(_message.Message): + __slots__ = ("common", "model_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + MODEL_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + model_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., model_id: _Optional[str] = ...) -> None: ... + +class DataAccess(_message.Message): + __slots__ = ("common", "channel_type", "channel_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + channel_type: str + channel_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DataCreate(_message.Message): + __slots__ = ("common", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataDelete(_message.Message): + __slots__ = ("common", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataModification(_message.Message): + __slots__ = ("common", "object_type", "object_id", "attribute", "new_value", "old_value") + COMMON_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DataExport(_message.Message): + __slots__ = ("common", "channel_type", "channel_id", "object_type", "object_id", "destination_uri") + COMMON_FIELD_NUMBER: _ClassVar[int] + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + DESTINATION_URI_FIELD_NUMBER: _ClassVar[int] + common: Common + channel_type: DataExportChannelType + channel_id: str + object_type: str + object_id: str + destination_uri: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[_Union[DataExportChannelType, str]] = ..., channel_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., destination_uri: _Optional[str] = ...) -> None: ... + +class DppDataAccess(_message.Message): + __slots__ = ("common", "channel_type", "channel_id", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value", "attachment_type", "attachment_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CHANNEL_TYPE_FIELD_NUMBER: _ClassVar[int] + CHANNEL_ID_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_TYPE_FIELD_NUMBER: _ClassVar[int] + ATTACHMENT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + channel_type: str + channel_id: str + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + attachment_type: str + attachment_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., channel_type: _Optional[str] = ..., channel_id: _Optional[str] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., attachment_type: _Optional[str] = ..., attachment_id: _Optional[str] = ...) -> None: ... + +class DppDataCreate(_message.Message): + __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataDelete(_message.Message): + __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "value") + COMMON_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class DppDataModification(_message.Message): + __slots__ = ("common", "data_subject_type", "data_subject_id", "object_type", "object_id", "attribute", "new_value", "old_value") + COMMON_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + DATA_SUBJECT_ID_FIELD_NUMBER: _ClassVar[int] + OBJECT_TYPE_FIELD_NUMBER: _ClassVar[int] + OBJECT_ID_FIELD_NUMBER: _ClassVar[int] + ATTRIBUTE_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + common: Common + data_subject_type: str + data_subject_id: str + object_type: str + object_id: str + attribute: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., data_subject_type: _Optional[str] = ..., data_subject_id: _Optional[str] = ..., object_type: _Optional[str] = ..., object_id: _Optional[str] = ..., attribute: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class JobChange(_message.Message): + __slots__ = ("common", "job_id", "new_value", "old_value", "property_name") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class JobCreate(_message.Message): + __slots__ = ("common", "job_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ...) -> None: ... + +class JobDelete(_message.Message): + __slots__ = ("common", "job_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ...) -> None: ... + +class JobStatusChange(_message.Message): + __slots__ = ("common", "job_id", "new_value", "old_value", "property_name") + COMMON_FIELD_NUMBER: _ClassVar[int] + JOB_ID_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + common: Common + job_id: str + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., job_id: _Optional[str] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ...) -> None: ... + +class MaliciousRequestDetected(_message.Message): + __slots__ = ("common", "parameter", "expected_value", "received_value", "behavior") + COMMON_FIELD_NUMBER: _ClassVar[int] + PARAMETER_FIELD_NUMBER: _ClassVar[int] + EXPECTED_VALUE_FIELD_NUMBER: _ClassVar[int] + RECEIVED_VALUE_FIELD_NUMBER: _ClassVar[int] + BEHAVIOR_FIELD_NUMBER: _ClassVar[int] + common: Common + parameter: str + expected_value: str + received_value: str + behavior: MaliciousBehavior + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., parameter: _Optional[str] = ..., expected_value: _Optional[str] = ..., received_value: _Optional[str] = ..., behavior: _Optional[_Union[MaliciousBehavior, str]] = ...) -> None: ... + +class PasswordChange(_message.Message): + __slots__ = ("common", "user_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... + +class PasswordExpiration(_message.Message): + __slots__ = ("common", "user_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... + +class PasswordReset(_message.Message): + __slots__ = ("common", "user_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ...) -> None: ... + +class TenantModification(_message.Message): + __slots__ = ("common", "new_value", "old_value", "property_name", "tenant_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + tenant_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOffboarding(_message.Message): + __slots__ = ("common", "tenant_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + tenant_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class TenantOnboarding(_message.Message): + __slots__ = ("common", "tenant_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + TENANT_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + tenant_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., tenant_id: _Optional[str] = ...) -> None: ... + +class UnauthenticatedRequest(_message.Message): + __slots__ = ("common",) + COMMON_FIELD_NUMBER: _ClassVar[int] + common: Common + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ...) -> None: ... + +class UnauthorizedRequest(_message.Message): + __slots__ = ("common", "unauthorized_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + UNAUTHORIZED_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + unauthorized_type: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., unauthorized_type: _Optional[str] = ...) -> None: ... + +class UserActivate(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserBlock(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserCreate(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserDataModification(_message.Message): + __slots__ = ("common", "new_value", "old_value", "property_name", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + NEW_VALUE_FIELD_NUMBER: _ClassVar[int] + OLD_VALUE_FIELD_NUMBER: _ClassVar[int] + PROPERTY_NAME_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + new_value: _struct_pb2.Value + old_value: _struct_pb2.Value + property_name: str + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., new_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., old_value: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ..., property_name: _Optional[str] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserDelete(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserImpersonationStart(_message.Message): + __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + common: Common + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + 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] = ...) -> None: ... + +class UserImpersonationFinish(_message.Message): + __slots__ = ("common", "user_initiator_id", "user_initiator_type", "user_impersonated_id", "user_impersonated_type", "context") + 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] + common: Common + user_initiator_id: str + user_initiator_type: UserType + user_impersonated_id: str + user_impersonated_type: UserType + context: str + 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] = ...) -> None: ... + +class UserLock(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserUnlock(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserVerify(_message.Message): + __slots__ = ("common", "user_id", "user_type") + COMMON_FIELD_NUMBER: _ClassVar[int] + USER_ID_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + common: Common + user_id: str + user_type: UserType + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., user_id: _Optional[str] = ..., user_type: _Optional[_Union[UserType, str]] = ...) -> None: ... + +class UserLoginFailure(_message.Message): + __slots__ = ("common", "failure_reason", "method", "is_admin", "mfa_type", "user_type", "login_protocol") + COMMON_FIELD_NUMBER: _ClassVar[int] + FAILURE_REASON_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + IS_ADMIN_FIELD_NUMBER: _ClassVar[int] + MFA_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + common: Common + failure_reason: FailureReason + method: LoginMethod + is_admin: bool + mfa_type: MfaType + user_type: UserType + login_protocol: LoginProtocol + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., failure_reason: _Optional[_Union[FailureReason, str]] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., is_admin: _Optional[bool] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... + +class UserLoginSuccess(_message.Message): + __slots__ = ("common", "is_admin", "method", "mfa_type", "user_type", "login_protocol") + COMMON_FIELD_NUMBER: _ClassVar[int] + IS_ADMIN_FIELD_NUMBER: _ClassVar[int] + METHOD_FIELD_NUMBER: _ClassVar[int] + MFA_TYPE_FIELD_NUMBER: _ClassVar[int] + USER_TYPE_FIELD_NUMBER: _ClassVar[int] + LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + common: Common + is_admin: bool + method: LoginMethod + mfa_type: MfaType + user_type: UserType + login_protocol: LoginProtocol + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., is_admin: _Optional[bool] = ..., method: _Optional[_Union[LoginMethod, str]] = ..., mfa_type: _Optional[_Union[MfaType, str]] = ..., user_type: _Optional[_Union[UserType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... + +class UserLogoff(_message.Message): + __slots__ = ("common", "logoff_type", "login_protocol") + COMMON_FIELD_NUMBER: _ClassVar[int] + LOGOFF_TYPE_FIELD_NUMBER: _ClassVar[int] + LOGIN_PROTOCOL_FIELD_NUMBER: _ClassVar[int] + common: Common + logoff_type: LogoffType + login_protocol: LoginProtocol + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., logoff_type: _Optional[_Union[LogoffType, str]] = ..., login_protocol: _Optional[_Union[LoginProtocol, str]] = ...) -> None: ... + +class ZzzCustomEvent(_message.Message): + __slots__ = ("common", "custom") + COMMON_FIELD_NUMBER: _ClassVar[int] + CUSTOM_FIELD_NUMBER: _ClassVar[int] + common: Common + custom: _struct_pb2.Value + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., custom: _Optional[_Union[_struct_pb2.Value, _Mapping]] = ...) -> None: ... + +class CMKOnboarding(_message.Message): + __slots__ = ("common", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKOffboarding(_message.Message): + __slots__ = ("common", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKSwitch(_message.Message): + __slots__ = ("common", "system_id", "cmk_id_old", "cmk_id_new") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_OLD_FIELD_NUMBER: _ClassVar[int] + CMK_ID_NEW_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id_old: str + cmk_id_new: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id_old: _Optional[str] = ..., cmk_id_new: _Optional[str] = ...) -> None: ... + +class CMKTenantModification(_message.Message): + __slots__ = ("common", "system_id", "cmk_id", "cmk_action") + COMMON_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ACTION_FIELD_NUMBER: _ClassVar[int] + common: Common + system_id: str + cmk_id: str + cmk_action: CMKAction + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ..., cmk_action: _Optional[_Union[CMKAction, str]] = ...) -> None: ... + +class CMKCreate(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDelete(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRestore(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDisable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKEnable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKRotate(_message.Message): + __slots__ = ("common", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyCreate(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDelete(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRestore(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyPurge(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyRotate(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyEnable(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyDisable(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeySuspend(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class KeyOnboardKeyChain(_message.Message): + __slots__ = ("common", "key_type", "key_id", "system_id", "cmk_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + KEY_TYPE_FIELD_NUMBER: _ClassVar[int] + KEY_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + key_type: KeyType + key_id: str + system_id: str + cmk_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., key_type: _Optional[_Union[KeyType, str]] = ..., key_id: _Optional[str] = ..., system_id: _Optional[str] = ..., cmk_id: _Optional[str] = ...) -> None: ... + +class CMKDrop(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKSuspend(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class VirusFinding(_message.Message): + __slots__ = ("common", "virus_name", "file_name", "virus_channel") + COMMON_FIELD_NUMBER: _ClassVar[int] + VIRUS_NAME_FIELD_NUMBER: _ClassVar[int] + FILE_NAME_FIELD_NUMBER: _ClassVar[int] + VIRUS_CHANNEL_FIELD_NUMBER: _ClassVar[int] + common: Common + virus_name: str + file_name: str + virus_channel: VirusChannel + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., virus_name: _Optional[str] = ..., file_name: _Optional[str] = ..., virus_channel: _Optional[_Union[VirusChannel, str]] = ...) -> None: ... + +class CMKUnavailable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKAvailable(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + kms_system_id: str + def __init__(self, common: _Optional[_Union[Common, _Mapping]] = ..., cmk_id: _Optional[str] = ..., kms_system_id: _Optional[str] = ...) -> None: ... + +class CMKDetach(_message.Message): + __slots__ = ("common", "cmk_id", "kms_system_id", "system_id") + COMMON_FIELD_NUMBER: _ClassVar[int] + CMK_ID_FIELD_NUMBER: _ClassVar[int] + KMS_SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + SYSTEM_ID_FIELD_NUMBER: _ClassVar[int] + common: Common + cmk_id: str + 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: ... diff --git a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md index b972b10..f45470d 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md +++ b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md @@ -103,7 +103,7 @@ client = create_client( ) ``` -> ⚠️ **Important:** `deployment_id` and `namespace` are validated at construction time. +> ⚠️ **Important:** `deployment_id` and `namespace` are validated at construction time. > Invalid values (e.g. containing spaces) will raise a `ValueError`. ### Step 3: Build an Audit Event From 8aa2b18ae5c54e388a618b4f870b614461bd3ccc Mon Sep 17 00:00:00 2001 From: simeongelovski <166386217+simeongelovski@users.noreply.github.com> Date: Wed, 8 Apr 2026 19:03:18 +0300 Subject: [PATCH 07/20] Update pyproject.toml Co-authored-by: Jean Scherf --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 748a87e..b7fa81a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -69,7 +69,9 @@ exclude = [ "build", "dist", "venv", - "tests/" + "tests/", + "src/sap_cloud_sdk/core/auditlog_ng/gen", + "src/buf" ] # Same as Black. From 06b0bd8da459c1ae12b54ee15944b206319adc76 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:13:42 +0300 Subject: [PATCH 08/20] Review fixes --- src/sap_cloud_sdk/core/auditlog_ng/__init__.py | 8 ++++++-- src/sap_cloud_sdk/core/auditlog_ng/user-guide.md | 4 ++-- src/sap_cloud_sdk/core/telemetry/module.py | 1 + src/sap_cloud_sdk/core/telemetry/operation.py | 1 + 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py index af6605c..ef4b4d1 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py @@ -36,9 +36,13 @@ ValidationError, ) -from sap_cloud_sdk.core.telemetry import Module - +from sap_cloud_sdk.core.telemetry import ( + Module, + Operation, + record_metrics +) +@record_metrics(Module.AUDITLOG_NG, Operation.AUDITLOG_CREATE_CLIENT) def create_client( *, config: Optional[AuditLogNGConfig] = None, diff --git a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md index f45470d..5672c3b 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md +++ b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md @@ -1,12 +1,12 @@ # Using the `auditlog_ng` Client in an Agent -This guide explains how to integrate the SAP Audit Log NG OTLP client [`client.py`](client.py) into a Python-based agent. +This guide explains how to integrate the SAP Audit Log NG OTLP client into a Python-based agent. --- ## Overview -The [`client.py`](client.py) client sends audit log events as OpenTelemetry (OTLP) LogRecords over gRPC to the SAP Audit Log Service. It supports: +The Auditlog NG client sends audit log events as OpenTelemetry (OTLP) LogRecords over gRPC to the SAP Audit Log Service. It supports: - **mTLS** (mutual TLS with client certificates) - **Insecure** mode (local testing / no-auth) diff --git a/src/sap_cloud_sdk/core/telemetry/module.py b/src/sap_cloud_sdk/core/telemetry/module.py index b7d592b..53d3d00 100644 --- a/src/sap_cloud_sdk/core/telemetry/module.py +++ b/src/sap_cloud_sdk/core/telemetry/module.py @@ -8,6 +8,7 @@ class Module(str, Enum): AICORE = "aicore" AUDITLOG = "auditlog" + AUDITLOG_NG = "auditlog_ng" DESTINATION = "destination" OBJECTSTORE = "objectstore" diff --git a/src/sap_cloud_sdk/core/telemetry/operation.py b/src/sap_cloud_sdk/core/telemetry/operation.py index f640953..29252fb 100644 --- a/src/sap_cloud_sdk/core/telemetry/operation.py +++ b/src/sap_cloud_sdk/core/telemetry/operation.py @@ -9,6 +9,7 @@ class Operation(str, Enum): # Audit Log Operations AUDITLOG_LOG = "log" AUDITLOG_LOG_BATCH = "log_batch" + AUDITLOG_CREATE_CLIENT = "create_client" # Destination Operations DESTINATION_GET_INSTANCE_DESTINATION = "get_instance_destination" From 692e29cadd241f51f4e9102f36a9622d60851076 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:15:50 +0300 Subject: [PATCH 09/20] Review fixes --- src/sap_cloud_sdk/core/auditlog_ng/user-guide.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md index 5672c3b..a0ef42f 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md +++ b/src/sap_cloud_sdk/core/auditlog_ng/user-guide.md @@ -1,7 +1,8 @@ # Using the `auditlog_ng` Client in an Agent -This guide explains how to integrate the SAP Audit Log NG OTLP client into a Python-based agent. - +This module provides an OTLP/gRPC client for sending structured audit log events + to the SAP Audit Log Service (v3/NG). It supports mTLS, insecure mode for local + testing, and both binary protobuf and JSON serialization formats. --- ## Overview From ab1a919330ec6c70fe37b08c3fc43f49fe388011 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:18:15 +0300 Subject: [PATCH 10/20] Fix imports --- tests/core/unit/auditlog_ng/unit/test_config.py | 2 +- tests/core/unit/auditlog_ng/unit/test_exceptions.py | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/tests/core/unit/auditlog_ng/unit/test_config.py b/tests/core/unit/auditlog_ng/unit/test_config.py index 703ea43..a6e5c9d 100644 --- a/tests/core/unit/auditlog_ng/unit/test_config.py +++ b/tests/core/unit/auditlog_ng/unit/test_config.py @@ -5,7 +5,7 @@ from sap_cloud_sdk.core.auditlog_ng.config import ( AuditLogNGConfig, SCHEMA_URL, - validate_source_arg, + _validate_source_arg, ) diff --git a/tests/core/unit/auditlog_ng/unit/test_exceptions.py b/tests/core/unit/auditlog_ng/unit/test_exceptions.py index 82220d3..f3e55a9 100644 --- a/tests/core/unit/auditlog_ng/unit/test_exceptions.py +++ b/tests/core/unit/auditlog_ng/unit/test_exceptions.py @@ -5,8 +5,7 @@ from sap_cloud_sdk.core.auditlog_ng.exceptions import ( AuditLogNGError, ClientCreationError, - TransportError, - ValidationError, + ValidationError ) From 7782615aaa873d06c1a8a6504925fe7abf4a674b Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:19:21 +0300 Subject: [PATCH 11/20] Fix tests --- tests/core/unit/auditlog_ng/unit/test_exceptions.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/tests/core/unit/auditlog_ng/unit/test_exceptions.py b/tests/core/unit/auditlog_ng/unit/test_exceptions.py index f3e55a9..c1ca111 100644 --- a/tests/core/unit/auditlog_ng/unit/test_exceptions.py +++ b/tests/core/unit/auditlog_ng/unit/test_exceptions.py @@ -13,7 +13,6 @@ class TestExceptions: def test_exception_hierarchy(self): assert issubclass(ClientCreationError, AuditLogNGError) - assert issubclass(TransportError, AuditLogNGError) assert issubclass(ValidationError, AuditLogNGError) assert issubclass(AuditLogNGError, Exception) @@ -27,11 +26,6 @@ def test_client_creation_error(self): assert str(error) == "Failed to create client" assert isinstance(error, AuditLogNGError) - def test_transport_error(self): - error = TransportError("Transport failed") - assert str(error) == "Transport failed" - assert isinstance(error, AuditLogNGError) - def test_validation_error(self): error = ValidationError("Validation failed") assert str(error) == "Validation failed" From 4a1a8e9ff7cb4637cab335d24650d20fd2a77b44 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:21:57 +0300 Subject: [PATCH 12/20] Fix tests --- tests/core/unit/auditlog_ng/unit/test_config.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/tests/core/unit/auditlog_ng/unit/test_config.py b/tests/core/unit/auditlog_ng/unit/test_config.py index a6e5c9d..24b464c 100644 --- a/tests/core/unit/auditlog_ng/unit/test_config.py +++ b/tests/core/unit/auditlog_ng/unit/test_config.py @@ -12,25 +12,25 @@ class TestValidateSourceArg: def test_valid_alphanumeric(self): - validate_source_arg("abc123", "test") + _validate_source_arg("abc123", "test") def test_valid_with_dots_dashes_underscores(self): - validate_source_arg("my-deployment_v1.0", "test") + _validate_source_arg("my-deployment_v1.0", "test") def test_valid_with_slashes_and_tildes(self): - validate_source_arg("sap/als~v2", "test") + _validate_source_arg("sap/als~v2", "test") def test_rejects_spaces(self): with pytest.raises(ValueError, match="test"): - validate_source_arg("bad value", "test") + _validate_source_arg("bad value", "test") def test_rejects_empty_string(self): with pytest.raises(ValueError, match="test"): - validate_source_arg("", "test") + _validate_source_arg("", "test") def test_rejects_special_characters(self): with pytest.raises(ValueError, match="test"): - validate_source_arg("value@#!", "test") + _validate_source_arg("value@#!", "test") class TestAuditLogNGConfig: From 3c89b52e0a60cad3f4143225c6c003cd535bb716 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:25:38 +0300 Subject: [PATCH 13/20] Fix tests --- tests/core/unit/telemetry/test_module.py | 6 +++++- tests/core/unit/telemetry/test_operation.py | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/tests/core/unit/telemetry/test_module.py b/tests/core/unit/telemetry/test_module.py index 5a8077a..8ff03f2 100644 --- a/tests/core/unit/telemetry/test_module.py +++ b/tests/core/unit/telemetry/test_module.py @@ -12,6 +12,7 @@ def test_module_values(self): """Test that Module enum has expected values.""" assert Module.AICORE.value == "aicore" assert Module.AUDITLOG.value == "auditlog" + assert Module.AUDITLOG_NG.value == "auditlog_ng" assert Module.DESTINATION.value == "destination" assert Module.OBJECTSTORE.value == "objectstore" @@ -19,6 +20,7 @@ def test_module_str_representation(self): """Test that Module enum converts to string correctly.""" assert str(Module.AICORE) == "aicore" assert str(Module.AUDITLOG) == "auditlog" + assert str(Module.AUDITLOG_NG) == "auditlog_ng" assert str(Module.DESTINATION) == "destination" assert str(Module.OBJECTSTORE) == "objectstore" @@ -26,6 +28,7 @@ def test_module_is_string_enum(self): """Test that Module enum inherits from str.""" assert isinstance(Module.AICORE, str) assert isinstance(Module.AUDITLOG, str) + assert isinstance(Module.AUDITLOG_NG, str) assert isinstance(Module.DESTINATION, str) def test_module_equality(self): @@ -44,7 +47,7 @@ def test_module_in_collection(self): def test_all_modules_present(self): """Test that all expected modules are present.""" all_modules = list(Module) - assert len(all_modules) == 4 + assert len(all_modules) == 5 assert Module.AICORE in all_modules assert Module.AUDITLOG in all_modules assert Module.DESTINATION in all_modules @@ -55,5 +58,6 @@ def test_module_iteration(self): module_values = [str(m) for m in Module] assert "aicore" in module_values assert "auditlog" in module_values + assert "auditlog_ng" in module_values assert "destination" in module_values assert "objectstore" in module_values diff --git a/tests/core/unit/telemetry/test_operation.py b/tests/core/unit/telemetry/test_operation.py index 9bf9801..f61fba1 100644 --- a/tests/core/unit/telemetry/test_operation.py +++ b/tests/core/unit/telemetry/test_operation.py @@ -12,6 +12,7 @@ def test_auditlog_operations(self): """Test Audit Log operation values.""" assert Operation.AUDITLOG_LOG.value == "log" assert Operation.AUDITLOG_LOG_BATCH.value == "log_batch" + assert Operation.AUDITLOG_CREATE_CLIENT.value == "create_client" def test_destination_operations(self): """Test Destination operation values.""" @@ -105,5 +106,5 @@ def test_operation_iteration(self): def test_operation_count(self): """Test that we have the expected number of operations.""" all_operations = list(Operation) - # 2 auditlog + 8 destination + 7 certificate + 7 fragment + 8 objectstore + 2 aicore = 34 - assert len(all_operations) == 34 + # 3 auditlog + 8 destination + 7 certificate + 7 fragment + 8 objectstore + 2 aicore = 34 + assert len(all_operations) == 35 From 6480135df62b1562089a5e5fc7101f5d75bb4105 Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:28:56 +0300 Subject: [PATCH 14/20] Fix tests --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index b7fa81a..26f7afc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,6 +55,8 @@ source = ["src"] omit = [ "*/tests/*", "*/test_*", + "sap_cloud_sdk/core/auditlog_ng/gen", + "buf" ] skip_empty = true From 29d2ec581c8d2838349ea90e71bbf0873983527b Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:30:35 +0300 Subject: [PATCH 15/20] Fix tests --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 26f7afc..889abd1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,8 +55,8 @@ source = ["src"] omit = [ "*/tests/*", "*/test_*", - "sap_cloud_sdk/core/auditlog_ng/gen", - "buf" + "sap_cloud_sdk/core/auditlog_ng/gen/*", + "buf/*" ] skip_empty = true From d27e2996f6e093ed545f93560ae76565b0763c3a Mon Sep 17 00:00:00 2001 From: I583880 Date: Wed, 8 Apr 2026 19:32:21 +0300 Subject: [PATCH 16/20] Fix tests --- pyproject.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 889abd1..ce38c15 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,8 +55,8 @@ source = ["src"] omit = [ "*/tests/*", "*/test_*", - "sap_cloud_sdk/core/auditlog_ng/gen/*", - "buf/*" + "*/sap_cloud_sdk/core/auditlog_ng/gen/*", + "*/buf/*" ] skip_empty = true From 469e0f890075b8c5b82076c398f7e5c56ec033f5 Mon Sep 17 00:00:00 2001 From: I583880 Date: Thu, 9 Apr 2026 10:08:10 +0300 Subject: [PATCH 17/20] Fix formating --- src/sap_cloud_sdk/core/auditlog_ng/__init__.py | 10 ++++------ src/sap_cloud_sdk/core/auditlog_ng/client.py | 4 +++- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py index ef4b4d1..0fdfe7b 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/__init__.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/__init__.py @@ -36,11 +36,8 @@ ValidationError, ) -from sap_cloud_sdk.core.telemetry import ( - Module, - Operation, - record_metrics -) +from sap_cloud_sdk.core.telemetry import Module, Operation, record_metrics + @record_metrics(Module.AUDITLOG_NG, Operation.AUDITLOG_CREATE_CLIENT) def create_client( @@ -57,7 +54,7 @@ def create_client( batch: bool = False, compression: bool = True, schema_url: str = SCHEMA_URL, - _telemetry_source: Optional[Module] = None + _telemetry_source: Optional[Module] = None, ) -> AuditClient: """Create an AuditClient for sending audit events over OTLP/gRPC. @@ -65,6 +62,7 @@ def create_client( When ``config`` is provided the remaining keyword arguments are ignored. Args: + _telemetry_source: Internal parameter for telemetry. Not for external use. config: Optional explicit configuration. If provided, all other keyword arguments are ignored. endpoint: OTLP gRPC endpoint (``host:port``). diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py index 18cb241..eea7bfa 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/client.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -58,7 +58,9 @@ class AuditClient: client.close() """ - def __init__(self, config: AuditLogNGConfig, _telemetry_source: Optional[Module] = None) -> None: + def __init__( + self, config: AuditLogNGConfig, _telemetry_source: Optional[Module] = None + ) -> None: """Initialize the audit client from a config object. Args: From 2127ac2286718960604ac98eee33d3ae829ea247 Mon Sep 17 00:00:00 2001 From: I583880 Date: Thu, 9 Apr 2026 11:21:14 +0300 Subject: [PATCH 18/20] Exclude code checks --- pyproject.toml | 9 +++++ .../core/unit/auditlog_ng/unit/test_client.py | 33 ++++++++++++++----- 2 files changed, 34 insertions(+), 8 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index ce38c15..a9cdfdb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -95,5 +95,14 @@ indent-style = "space" skip-magic-trailing-comma = false line-ending = "auto" +[tool.ty] + [tool.ty.environment] python-version = "3.11" + +[tool.ty.src] +include = ["src", "tests"] +exclude = [ + "src/sap_cloud_sdk/core/auditlog_ng/gen", + "src/buf", +] diff --git a/tests/core/unit/auditlog_ng/unit/test_client.py b/tests/core/unit/auditlog_ng/unit/test_client.py index 5402848..b97e60b 100644 --- a/tests/core/unit/auditlog_ng/unit/test_client.py +++ b/tests/core/unit/auditlog_ng/unit/test_client.py @@ -1,21 +1,38 @@ """Tests for AuditClient.""" +from __future__ import annotations import json +from typing import TypedDict +from unittest.mock import MagicMock, Mock, patch + import pytest -from unittest.mock import patch, MagicMock, Mock from sap_cloud_sdk.core.auditlog_ng.client import AuditClient from sap_cloud_sdk.core.auditlog_ng.config import AuditLogNGConfig, SCHEMA_URL from sap_cloud_sdk.core.auditlog_ng.exceptions import ValidationError -def _make_config(**overrides): - defaults = dict( - endpoint="localhost:4317", - deployment_id="deployment-123", - namespace="namespace-123", - insecure=True, - ) +class ConfigKwargs(TypedDict, total=False): + endpoint: str + deployment_id: str + namespace: str + insecure: bool + service_name: str + cert_file: str | None + key_file: str | None + ca_file: str | None + batch: bool + compression: bool + schema_url: str + + +def _make_config(**overrides: ConfigKwargs) -> AuditLogNGConfig: + defaults: ConfigKwargs = { + "endpoint": "localhost:4317", + "deployment_id": "deployment-123", + "namespace": "namespace-123", + "insecure": True, + } defaults.update(overrides) return AuditLogNGConfig(**defaults) From a4fa77cf1fd6c26f2405ece121484cadcf020437 Mon Sep 17 00:00:00 2001 From: I583880 Date: Thu, 9 Apr 2026 16:19:17 +0300 Subject: [PATCH 19/20] Fix code check --- src/sap_cloud_sdk/core/auditlog_ng/client.py | 12 +++++++++--- tests/core/unit/auditlog_ng/unit/test_client.py | 4 ++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py index eea7bfa..c46aadc 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/client.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -149,14 +149,20 @@ def send( except ProtoValidationError as e: raise ValidationError(f"Audit event validation failed: {e}") from e - tenant_id = event.common.tenant_id + common = getattr(event, "common", None) + tenant_id = getattr(common, "tenant_id", None) + if not isinstance(tenant_id, str): + raise ValueError("Event must contain common.tenant_id as a string") _validate_source_arg(tenant_id, "tenant_id") event_id = str(uuid.uuid4()) - # Determine event type from message descriptor if not provided if event_type is None: - event_type = event.DESCRIPTOR.name + descriptor = getattr(event, "DESCRIPTOR", None) + descriptor_name = getattr(descriptor, "name", None) + if not isinstance(descriptor_name, str) or not descriptor_name: + raise ValueError("Could not determine event type from message descriptor") + event_type = descriptor_name event_type = f"sap.als.AuditEvent.{event_type}.v2" diff --git a/tests/core/unit/auditlog_ng/unit/test_client.py b/tests/core/unit/auditlog_ng/unit/test_client.py index b97e60b..34f04ab 100644 --- a/tests/core/unit/auditlog_ng/unit/test_client.py +++ b/tests/core/unit/auditlog_ng/unit/test_client.py @@ -2,7 +2,7 @@ from __future__ import annotations import json -from typing import TypedDict +from typing import TypedDict, Unpack from unittest.mock import MagicMock, Mock, patch import pytest @@ -26,7 +26,7 @@ class ConfigKwargs(TypedDict, total=False): schema_url: str -def _make_config(**overrides: ConfigKwargs) -> AuditLogNGConfig: +def _make_config(**overrides: Unpack[ConfigKwargs]) -> AuditLogNGConfig: defaults: ConfigKwargs = { "endpoint": "localhost:4317", "deployment_id": "deployment-123", From d85b6245f149f27607155d9737be04e715727765 Mon Sep 17 00:00:00 2001 From: I583880 Date: Thu, 9 Apr 2026 16:20:56 +0300 Subject: [PATCH 20/20] Fix linter --- src/sap_cloud_sdk/core/auditlog_ng/client.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/sap_cloud_sdk/core/auditlog_ng/client.py b/src/sap_cloud_sdk/core/auditlog_ng/client.py index c46aadc..1f2f6aa 100644 --- a/src/sap_cloud_sdk/core/auditlog_ng/client.py +++ b/src/sap_cloud_sdk/core/auditlog_ng/client.py @@ -161,7 +161,9 @@ def send( descriptor = getattr(event, "DESCRIPTOR", None) descriptor_name = getattr(descriptor, "name", None) if not isinstance(descriptor_name, str) or not descriptor_name: - raise ValueError("Could not determine event type from message descriptor") + raise ValueError( + "Could not determine event type from message descriptor" + ) event_type = descriptor_name event_type = f"sap.als.AuditEvent.{event_type}.v2"