# Install protovalidate: # python3 -m venv path/to/venv # source path/to/venv/bin/activate # pip3 install -r requirements.txt import protovalidate from audit.v1.audit_event_pb2 import AuditEvent, EventTrigger, RequestDetails from audit.v1.routable_event_pb2 import RoutableAuditEvent, UnencryptedData audit_event = AuditEvent() audit_event.event_name = "XXX" audit_event.event_trigger = EventTrigger.EVENT_REQUEST audit_event.request.endpoint = "XXX" audit_event.request.source_ip_address = "127.0.0.1" audit_event.request.user_agent = "aaa" routable_audit_event = RoutableAuditEvent() routable_audit_event.event_name = "AAA" routable_audit_event.unencrypted_data.data = audit_event.SerializeToString() routable_audit_event.unencrypted_data.protobuf_type = audit_event.DESCRIPTOR.full_name try: protovalidate.validate(audit_event) except protovalidate.ValidationError as e: print("AuditEvent validation errors:") for error in e.errors(): print("field_path: " + error.field_path + ", constraint_id: " + error.constraint_id + ", message: " + error.message) try: protovalidate.validate(routable_audit_event) except protovalidate.ValidationError as e: print("\nRoutableAuditEvent validation errors:") for error in e.errors(): print("field_path: " + error.field_path + ", constraint_id: " + error.constraint_id + ", message: " + error.message) print(audit_event.SerializeToString())