@volter/twin-livekit 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/README.md +106 -0
- package/dist/src/cli.d.ts +2 -0
- package/dist/src/cli.js +23 -0
- package/dist/src/egress-service-cli.d.ts +2 -0
- package/dist/src/egress-service-cli.js +101 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.js +53 -0
- package/dist/src/livekit-budget.d.ts +57 -0
- package/dist/src/livekit-budget.js +131 -0
- package/dist/src/livekit-capabilities.d.ts +3 -0
- package/dist/src/livekit-capabilities.js +728 -0
- package/dist/src/livekit-conformance.d.ts +8 -0
- package/dist/src/livekit-conformance.js +13 -0
- package/dist/src/livekit-connector.d.ts +130 -0
- package/dist/src/livekit-connector.js +382 -0
- package/dist/src/livekit-data.d.ts +86 -0
- package/dist/src/livekit-data.js +246 -0
- package/dist/src/livekit-perform-harness.d.ts +5 -0
- package/dist/src/livekit-perform-harness.js +17 -0
- package/dist/src/livekit-server.d.ts +23 -0
- package/dist/src/livekit-server.js +45 -0
- package/dist/src/livekit-service-cli.d.ts +2 -0
- package/dist/src/livekit-service-cli.js +88 -0
- package/dist/src/livekit-token.d.ts +68 -0
- package/dist/src/livekit-token.js +76 -0
- package/dist/src/livekit-twin.d.ts +4 -0
- package/dist/src/livekit-twin.js +1161 -0
- package/dist/src/livekit-types.d.ts +203 -0
- package/dist/src/livekit-types.js +1 -0
- package/dist/src/livekit-webhook.d.ts +26 -0
- package/dist/src/livekit-webhook.js +79 -0
- package/dist/src/redis-service-cli.d.ts +2 -0
- package/dist/src/redis-service-cli.js +35 -0
- package/dist/test-fixtures/livekit-openapi-operations.SOURCE.md +88 -0
- package/dist/test-fixtures/livekit-openapi-operations.json +442 -0
- package/dist/test-fixtures/protobufs/cloud_replay.proto +82 -0
- package/dist/test-fixtures/protobufs/livekit_agent.proto +185 -0
- package/dist/test-fixtures/protobufs/livekit_agent_dispatch.proto +103 -0
- package/dist/test-fixtures/protobufs/livekit_agent_simulation.proto +422 -0
- package/dist/test-fixtures/protobufs/livekit_agent_worker.proto +29 -0
- package/dist/test-fixtures/protobufs/livekit_agentdb.proto +226 -0
- package/dist/test-fixtures/protobufs/livekit_analytics.proto +312 -0
- package/dist/test-fixtures/protobufs/livekit_cloud_agent.proto +376 -0
- package/dist/test-fixtures/protobufs/livekit_connector.proto +41 -0
- package/dist/test-fixtures/protobufs/livekit_connector_twilio.proto +65 -0
- package/dist/test-fixtures/protobufs/livekit_connector_whatsapp.proto +171 -0
- package/dist/test-fixtures/protobufs/livekit_egress.proto +641 -0
- package/dist/test-fixtures/protobufs/livekit_ingress.proto +222 -0
- package/dist/test-fixtures/protobufs/livekit_internal.proto +228 -0
- package/dist/test-fixtures/protobufs/livekit_metrics.proto +103 -0
- package/dist/test-fixtures/protobufs/livekit_models.proto +992 -0
- package/dist/test-fixtures/protobufs/livekit_phone_number.proto +151 -0
- package/dist/test-fixtures/protobufs/livekit_room.proto +312 -0
- package/dist/test-fixtures/protobufs/livekit_rtc.proto +673 -0
- package/dist/test-fixtures/protobufs/livekit_sip.proto +1000 -0
- package/dist/test-fixtures/protobufs/livekit_token_source.proto +49 -0
- package/dist/test-fixtures/protobufs/livekit_webhook.proto +62 -0
- package/package.json +58 -0
- package/src/cli.ts +22 -0
- package/src/egress-service-cli.ts +111 -0
- package/src/index.ts +103 -0
- package/src/livekit-budget.ts +158 -0
- package/src/livekit-capabilities.ts +789 -0
- package/src/livekit-conformance.ts +15 -0
- package/src/livekit-connector.ts +406 -0
- package/src/livekit-data.ts +278 -0
- package/src/livekit-perform-harness.ts +17 -0
- package/src/livekit-server.ts +67 -0
- package/src/livekit-service-cli.ts +93 -0
- package/src/livekit-token.ts +133 -0
- package/src/livekit-twin.ts +1162 -0
- package/src/livekit-types.ts +211 -0
- package/src/livekit-webhook.ts +91 -0
- package/src/redis-service-cli.ts +39 -0
- package/test-fixtures/livekit-openapi-operations.SOURCE.md +88 -0
- package/test-fixtures/livekit-openapi-operations.json +442 -0
- package/test-fixtures/protobufs/cloud_replay.proto +82 -0
- package/test-fixtures/protobufs/livekit_agent.proto +185 -0
- package/test-fixtures/protobufs/livekit_agent_dispatch.proto +103 -0
- package/test-fixtures/protobufs/livekit_agent_simulation.proto +422 -0
- package/test-fixtures/protobufs/livekit_agent_worker.proto +29 -0
- package/test-fixtures/protobufs/livekit_agentdb.proto +226 -0
- package/test-fixtures/protobufs/livekit_analytics.proto +312 -0
- package/test-fixtures/protobufs/livekit_cloud_agent.proto +376 -0
- package/test-fixtures/protobufs/livekit_connector.proto +41 -0
- package/test-fixtures/protobufs/livekit_connector_twilio.proto +65 -0
- package/test-fixtures/protobufs/livekit_connector_whatsapp.proto +171 -0
- package/test-fixtures/protobufs/livekit_egress.proto +641 -0
- package/test-fixtures/protobufs/livekit_ingress.proto +222 -0
- package/test-fixtures/protobufs/livekit_internal.proto +228 -0
- package/test-fixtures/protobufs/livekit_metrics.proto +103 -0
- package/test-fixtures/protobufs/livekit_models.proto +992 -0
- package/test-fixtures/protobufs/livekit_phone_number.proto +151 -0
- package/test-fixtures/protobufs/livekit_room.proto +312 -0
- package/test-fixtures/protobufs/livekit_rtc.proto +673 -0
- package/test-fixtures/protobufs/livekit_sip.proto +1000 -0
- package/test-fixtures/protobufs/livekit_token_source.proto +49 -0
- package/test-fixtures/protobufs/livekit_webhook.proto +62 -0
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
// Copyright 2023 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
import "google/protobuf/timestamp.proto";
|
|
18
|
+
import "logger/options.proto";
|
|
19
|
+
|
|
20
|
+
package livekit;
|
|
21
|
+
option go_package = "github.com/livekit/protocol/livekit";
|
|
22
|
+
option csharp_namespace = "LiveKit.Proto";
|
|
23
|
+
option ruby_package = "LiveKit::Proto";
|
|
24
|
+
|
|
25
|
+
enum AgentSecretKind {
|
|
26
|
+
AGENT_SECRET_KIND_UNKNOWN = 0;
|
|
27
|
+
AGENT_SECRET_KIND_ENVIRONMENT = 1;
|
|
28
|
+
AGENT_SECRET_KIND_FILE = 2;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
enum AgentEventType {
|
|
32
|
+
AGENT_EVENT_TYPE_UNKNOWN = 0;
|
|
33
|
+
AGENT_EVENT_TYPE_APPLICATION_CRASHED = 1;
|
|
34
|
+
AGENT_EVENT_TYPE_RESTARTED_HIGH_DISK_USAGE = 2;
|
|
35
|
+
AGENT_EVENT_TYPE_RESTARTED_HIGH_MEMORY_USAGE = 3;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
message AgentEvent {
|
|
39
|
+
AgentEventType type = 1;
|
|
40
|
+
int32 count = 2;
|
|
41
|
+
google.protobuf.Timestamp timestamp = 3;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
message AgentSecret {
|
|
45
|
+
string name = 1;
|
|
46
|
+
bytes value = 2;
|
|
47
|
+
google.protobuf.Timestamp created_at = 3;
|
|
48
|
+
google.protobuf.Timestamp updated_at = 4;
|
|
49
|
+
AgentSecretKind kind = 5;
|
|
50
|
+
repeated string deployments = 6;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
message CreateAgentRequest {
|
|
54
|
+
string agent_name = 1 [deprecated=true];
|
|
55
|
+
repeated AgentSecret secrets = 2;
|
|
56
|
+
int32 replicas = 3 [deprecated=true];
|
|
57
|
+
int32 max_replicas = 4 [deprecated=true];
|
|
58
|
+
string cpu_req = 5 [deprecated=true];
|
|
59
|
+
repeated string regions = 6;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
message CreateAgentResponse {
|
|
63
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
64
|
+
string agent_name = 2;
|
|
65
|
+
string status = 3;
|
|
66
|
+
string version = 4;
|
|
67
|
+
string presigned_url = 5;
|
|
68
|
+
string tag = 6;
|
|
69
|
+
repeated string server_regions = 7;
|
|
70
|
+
PresignedPostRequest presigned_post_request = 8;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
message CreateAgentV2Request {
|
|
74
|
+
repeated AgentSecret secrets = 1;
|
|
75
|
+
repeated string regions = 2;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
message CreateAgentV2Response {
|
|
79
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
80
|
+
string status = 2;
|
|
81
|
+
repeated string server_regions = 3;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
message PromoteAgentRequest {
|
|
85
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
86
|
+
string src_deployment = 2;
|
|
87
|
+
string dst_deployment = 3;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
message PromoteAgentResponse {
|
|
91
|
+
bool success = 1;
|
|
92
|
+
string message = 2;
|
|
93
|
+
string agent_id = 3 [(logger.name) = "agentID"];
|
|
94
|
+
string src_deployment = 4;
|
|
95
|
+
string dst_deployment = 5;
|
|
96
|
+
string version_tag = 6;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
message PresignedPostRequest {
|
|
100
|
+
string url = 1;
|
|
101
|
+
map<string, string> values = 2;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
message AgentDeployment {
|
|
105
|
+
string region = 1;
|
|
106
|
+
string agent_id = 2 [(logger.name) = "agentID"];
|
|
107
|
+
string status = 3;
|
|
108
|
+
int32 replicas = 4;
|
|
109
|
+
int32 min_replicas = 5;
|
|
110
|
+
int32 max_replicas = 6;
|
|
111
|
+
string cpu_req = 7;
|
|
112
|
+
string cur_cpu = 8;
|
|
113
|
+
string cur_mem = 9;
|
|
114
|
+
string mem_req = 10;
|
|
115
|
+
string mem_limit = 11;
|
|
116
|
+
string cpu_limit = 12;
|
|
117
|
+
string server_region = 13;
|
|
118
|
+
repeated AgentEvent events = 14;
|
|
119
|
+
string deployment = 15;
|
|
120
|
+
string version = 16;
|
|
121
|
+
string agent_name = 17;
|
|
122
|
+
bool deployment_enabled = 18;
|
|
123
|
+
google.protobuf.Timestamp last_scraped_at = 19;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
message AgentInfo {
|
|
127
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
128
|
+
string agent_name = 2;
|
|
129
|
+
string version = 3;
|
|
130
|
+
repeated AgentDeployment agent_deployments = 4;
|
|
131
|
+
repeated AgentSecret secrets = 5;
|
|
132
|
+
google.protobuf.Timestamp deployed_at = 6;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
message ListAgentsRequest {
|
|
136
|
+
string agent_name = 1;
|
|
137
|
+
string agent_id = 2 [(logger.name) = "agentID"];
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
message ListAgentsResponse {
|
|
141
|
+
repeated AgentInfo agents = 1;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
message AgentVersion {
|
|
145
|
+
string version = 1;
|
|
146
|
+
bool current = 2;
|
|
147
|
+
google.protobuf.Timestamp created_at = 3;
|
|
148
|
+
google.protobuf.Timestamp deployed_at = 4;
|
|
149
|
+
map<string, string> attributes = 5;
|
|
150
|
+
string status = 6;
|
|
151
|
+
string owner = 7;
|
|
152
|
+
bool draining = 8;
|
|
153
|
+
bool active = 9;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
message ListAgentVersionsRequest {
|
|
157
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
158
|
+
string agent_name = 2;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
message ListAgentVersionsResponse {
|
|
162
|
+
repeated AgentVersion versions = 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
message UpdateAgentRequest {
|
|
166
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
167
|
+
string agent_name = 2 [deprecated=true];
|
|
168
|
+
int32 replicas = 3 [deprecated=true];
|
|
169
|
+
int32 max_replicas = 4 [deprecated=true];
|
|
170
|
+
string cpu_req = 5 [deprecated=true];
|
|
171
|
+
repeated string regions = 6;
|
|
172
|
+
repeated AgentSecret secrets = 7;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
message UpdateAgentResponse {
|
|
176
|
+
bool success = 1;
|
|
177
|
+
string message = 2;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
message RestartAgentRequest {
|
|
181
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
message RestartAgentResponse {
|
|
185
|
+
bool success = 1;
|
|
186
|
+
string message = 2;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
message DeployAgentRequest {
|
|
190
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
191
|
+
string agent_name = 2 [deprecated=true];
|
|
192
|
+
repeated AgentSecret secrets = 3;
|
|
193
|
+
int32 replicas = 4 [deprecated=true];
|
|
194
|
+
int32 max_replicas = 5 [deprecated=true];
|
|
195
|
+
string cpu_req = 6 [deprecated=true];
|
|
196
|
+
string deployment = 7;
|
|
197
|
+
map<string, string> attributes = 8;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
message DeployAgentResponse {
|
|
201
|
+
bool success = 1;
|
|
202
|
+
string message = 2;
|
|
203
|
+
string agent_id = 3 [(logger.name) = "agentID"];
|
|
204
|
+
string presigned_url = 4 [deprecated=true];
|
|
205
|
+
string tag = 5;
|
|
206
|
+
PresignedPostRequest presigned_post_request = 6;
|
|
207
|
+
string deployment = 7;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
message DeployAgentV2Request {
|
|
211
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
212
|
+
repeated AgentSecret secrets = 2;
|
|
213
|
+
string deployment = 3;
|
|
214
|
+
map<string, string> attributes = 4;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
message DeployAgentV2Response {
|
|
218
|
+
bool success = 1;
|
|
219
|
+
string message = 2;
|
|
220
|
+
string agent_id = 3 [(logger.name) = "agentID"];
|
|
221
|
+
string tag = 4;
|
|
222
|
+
PresignedPostRequest presigned_req = 5;
|
|
223
|
+
string deployment = 6;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
message UpdateAgentSecretsRequest {
|
|
227
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
228
|
+
string agent_name = 2;
|
|
229
|
+
bool overwrite = 3;
|
|
230
|
+
repeated AgentSecret secrets = 4;
|
|
231
|
+
repeated string remove = 5;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
message UpdateAgentSecretsResponse {
|
|
235
|
+
bool success = 1;
|
|
236
|
+
string message = 2;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
message RollbackAgentRequest {
|
|
240
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
241
|
+
string agent_name = 2;
|
|
242
|
+
string version = 3;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
message RollbackAgentResponse {
|
|
246
|
+
bool success = 1;
|
|
247
|
+
string message = 2;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
message DeleteAgentRequest {
|
|
251
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
252
|
+
string agent_name = 2;
|
|
253
|
+
string deployment = 3; // optional
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
message DeleteAgentResponse {
|
|
257
|
+
bool success = 1;
|
|
258
|
+
string message = 2;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
message ListAgentSecretsRequest {
|
|
262
|
+
string agent_id = 1 [(logger.name) = "agentID"];
|
|
263
|
+
string agent_name = 2;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
message ListAgentSecretsResponse {
|
|
267
|
+
repeated AgentSecret secrets = 1;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
message SettingsParam {
|
|
271
|
+
string name = 1;
|
|
272
|
+
string value = 2;
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
message ClientSettingsResponse {
|
|
276
|
+
repeated SettingsParam params = 1;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
message ClientSettingsRequest {
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
message PrivateLink {
|
|
283
|
+
message AWSConfig {
|
|
284
|
+
string endpoint = 1 [deprecated=true]; // Use the generic "endpoint" instead
|
|
285
|
+
};
|
|
286
|
+
|
|
287
|
+
string private_link_id = 1 [(logger.name) = "privateLinkID"];
|
|
288
|
+
string name = 2;
|
|
289
|
+
string region = 4;
|
|
290
|
+
uint32 port = 5;
|
|
291
|
+
string endpoint = 6;
|
|
292
|
+
string connection_endpoint = 7;
|
|
293
|
+
string cloud_region = 8;
|
|
294
|
+
|
|
295
|
+
oneof config {
|
|
296
|
+
AWSConfig aws = 3 [deprecated=true];
|
|
297
|
+
};
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
message PrivateLinkStatus {
|
|
301
|
+
enum Status {
|
|
302
|
+
PRIVATE_LINK_STATUS_UNKNOWN = 0;
|
|
303
|
+
PRIVATE_LINK_STATUS_PROVISIONING = 1;
|
|
304
|
+
PRIVATE_LINK_STATUS_PENDING_APPROVAL = 2;
|
|
305
|
+
PRIVATE_LINK_STATUS_HEALTHY = 3;
|
|
306
|
+
PRIVATE_LINK_STATUS_UNHEALTHY = 4;
|
|
307
|
+
PRIVATE_LINK_STATUS_APPROVED = 5;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
Status status = 1;
|
|
311
|
+
google.protobuf.Timestamp updated_at = 2;
|
|
312
|
+
string reason = 3;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
message CreatePrivateLinkRequest {
|
|
316
|
+
message AWSCreateConfig {
|
|
317
|
+
string endpoint = 1 [deprecated=true];
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
string name = 1;
|
|
321
|
+
string region = 3;
|
|
322
|
+
uint32 port = 4;
|
|
323
|
+
string endpoint = 5;
|
|
324
|
+
optional string cloud_region = 6;
|
|
325
|
+
oneof config {
|
|
326
|
+
AWSCreateConfig aws = 2 [deprecated=true];
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
message CreatePrivateLinkResponse {
|
|
331
|
+
PrivateLink private_link = 1;
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
message DestroyPrivateLinkRequest {
|
|
335
|
+
string private_link_id = 1 [(logger.name) = "privateLinkID"];
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
message DestroyPrivateLinkResponse {
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
message ListPrivateLinksRequest {
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
message ListPrivateLinksResponse {
|
|
345
|
+
repeated PrivateLink items = 1;
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
message GetPrivateLinkStatusRequest {
|
|
349
|
+
string private_link_id = 1 [(logger.name) = "privateLinkID"];
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
message GetPrivateLinkStatusResponse {
|
|
353
|
+
PrivateLinkStatus value = 1;
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
service CloudAgent {
|
|
357
|
+
rpc CreateAgent(CreateAgentRequest) returns (CreateAgentResponse) {}
|
|
358
|
+
rpc CreateAgentV2(CreateAgentV2Request) returns (CreateAgentV2Response) {}
|
|
359
|
+
rpc PromoteAgent(PromoteAgentRequest) returns (PromoteAgentResponse) {}
|
|
360
|
+
rpc ListAgents(ListAgentsRequest) returns (ListAgentsResponse) {}
|
|
361
|
+
rpc ListAgentVersions(ListAgentVersionsRequest) returns (ListAgentVersionsResponse) {}
|
|
362
|
+
rpc ListAgentSecrets(ListAgentSecretsRequest) returns (ListAgentSecretsResponse) {}
|
|
363
|
+
rpc UpdateAgent(UpdateAgentRequest) returns (UpdateAgentResponse) {}
|
|
364
|
+
rpc RestartAgent(RestartAgentRequest) returns (RestartAgentResponse) {}
|
|
365
|
+
rpc DeployAgent(DeployAgentRequest) returns (DeployAgentResponse) {}
|
|
366
|
+
rpc DeployAgentV2(DeployAgentV2Request) returns (DeployAgentV2Response) {}
|
|
367
|
+
rpc UpdateAgentSecrets(UpdateAgentSecretsRequest) returns (UpdateAgentSecretsResponse) {}
|
|
368
|
+
rpc RollbackAgent(RollbackAgentRequest) returns (RollbackAgentResponse) {}
|
|
369
|
+
rpc DeleteAgent(DeleteAgentRequest) returns (DeleteAgentResponse) {}
|
|
370
|
+
rpc GetClientSettings(ClientSettingsRequest) returns (ClientSettingsResponse) {}
|
|
371
|
+
|
|
372
|
+
rpc CreatePrivateLink(CreatePrivateLinkRequest) returns (CreatePrivateLinkResponse) {}
|
|
373
|
+
rpc DestroyPrivateLink(DestroyPrivateLinkRequest) returns (DestroyPrivateLinkResponse) {}
|
|
374
|
+
rpc ListPrivateLinks(ListPrivateLinksRequest) returns (ListPrivateLinksResponse) {}
|
|
375
|
+
rpc GetPrivateLinkStatus(GetPrivateLinkStatusRequest) returns (GetPrivateLinkStatusResponse) {}
|
|
376
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
package livekit;
|
|
18
|
+
option go_package = "github.com/livekit/protocol/livekit";
|
|
19
|
+
option csharp_namespace = "LiveKit.Proto";
|
|
20
|
+
option ruby_package = "LiveKit::Proto";
|
|
21
|
+
|
|
22
|
+
import "livekit_connector_whatsapp.proto";
|
|
23
|
+
import "livekit_connector_twilio.proto";
|
|
24
|
+
|
|
25
|
+
service Connector {
|
|
26
|
+
rpc DialWhatsAppCall(DialWhatsAppCallRequest) returns (DialWhatsAppCallResponse);
|
|
27
|
+
|
|
28
|
+
rpc DisconnectWhatsAppCall(DisconnectWhatsAppCallRequest) returns (DisconnectWhatsAppCallResponse);
|
|
29
|
+
|
|
30
|
+
rpc ConnectWhatsAppCall(ConnectWhatsAppCallRequest) returns (ConnectWhatsAppCallResponse);
|
|
31
|
+
|
|
32
|
+
rpc AcceptWhatsAppCall(AcceptWhatsAppCallRequest) returns (AcceptWhatsAppCallResponse);
|
|
33
|
+
|
|
34
|
+
rpc ConnectTwilioCall(ConnectTwilioCallRequest) returns (ConnectTwilioCallResponse);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
enum ConnectorType {
|
|
38
|
+
Unspecified = 0;
|
|
39
|
+
WhatsApp = 1;
|
|
40
|
+
Twilio = 2;
|
|
41
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
package livekit;
|
|
18
|
+
option go_package = "github.com/livekit/protocol/livekit";
|
|
19
|
+
option csharp_namespace = "LiveKit.Proto";
|
|
20
|
+
option ruby_package = "LiveKit::Proto";
|
|
21
|
+
|
|
22
|
+
import "livekit_agent_dispatch.proto";
|
|
23
|
+
import "logger/options.proto";
|
|
24
|
+
|
|
25
|
+
message ConnectTwilioCallRequest {
|
|
26
|
+
|
|
27
|
+
enum TwilioCallDirection {
|
|
28
|
+
// Call is inbound to LiveKit from Twilio
|
|
29
|
+
TWILIO_CALL_DIRECTION_INBOUND = 0;
|
|
30
|
+
// Call is outbound from LiveKit to Twilio
|
|
31
|
+
TWILIO_CALL_DIRECTION_OUTBOUND = 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// The Direction of the call
|
|
35
|
+
TwilioCallDirection twilio_call_direction = 1;
|
|
36
|
+
// What LiveKit room should this call be connected to
|
|
37
|
+
string room_name = 2;
|
|
38
|
+
// Optional agents to dispatch the call to
|
|
39
|
+
repeated RoomAgentDispatch agents = 3;
|
|
40
|
+
// Optional identity of the participant in LiveKit room
|
|
41
|
+
// This is used for logging purposes, so it is advised to not put PII in this field.
|
|
42
|
+
string participant_identity= 4;
|
|
43
|
+
// Optional name of the participant in LiveKit room
|
|
44
|
+
string participant_name = 5 [
|
|
45
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
46
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
47
|
+
];
|
|
48
|
+
// Optional user-defined metadata. Will be attached to a created Participant in the room.
|
|
49
|
+
string participant_metadata = 6 [
|
|
50
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
51
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
52
|
+
];
|
|
53
|
+
// Optional user-defined attributes. Will be attached to a created Participant in the room.
|
|
54
|
+
map<string, string> participant_attributes = 7 [
|
|
55
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
56
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
57
|
+
];
|
|
58
|
+
// Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
|
|
59
|
+
string destination_country = 8;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
message ConnectTwilioCallResponse {
|
|
63
|
+
// The websocket URL which twilio media stream will connect to
|
|
64
|
+
string connect_url = 1;
|
|
65
|
+
}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
// Copyright 2025 LiveKit, Inc.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
syntax = "proto3";
|
|
16
|
+
|
|
17
|
+
package livekit;
|
|
18
|
+
option go_package = "github.com/livekit/protocol/livekit";
|
|
19
|
+
option csharp_namespace = "LiveKit.Proto";
|
|
20
|
+
option ruby_package = "LiveKit::Proto";
|
|
21
|
+
|
|
22
|
+
import "google/protobuf/duration.proto";
|
|
23
|
+
import "livekit_agent_dispatch.proto";
|
|
24
|
+
import "livekit_rtc.proto";
|
|
25
|
+
import "logger/options.proto";
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
message DialWhatsAppCallRequest {
|
|
29
|
+
// Required - The phone number id of the business that is initiating the call
|
|
30
|
+
string whatsapp_phone_number_id = 1 [(logger.name) = "whatsappPhoneNumberID"];
|
|
31
|
+
// Required - The number of the user that is supossed to receive the call
|
|
32
|
+
string whatsapp_to_phone_number = 2 [(logger.sensitivity) = SENSITIVITY_PII];
|
|
33
|
+
// Required - The API key of the business that is initiating the call
|
|
34
|
+
string whatsapp_api_key = 3 [(logger.sensitivity) = SENSITIVITY_SECRET];
|
|
35
|
+
// Required - WhatsApp Cloud API version, eg: 23.0, 24.0, etc.
|
|
36
|
+
string whatsapp_cloud_api_version = 12;
|
|
37
|
+
// Optional - An arbitrary string you can pass in that is useful for tracking and logging purposes.
|
|
38
|
+
string whatsapp_biz_opaque_callback_data = 4;
|
|
39
|
+
// Optional - What LiveKit room should this participant be connected too
|
|
40
|
+
string room_name = 5;
|
|
41
|
+
// Optional - Agents to dispatch the call to
|
|
42
|
+
repeated RoomAgentDispatch agents = 6;
|
|
43
|
+
// Optional - Identity of the participant in LiveKit room
|
|
44
|
+
// This is used for logging purposes, so it is advised to not put PII in this field.
|
|
45
|
+
string participant_identity= 7;
|
|
46
|
+
// Optional - Name of the participant in LiveKit room
|
|
47
|
+
string participant_name = 8 [
|
|
48
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
49
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
50
|
+
];
|
|
51
|
+
// Optional - User-defined metadata. Will be attached to a created Participant in the room.
|
|
52
|
+
string participant_metadata = 9 [
|
|
53
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
54
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
55
|
+
];
|
|
56
|
+
// Optional - User-defined attributes. Will be attached to a created Participant in the room.
|
|
57
|
+
map<string, string> participant_attributes = 10 [
|
|
58
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
59
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
60
|
+
];
|
|
61
|
+
// Optional - Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
|
|
62
|
+
string destination_country = 11;
|
|
63
|
+
// Max time for the callee to answer the call.
|
|
64
|
+
google.protobuf.Duration ringing_timeout = 13;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
message DialWhatsAppCallResponse {
|
|
68
|
+
// Call ID sent by Meta
|
|
69
|
+
string whatsapp_call_id = 1 [(logger.name) = "whatsappCallID"];
|
|
70
|
+
// The name of the LiveKit room that the call is connected to
|
|
71
|
+
string room_name = 2;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
message DisconnectWhatsAppCallRequest {
|
|
75
|
+
enum DisconnectReason {
|
|
76
|
+
// The call is being disconnected by the business
|
|
77
|
+
BUSINESS_INITIATED = 0;
|
|
78
|
+
// The call is disconnected by the user.
|
|
79
|
+
// This can be tracked as part of call terminate webhook
|
|
80
|
+
// https://developers.facebook.com/documentation/business-messaging/whatsapp/calling/user-initiated-calls#call-terminate-webhook
|
|
81
|
+
// Note that this webhook will also be sent when the call is disconnected by the business.
|
|
82
|
+
// Calling the API twice in such cases will result in an error.
|
|
83
|
+
USER_INITIATED = 1;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
// Required - Call ID sent by Meta
|
|
87
|
+
string whatsapp_call_id = 1 [(logger.name) = "whatsappCallID"];
|
|
88
|
+
// The API key of the whatsapp business.
|
|
89
|
+
// Required if the DisconnectReason is BUSINESS_INITIATED.
|
|
90
|
+
// Optional for USER_INITIATED as no API call to WhatsApp is needed.
|
|
91
|
+
string whatsapp_api_key = 2 [(logger.sensitivity) = SENSITIVITY_SECRET];
|
|
92
|
+
// The reason for disconnecting the call
|
|
93
|
+
DisconnectReason disconnect_reason = 3;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
message DisconnectWhatsAppCallResponse {
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
message ConnectWhatsAppCallRequest {
|
|
100
|
+
// Required - Call ID sent by Meta
|
|
101
|
+
string whatsapp_call_id = 1 [(logger.name) = "whatsappCallID"];
|
|
102
|
+
// Required - The call connect webhook comes with SDP from Meta
|
|
103
|
+
// It is the answer SDP for a business initiated call
|
|
104
|
+
SessionDescription sdp = 2;
|
|
105
|
+
// Wait for the answer for the call before returning.
|
|
106
|
+
bool wait_until_answered = 3;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
message ConnectWhatsAppCallResponse {
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
message AcceptWhatsAppCallRequest {
|
|
113
|
+
// Required - The phone number id of the business that is conencting the call
|
|
114
|
+
string whatsapp_phone_number_id = 1 [(logger.name) = "whatsappPhoneNumberID"];
|
|
115
|
+
// Required - The API key of the business that is connecting the call
|
|
116
|
+
string whatsapp_api_key = 2 [(logger.sensitivity) = SENSITIVITY_SECRET];
|
|
117
|
+
// Required - WhatsApp Cloud API version, eg: 23.0, 24.0, etc.
|
|
118
|
+
string whatsapp_cloud_api_version = 13;
|
|
119
|
+
// Required - Call ID sent by Meta
|
|
120
|
+
string whatsapp_call_id = 3 [(logger.name) = "whatsappCallID"];
|
|
121
|
+
// Optional - An arbitrary string you can pass in that is useful for tracking and logging purposes.
|
|
122
|
+
string whatsapp_biz_opaque_callback_data = 4;
|
|
123
|
+
// Required - The call accept webhook comes with SDP from Meta
|
|
124
|
+
// It is the for a user initiated call
|
|
125
|
+
SessionDescription sdp = 5;
|
|
126
|
+
// Optional - What LiveKit room should this participant be connected too
|
|
127
|
+
string room_name = 6;
|
|
128
|
+
// Optional - Agents to dispatch the call to
|
|
129
|
+
repeated RoomAgentDispatch agents = 7;
|
|
130
|
+
// Optional - Identity of the participant in LiveKit room
|
|
131
|
+
// This is used for logging purposes, so it is advised to not put PII in this field.
|
|
132
|
+
string participant_identity= 8;
|
|
133
|
+
// Optional - Name of the participant in LiveKit room
|
|
134
|
+
string participant_name = 9 [
|
|
135
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
136
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
137
|
+
];
|
|
138
|
+
// Optional - User-defined metadata. Will be attached to a created Participant in the room.
|
|
139
|
+
string participant_metadata = 10 [
|
|
140
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
141
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
142
|
+
];
|
|
143
|
+
// Optional - User-defined attributes. Will be attached to a created Participant in the room.
|
|
144
|
+
map<string, string> participant_attributes = 11 [
|
|
145
|
+
(logger.sensitivity) = SENSITIVITY_PII,
|
|
146
|
+
(logger.redact_format) = "<redacted ({{ .Size }} bytes)>"
|
|
147
|
+
];
|
|
148
|
+
// Optional - Country where the call terminates as ISO 3166-1 alpha-2 (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). This will be used by the livekit infrastructure to route calls.
|
|
149
|
+
string destination_country = 12;
|
|
150
|
+
// Max time for the callee to answer the call.
|
|
151
|
+
google.protobuf.Duration ringing_timeout = 14;
|
|
152
|
+
// Wait for the answer for the call before returning.
|
|
153
|
+
bool wait_until_answered = 15;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
message AcceptWhatsAppCallResponse {
|
|
157
|
+
// The name of the LiveKit room that the call is connected to
|
|
158
|
+
string room_name = 1;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
message WhatsAppCall {
|
|
162
|
+
// list of call ids that are currently active
|
|
163
|
+
string whatsapp_call_id = 1 [(logger.name) = "whatsappCallID"];
|
|
164
|
+
// Direction of the call
|
|
165
|
+
WhatsAppCallDirection direction = 2;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
enum WhatsAppCallDirection {
|
|
169
|
+
WHATSAPP_CALL_DIRECTION_INBOUND = 0;
|
|
170
|
+
WHATSAPP_CALL_DIRECTION_OUTBOUND = 2;
|
|
171
|
+
}
|