1syntax = "proto3";
2
3package livekit;
4option go_package = "github.com/livekit/protocol/livekit";
5option csharp_namespace = "LiveKit.Proto";
6option ruby_package = "LiveKit::Proto";
7
8import "livekit_egress.proto";
9import "livekit_ingress.proto";
10
11message StartEgressRequest {
12 // request metadata
13 string egress_id = 1;
14 string request_id = 2;
15 string sender_id = 10;
16 int64 sent_at = 4;
17
18 // request
19 oneof request {
20 RoomCompositeEgressRequest room_composite = 5;
21 TrackCompositeEgressRequest track_composite = 6;
22 TrackEgressRequest track = 7;
23 }
24
25 // connection info
26 string room_id = 3;
27 string token = 8;
28 string ws_url = 9;
29}
30
31message EgressRequest {
32 // request metadata
33 string egress_id = 1;
34 string request_id = 2;
35 string sender_id = 5;
36
37 // request
38 oneof request {
39 UpdateStreamRequest update_stream = 3;
40 StopEgressRequest stop = 4;
41 }
42}
43
44message EgressResponse {
45 EgressInfo info = 1;
46 string error = 2;
47 string request_id = 3;
48}
49
50message IngressRequest {
51 // request metadata
52 string ingress_id = 1;
53 string request_id = 2;
54 string sender_id = 3;
55
56 oneof request {
57 UpdateIngressRequest update = 4;
58 DeleteIngressRequest delete = 5;
59 }
60}
61
62// Query an ingress info from an ingress ID or stream key
63message GetIngressInfoRequest {
64 string ingress_id = 1;
65 string stream_key = 2;
66 string request_id = 3;
67 string sender_id = 4;
68 int64 sent_at = 5;
69}
70
71message IngressResponse {
72 IngressInfo info = 1;
73 string error = 2;
74 string request_id = 3;
75}
76
77message GetIngressInfoResponse {
78 IngressInfo info = 1;
79 string token = 2;
80 string ws_url = 3;
81 string error = 4;
82 string request_id = 5;
83}