syntax = "proto3"; package io.jans.lock.audit; option java_multiple_files = true; option java_package = "io.jans.lock.model.audit.grpc"; option java_outer_classname = "AuditProto"; import "google/protobuf/timestamp.proto"; // Health Entry Message message HealthEntry { google.protobuf.Timestamp creation_date = 1; google.protobuf.Timestamp event_time = 2; string service = 3; string node_name = 4; string status = 5; map engine_status = 6; } message HealthRequest { HealthEntry entry = 1; } message BulkHealthRequest { repeated HealthEntry entries = 1; } // Log Entry Message message LogEntry { google.protobuf.Timestamp creation_date = 1; google.protobuf.Timestamp event_time = 2; string service = 3; string node_name = 4; string event_type = 5; string severity_level = 6; string action = 7; string decision_result = 8; string requested_resource = 9; string principal_id = 10; string client_id = 11; string jti = 12; map context_information = 13; } message LogRequest { LogEntry entry = 1; } message BulkLogRequest { repeated LogEntry entries = 1; } // Telemetry Entry Message message TelemetryEntry { google.protobuf.Timestamp creation_date = 1; string service = 2; string node_name = 3; string status = 4; map policy_stats = 5; map error_counters = 6; map operational_stats = 7; int64 interval_secs = 8; } message TelemetryRequest { TelemetryEntry entry = 1; } message BulkTelemetryRequest { repeated TelemetryEntry entries = 1; } // Common Response message AuditResponse { bool success = 1; string message = 2; } // Audit Service service AuditService { rpc ProcessHealth(HealthRequest) returns (AuditResponse); rpc ProcessBulkHealth(BulkHealthRequest) returns (AuditResponse); rpc ProcessLog(LogRequest) returns (AuditResponse); rpc ProcessBulkLog(BulkLogRequest) returns (AuditResponse); rpc ProcessTelemetry(TelemetryRequest) returns (AuditResponse); rpc ProcessBulkTelemetry(BulkTelemetryRequest) returns (AuditResponse); }