interface intercept-types {
// Plugin context
record context {
auth: option<list<u8>>,
connection: connection-ctx,
event: event-ctx,
}
variant connection-ctx {
websocket(websocket),
}
variant event-ctx {
kafka(kafka-event-ctx),
counter(counter-event-ctx),
}
record counter-event-ctx {
source-id: string,
count: u64,
}
record kafka-event-ctx {
payload: option<list<u8>>,
source-id: string,
topic: string,
timestamp: option<u64>,
partition: u32,
offset: u64,
}
record websocket {
addr: option<string>,
}
variant transformed-payload {
kafka(option<list<u8>>),
counter(u64),
}
variant action {
forward,
discard,
transform(transformed-payload),
}
}