syntax = "proto3"; package audit; option go_package = "github.com/pomerium/pomerium/pkg/grpc/audit"; import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; message Record { string organization_id = 1; string id = 2; google.protobuf.Timestamp time = 3; AuthenticationInfo authentication_info = 4; string source = 5; string destination = 6; oneof request { HTTPRequest http_request = 7; } oneof response { HTTPResponse http_response = 8; } Status status = 9; map metadata = 10; } message AuthenticationInfo { string session_id = 1; string idp_provider = 2; string idp_subject = 3; } message HTTPRequest { string id = 1; string method = 2; map headers = 3; string path = 4; string host = 5; string scheme = 6; string query = 7; string fragment = 8; int64 size = 9; string protocol = 10; string body = 11; } message HTTPResponse { int32 status_code = 1; map headers = 2; string body = 3; } message Status { int32 code = 1; string message = 2; } service Intake { rpc Publish(stream Record) returns (google.protobuf.Empty); }