syntax = "proto3";

package livekit;
option go_package = "github.com/livekit/protocol/livekit";
option csharp_namespace = "LiveKit.Proto";
option ruby_package = "LiveKit::Proto";

import "livekit_models.proto";
import "livekit_egress.proto";
import "livekit_ingress.proto";

message WebhookEvent {
  // one of room_started, room_finished, participant_joined, participant_left,
  // track_published, track_unpublished, egress_started, egress_updated, egress_ended, ingress_started, ingress_ended
  string event = 1;

  Room room = 2;

  // set when event is participant_* or track_*
  ParticipantInfo participant = 3;

  // set when event is egress_*
  EgressInfo egress_info = 9;

  // set when event is ingress_*
  IngressInfo ingress_info = 10;

  // set when event is track_*
  TrackInfo track = 8;

  // unique event uuid
  string id = 6;

  // timestamp in seconds
  int64 created_at = 7;
}
