@edge-base/server 0.2.6 → 0.2.7
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/admin-build/_app/immutable/chunks/{BN_-k-Ck.js → BDYewzou.js} +1 -1
- package/admin-build/_app/immutable/chunks/{qBm6xof8.js → BEM1BeVF.js} +1 -1
- package/admin-build/_app/immutable/chunks/{Ff90owjx.js → BYyykAbh.js} +1 -1
- package/admin-build/_app/immutable/chunks/{SQVAC3Cv.js → BaUG2TJ-.js} +1 -1
- package/admin-build/_app/immutable/chunks/{BvoGcDFV.js → BfpUQYr3.js} +1 -1
- package/admin-build/_app/immutable/chunks/{CLHN9MVr.js → BhCO1Fpt.js} +1 -1
- package/admin-build/_app/immutable/chunks/{DemDWbs-.js → CIOC1v_q.js} +3 -3
- package/admin-build/_app/immutable/chunks/{CrwlCAM0.js → CvczjTXx.js} +1 -1
- package/admin-build/_app/immutable/chunks/{DQVP4KC-.js → D1u3u7xu.js} +1 -1
- package/admin-build/_app/immutable/chunks/{LL3ulaxa.js → DaXO-sFP.js} +1 -1
- package/admin-build/_app/immutable/chunks/{CbfX3ELZ.js → DnpbvAPi.js} +1 -1
- package/admin-build/_app/immutable/chunks/{DdvsFblq.js → Dz9cUCuv.js} +1 -1
- package/admin-build/_app/immutable/chunks/{DmDTovpg.js → Tea2dBJ8.js} +1 -1
- package/admin-build/_app/immutable/chunks/{CR37B8DX.js → ejoEf2I5.js} +1 -1
- package/admin-build/_app/immutable/chunks/{CCUxCptE.js → iEyeblJR.js} +1 -1
- package/admin-build/_app/immutable/chunks/{Q3vAxeY-.js → qKdzaeX3.js} +1 -1
- package/admin-build/_app/immutable/entry/{app.CP83Ni80.js → app.DoUaxnew.js} +2 -2
- package/admin-build/_app/immutable/entry/start.MmZh8oBH.js +1 -0
- package/admin-build/_app/immutable/nodes/{0.DiRq7puO.js → 0.Dsxi8s7i.js} +1 -1
- package/admin-build/_app/immutable/nodes/{1.BFeyKLGT.js → 1.Cp2l-hol.js} +1 -1
- package/admin-build/_app/immutable/nodes/{10.zcee7hJx.js → 10.4oY6m8Nz.js} +1 -1
- package/admin-build/_app/immutable/nodes/{11.BW7wLs2Y.js → 11.DfcozD4J.js} +1 -1
- package/admin-build/_app/immutable/nodes/{12.CxJRlYSd.js → 12.uJgZdCIA.js} +1 -1
- package/admin-build/_app/immutable/nodes/{13.pp0F_5hn.js → 13.CaN1kRev.js} +1 -1
- package/admin-build/_app/immutable/nodes/{14.t3AfGiGo.js → 14.DQ5xIi3s.js} +1 -1
- package/admin-build/_app/immutable/nodes/{15.B3agc7NX.js → 15.B_EkebTJ.js} +1 -1
- package/admin-build/_app/immutable/nodes/{16.C4uG2-i8.js → 16.Tko1ZX8-.js} +1 -1
- package/admin-build/_app/immutable/nodes/{17.CwGxi1Bn.js → 17.BCmWMJX9.js} +1 -1
- package/admin-build/_app/immutable/nodes/{18.CrQyN_gU.js → 18.hmGhl1O2.js} +1 -1
- package/admin-build/_app/immutable/nodes/{19.NEPUOXl7.js → 19.D-1infOo.js} +1 -1
- package/admin-build/_app/immutable/nodes/{20.DGHO8ipr.js → 20.CY4KKcBL.js} +1 -1
- package/admin-build/_app/immutable/nodes/21.B9lbNUQr.js +1 -0
- package/admin-build/_app/immutable/nodes/{22.Dri5It7a.js → 22.14Vd7bnt.js} +1 -1
- package/admin-build/_app/immutable/nodes/{23.BPQP_Zte.js → 23.Be6jK77o.js} +1 -1
- package/admin-build/_app/immutable/nodes/{24.D580FdSS.js → 24.CSTFkr6R.js} +1 -1
- package/admin-build/_app/immutable/nodes/{25.BMNPOZwF.js → 25.DRTg8fHc.js} +1 -1
- package/admin-build/_app/immutable/nodes/{26.XcpEcbiz.js → 26.DKt-9lwQ.js} +1 -1
- package/admin-build/_app/immutable/nodes/{27.C1zHHcYv.js → 27.D5caPu0F.js} +1 -1
- package/admin-build/_app/immutable/nodes/{28.CuKzzrY8.js → 28.hJhlnlyY.js} +1 -1
- package/admin-build/_app/immutable/nodes/{29.nLpBMXnM.js → 29.CDYBzFyT.js} +1 -1
- package/admin-build/_app/immutable/nodes/{3.5G_aseoL.js → 3.DMyKwkGn.js} +1 -1
- package/admin-build/_app/immutable/nodes/{30.CQC4nLoU.js → 30.BaHNeEmc.js} +1 -1
- package/admin-build/_app/immutable/nodes/{31.Bet8kxOK.js → 31.C6PV5L-2.js} +1 -1
- package/admin-build/_app/immutable/nodes/{4.nmJDYJpC.js → 4.9E118Ftm.js} +1 -1
- package/admin-build/_app/immutable/nodes/{5.CnbYLG4E.js → 5.D8guAl3v.js} +1 -1
- package/admin-build/_app/immutable/nodes/{6.KA01b-3y.js → 6.D1u__DtT.js} +1 -1
- package/admin-build/_app/immutable/nodes/{7.CP9fkn1L.js → 7.DWXHnRFf.js} +1 -1
- package/admin-build/_app/immutable/nodes/{8.BTzDb---.js → 8.Dojd8krc.js} +1 -1
- package/admin-build/_app/immutable/nodes/{9.DkNJg_J6.js → 9.CLtrr0K_.js} +1 -1
- package/admin-build/_app/version.json +1 -1
- package/admin-build/index.html +7 -7
- package/openapi.json +6 -1941
- package/package.json +3 -3
- package/src/__tests__/openapi-coverage.test.ts +0 -6
- package/src/__tests__/room-auth-state-loss.test.ts +6 -0
- package/src/__tests__/room-handler-context.test.ts +0 -31
- package/src/__tests__/room-rate-limit-scopes.test.ts +1 -5
- package/src/__tests__/room-runtime-routing.test.ts +1 -111
- package/src/__tests__/smoke-skip-report.test.ts +1 -1
- package/src/durable-objects/room-runtime-base.ts +241 -17
- package/src/durable-objects/rooms-do.ts +190 -1345
- package/src/lib/openapi.ts +1 -4
- package/src/routes/room.ts +0 -285
- package/src/types.ts +1 -14
- package/admin-build/_app/immutable/entry/start.DY6YakU0.js +0 -1
- package/admin-build/_app/immutable/nodes/21.UVKBDvp4.js +0 -1
- package/src/__tests__/cloudflare-realtime.test.ts +0 -113
- package/src/lib/cloudflare-realtime.ts +0 -251
package/openapi.json
CHANGED
|
@@ -137,8 +137,8 @@
|
|
|
137
137
|
}
|
|
138
138
|
}
|
|
139
139
|
},
|
|
140
|
-
"
|
|
141
|
-
"description": "
|
|
140
|
+
"403": {
|
|
141
|
+
"description": "Forbidden",
|
|
142
142
|
"content": {
|
|
143
143
|
"application/json": {
|
|
144
144
|
"schema": {
|
|
@@ -163,8 +163,8 @@
|
|
|
163
163
|
}
|
|
164
164
|
}
|
|
165
165
|
},
|
|
166
|
-
"
|
|
167
|
-
"description": "
|
|
166
|
+
"409": {
|
|
167
|
+
"description": "Email already registered",
|
|
168
168
|
"content": {
|
|
169
169
|
"application/json": {
|
|
170
170
|
"schema": {
|
|
@@ -189,8 +189,8 @@
|
|
|
189
189
|
}
|
|
190
190
|
}
|
|
191
191
|
},
|
|
192
|
-
"
|
|
193
|
-
"description": "
|
|
192
|
+
"429": {
|
|
193
|
+
"description": "Too many requests",
|
|
194
194
|
"content": {
|
|
195
195
|
"application/json": {
|
|
196
196
|
"schema": {
|
|
@@ -13215,1941 +13215,6 @@
|
|
|
13215
13215
|
}
|
|
13216
13216
|
}
|
|
13217
13217
|
},
|
|
13218
|
-
"/api/room/media/realtime/session": {
|
|
13219
|
-
"get": {
|
|
13220
|
-
"operationId": "getRoomRealtimeSession",
|
|
13221
|
-
"tags": [
|
|
13222
|
-
"client"
|
|
13223
|
-
],
|
|
13224
|
-
"summary": "Get the active room realtime media session",
|
|
13225
|
-
"description": "Returns the provider session currently bound to the authenticated room member.",
|
|
13226
|
-
"parameters": [
|
|
13227
|
-
{
|
|
13228
|
-
"schema": {
|
|
13229
|
-
"type": "string",
|
|
13230
|
-
"description": "Room namespace"
|
|
13231
|
-
},
|
|
13232
|
-
"required": true,
|
|
13233
|
-
"description": "Room namespace",
|
|
13234
|
-
"name": "namespace",
|
|
13235
|
-
"in": "query"
|
|
13236
|
-
},
|
|
13237
|
-
{
|
|
13238
|
-
"schema": {
|
|
13239
|
-
"type": "string",
|
|
13240
|
-
"description": "Room ID"
|
|
13241
|
-
},
|
|
13242
|
-
"required": true,
|
|
13243
|
-
"description": "Room ID",
|
|
13244
|
-
"name": "id",
|
|
13245
|
-
"in": "query"
|
|
13246
|
-
},
|
|
13247
|
-
{
|
|
13248
|
-
"schema": {
|
|
13249
|
-
"type": "string",
|
|
13250
|
-
"description": "Optional room connection ID override"
|
|
13251
|
-
},
|
|
13252
|
-
"required": false,
|
|
13253
|
-
"description": "Optional room connection ID override",
|
|
13254
|
-
"name": "connectionId",
|
|
13255
|
-
"in": "query"
|
|
13256
|
-
}
|
|
13257
|
-
],
|
|
13258
|
-
"responses": {
|
|
13259
|
-
"200": {
|
|
13260
|
-
"description": "Active room realtime session",
|
|
13261
|
-
"content": {
|
|
13262
|
-
"application/json": {
|
|
13263
|
-
"schema": {
|
|
13264
|
-
"type": "object",
|
|
13265
|
-
"properties": {
|
|
13266
|
-
"sessionId": {
|
|
13267
|
-
"type": "string",
|
|
13268
|
-
"description": "Realtime provider session ID"
|
|
13269
|
-
},
|
|
13270
|
-
"connectionId": {
|
|
13271
|
-
"type": "string",
|
|
13272
|
-
"description": "Room connection ID associated with the session"
|
|
13273
|
-
},
|
|
13274
|
-
"createdAt": {
|
|
13275
|
-
"type": "number",
|
|
13276
|
-
"description": "Unix epoch milliseconds when the session was created"
|
|
13277
|
-
},
|
|
13278
|
-
"updatedAt": {
|
|
13279
|
-
"type": "number",
|
|
13280
|
-
"description": "Unix epoch milliseconds when the session was last updated"
|
|
13281
|
-
}
|
|
13282
|
-
},
|
|
13283
|
-
"required": [
|
|
13284
|
-
"sessionId",
|
|
13285
|
-
"createdAt",
|
|
13286
|
-
"updatedAt"
|
|
13287
|
-
]
|
|
13288
|
-
}
|
|
13289
|
-
}
|
|
13290
|
-
}
|
|
13291
|
-
},
|
|
13292
|
-
"400": {
|
|
13293
|
-
"description": "Bad request",
|
|
13294
|
-
"content": {
|
|
13295
|
-
"application/json": {
|
|
13296
|
-
"schema": {
|
|
13297
|
-
"type": "object",
|
|
13298
|
-
"properties": {
|
|
13299
|
-
"code": {
|
|
13300
|
-
"type": "number",
|
|
13301
|
-
"description": "HTTP status code",
|
|
13302
|
-
"example": 400
|
|
13303
|
-
},
|
|
13304
|
-
"message": {
|
|
13305
|
-
"type": "string",
|
|
13306
|
-
"description": "Human-readable message",
|
|
13307
|
-
"example": "Invalid request body"
|
|
13308
|
-
}
|
|
13309
|
-
},
|
|
13310
|
-
"required": [
|
|
13311
|
-
"code",
|
|
13312
|
-
"message"
|
|
13313
|
-
]
|
|
13314
|
-
}
|
|
13315
|
-
}
|
|
13316
|
-
}
|
|
13317
|
-
},
|
|
13318
|
-
"401": {
|
|
13319
|
-
"description": "Authentication required",
|
|
13320
|
-
"content": {
|
|
13321
|
-
"application/json": {
|
|
13322
|
-
"schema": {
|
|
13323
|
-
"type": "object",
|
|
13324
|
-
"properties": {
|
|
13325
|
-
"code": {
|
|
13326
|
-
"type": "number",
|
|
13327
|
-
"description": "HTTP status code",
|
|
13328
|
-
"example": 400
|
|
13329
|
-
},
|
|
13330
|
-
"message": {
|
|
13331
|
-
"type": "string",
|
|
13332
|
-
"description": "Human-readable message",
|
|
13333
|
-
"example": "Invalid request body"
|
|
13334
|
-
}
|
|
13335
|
-
},
|
|
13336
|
-
"required": [
|
|
13337
|
-
"code",
|
|
13338
|
-
"message"
|
|
13339
|
-
]
|
|
13340
|
-
}
|
|
13341
|
-
}
|
|
13342
|
-
}
|
|
13343
|
-
},
|
|
13344
|
-
"403": {
|
|
13345
|
-
"description": "Forbidden",
|
|
13346
|
-
"content": {
|
|
13347
|
-
"application/json": {
|
|
13348
|
-
"schema": {
|
|
13349
|
-
"type": "object",
|
|
13350
|
-
"properties": {
|
|
13351
|
-
"code": {
|
|
13352
|
-
"type": "number",
|
|
13353
|
-
"description": "HTTP status code",
|
|
13354
|
-
"example": 400
|
|
13355
|
-
},
|
|
13356
|
-
"message": {
|
|
13357
|
-
"type": "string",
|
|
13358
|
-
"description": "Human-readable message",
|
|
13359
|
-
"example": "Invalid request body"
|
|
13360
|
-
}
|
|
13361
|
-
},
|
|
13362
|
-
"required": [
|
|
13363
|
-
"code",
|
|
13364
|
-
"message"
|
|
13365
|
-
]
|
|
13366
|
-
}
|
|
13367
|
-
}
|
|
13368
|
-
}
|
|
13369
|
-
},
|
|
13370
|
-
"404": {
|
|
13371
|
-
"description": "No active session or runtime not found",
|
|
13372
|
-
"content": {
|
|
13373
|
-
"application/json": {
|
|
13374
|
-
"schema": {
|
|
13375
|
-
"type": "object",
|
|
13376
|
-
"properties": {
|
|
13377
|
-
"code": {
|
|
13378
|
-
"type": "number",
|
|
13379
|
-
"description": "HTTP status code",
|
|
13380
|
-
"example": 400
|
|
13381
|
-
},
|
|
13382
|
-
"message": {
|
|
13383
|
-
"type": "string",
|
|
13384
|
-
"description": "Human-readable message",
|
|
13385
|
-
"example": "Invalid request body"
|
|
13386
|
-
}
|
|
13387
|
-
},
|
|
13388
|
-
"required": [
|
|
13389
|
-
"code",
|
|
13390
|
-
"message"
|
|
13391
|
-
]
|
|
13392
|
-
}
|
|
13393
|
-
}
|
|
13394
|
-
}
|
|
13395
|
-
}
|
|
13396
|
-
},
|
|
13397
|
-
"security": [
|
|
13398
|
-
{
|
|
13399
|
-
"userBearerAuth": []
|
|
13400
|
-
}
|
|
13401
|
-
]
|
|
13402
|
-
},
|
|
13403
|
-
"post": {
|
|
13404
|
-
"operationId": "createRoomRealtimeSession",
|
|
13405
|
-
"tags": [
|
|
13406
|
-
"client"
|
|
13407
|
-
],
|
|
13408
|
-
"summary": "Create a room realtime media session",
|
|
13409
|
-
"description": "Creates a Cloudflare Realtime session for the authenticated room member.",
|
|
13410
|
-
"parameters": [
|
|
13411
|
-
{
|
|
13412
|
-
"schema": {
|
|
13413
|
-
"type": "string",
|
|
13414
|
-
"description": "Room namespace"
|
|
13415
|
-
},
|
|
13416
|
-
"required": true,
|
|
13417
|
-
"description": "Room namespace",
|
|
13418
|
-
"name": "namespace",
|
|
13419
|
-
"in": "query"
|
|
13420
|
-
},
|
|
13421
|
-
{
|
|
13422
|
-
"schema": {
|
|
13423
|
-
"type": "string",
|
|
13424
|
-
"description": "Room ID"
|
|
13425
|
-
},
|
|
13426
|
-
"required": true,
|
|
13427
|
-
"description": "Room ID",
|
|
13428
|
-
"name": "id",
|
|
13429
|
-
"in": "query"
|
|
13430
|
-
}
|
|
13431
|
-
],
|
|
13432
|
-
"requestBody": {
|
|
13433
|
-
"required": false,
|
|
13434
|
-
"content": {
|
|
13435
|
-
"application/json": {
|
|
13436
|
-
"schema": {
|
|
13437
|
-
"type": "object",
|
|
13438
|
-
"properties": {
|
|
13439
|
-
"connectionId": {
|
|
13440
|
-
"type": "string",
|
|
13441
|
-
"description": "Specific room connection ID to bind the realtime session to"
|
|
13442
|
-
},
|
|
13443
|
-
"correlationId": {
|
|
13444
|
-
"type": "string",
|
|
13445
|
-
"description": "Optional provider correlation ID"
|
|
13446
|
-
},
|
|
13447
|
-
"thirdparty": {
|
|
13448
|
-
"type": "boolean",
|
|
13449
|
-
"description": "Forward Cloudflare Realtime thirdparty mode"
|
|
13450
|
-
},
|
|
13451
|
-
"sessionDescription": {
|
|
13452
|
-
"type": "object",
|
|
13453
|
-
"properties": {
|
|
13454
|
-
"sdp": {
|
|
13455
|
-
"type": "string",
|
|
13456
|
-
"description": "WebRTC session description payload"
|
|
13457
|
-
},
|
|
13458
|
-
"type": {
|
|
13459
|
-
"type": "string",
|
|
13460
|
-
"enum": [
|
|
13461
|
-
"offer",
|
|
13462
|
-
"answer"
|
|
13463
|
-
],
|
|
13464
|
-
"description": "Session description type"
|
|
13465
|
-
}
|
|
13466
|
-
},
|
|
13467
|
-
"required": [
|
|
13468
|
-
"sdp",
|
|
13469
|
-
"type"
|
|
13470
|
-
]
|
|
13471
|
-
}
|
|
13472
|
-
}
|
|
13473
|
-
}
|
|
13474
|
-
}
|
|
13475
|
-
}
|
|
13476
|
-
},
|
|
13477
|
-
"responses": {
|
|
13478
|
-
"200": {
|
|
13479
|
-
"description": "Realtime session created",
|
|
13480
|
-
"content": {
|
|
13481
|
-
"application/json": {
|
|
13482
|
-
"schema": {
|
|
13483
|
-
"type": "object",
|
|
13484
|
-
"properties": {
|
|
13485
|
-
"sessionId": {
|
|
13486
|
-
"type": "string",
|
|
13487
|
-
"description": "Realtime provider session ID"
|
|
13488
|
-
},
|
|
13489
|
-
"sessionDescription": {
|
|
13490
|
-
"type": "object",
|
|
13491
|
-
"properties": {
|
|
13492
|
-
"sdp": {
|
|
13493
|
-
"type": "string",
|
|
13494
|
-
"description": "WebRTC session description payload"
|
|
13495
|
-
},
|
|
13496
|
-
"type": {
|
|
13497
|
-
"type": "string",
|
|
13498
|
-
"enum": [
|
|
13499
|
-
"offer",
|
|
13500
|
-
"answer"
|
|
13501
|
-
],
|
|
13502
|
-
"description": "Session description type"
|
|
13503
|
-
}
|
|
13504
|
-
},
|
|
13505
|
-
"required": [
|
|
13506
|
-
"sdp",
|
|
13507
|
-
"type"
|
|
13508
|
-
]
|
|
13509
|
-
},
|
|
13510
|
-
"errorCode": {
|
|
13511
|
-
"type": "string"
|
|
13512
|
-
},
|
|
13513
|
-
"errorDescription": {
|
|
13514
|
-
"type": "string"
|
|
13515
|
-
},
|
|
13516
|
-
"connectionId": {
|
|
13517
|
-
"type": "string",
|
|
13518
|
-
"description": "Room connection ID associated with the session"
|
|
13519
|
-
},
|
|
13520
|
-
"reused": {
|
|
13521
|
-
"type": "boolean",
|
|
13522
|
-
"description": "Whether an existing provider session was reused"
|
|
13523
|
-
}
|
|
13524
|
-
},
|
|
13525
|
-
"required": [
|
|
13526
|
-
"sessionId"
|
|
13527
|
-
]
|
|
13528
|
-
}
|
|
13529
|
-
}
|
|
13530
|
-
}
|
|
13531
|
-
},
|
|
13532
|
-
"400": {
|
|
13533
|
-
"description": "Bad request",
|
|
13534
|
-
"content": {
|
|
13535
|
-
"application/json": {
|
|
13536
|
-
"schema": {
|
|
13537
|
-
"type": "object",
|
|
13538
|
-
"properties": {
|
|
13539
|
-
"code": {
|
|
13540
|
-
"type": "number",
|
|
13541
|
-
"description": "HTTP status code",
|
|
13542
|
-
"example": 400
|
|
13543
|
-
},
|
|
13544
|
-
"message": {
|
|
13545
|
-
"type": "string",
|
|
13546
|
-
"description": "Human-readable message",
|
|
13547
|
-
"example": "Invalid request body"
|
|
13548
|
-
}
|
|
13549
|
-
},
|
|
13550
|
-
"required": [
|
|
13551
|
-
"code",
|
|
13552
|
-
"message"
|
|
13553
|
-
]
|
|
13554
|
-
}
|
|
13555
|
-
}
|
|
13556
|
-
}
|
|
13557
|
-
},
|
|
13558
|
-
"401": {
|
|
13559
|
-
"description": "Authentication required",
|
|
13560
|
-
"content": {
|
|
13561
|
-
"application/json": {
|
|
13562
|
-
"schema": {
|
|
13563
|
-
"type": "object",
|
|
13564
|
-
"properties": {
|
|
13565
|
-
"code": {
|
|
13566
|
-
"type": "number",
|
|
13567
|
-
"description": "HTTP status code",
|
|
13568
|
-
"example": 400
|
|
13569
|
-
},
|
|
13570
|
-
"message": {
|
|
13571
|
-
"type": "string",
|
|
13572
|
-
"description": "Human-readable message",
|
|
13573
|
-
"example": "Invalid request body"
|
|
13574
|
-
}
|
|
13575
|
-
},
|
|
13576
|
-
"required": [
|
|
13577
|
-
"code",
|
|
13578
|
-
"message"
|
|
13579
|
-
]
|
|
13580
|
-
}
|
|
13581
|
-
}
|
|
13582
|
-
}
|
|
13583
|
-
},
|
|
13584
|
-
"403": {
|
|
13585
|
-
"description": "Forbidden",
|
|
13586
|
-
"content": {
|
|
13587
|
-
"application/json": {
|
|
13588
|
-
"schema": {
|
|
13589
|
-
"type": "object",
|
|
13590
|
-
"properties": {
|
|
13591
|
-
"code": {
|
|
13592
|
-
"type": "number",
|
|
13593
|
-
"description": "HTTP status code",
|
|
13594
|
-
"example": 400
|
|
13595
|
-
},
|
|
13596
|
-
"message": {
|
|
13597
|
-
"type": "string",
|
|
13598
|
-
"description": "Human-readable message",
|
|
13599
|
-
"example": "Invalid request body"
|
|
13600
|
-
}
|
|
13601
|
-
},
|
|
13602
|
-
"required": [
|
|
13603
|
-
"code",
|
|
13604
|
-
"message"
|
|
13605
|
-
]
|
|
13606
|
-
}
|
|
13607
|
-
}
|
|
13608
|
-
}
|
|
13609
|
-
},
|
|
13610
|
-
"404": {
|
|
13611
|
-
"description": "Room runtime not found",
|
|
13612
|
-
"content": {
|
|
13613
|
-
"application/json": {
|
|
13614
|
-
"schema": {
|
|
13615
|
-
"type": "object",
|
|
13616
|
-
"properties": {
|
|
13617
|
-
"code": {
|
|
13618
|
-
"type": "number",
|
|
13619
|
-
"description": "HTTP status code",
|
|
13620
|
-
"example": 400
|
|
13621
|
-
},
|
|
13622
|
-
"message": {
|
|
13623
|
-
"type": "string",
|
|
13624
|
-
"description": "Human-readable message",
|
|
13625
|
-
"example": "Invalid request body"
|
|
13626
|
-
}
|
|
13627
|
-
},
|
|
13628
|
-
"required": [
|
|
13629
|
-
"code",
|
|
13630
|
-
"message"
|
|
13631
|
-
]
|
|
13632
|
-
}
|
|
13633
|
-
}
|
|
13634
|
-
}
|
|
13635
|
-
},
|
|
13636
|
-
"409": {
|
|
13637
|
-
"description": "Conflicting existing published media",
|
|
13638
|
-
"content": {
|
|
13639
|
-
"application/json": {
|
|
13640
|
-
"schema": {
|
|
13641
|
-
"type": "object",
|
|
13642
|
-
"properties": {
|
|
13643
|
-
"code": {
|
|
13644
|
-
"type": "number",
|
|
13645
|
-
"description": "HTTP status code",
|
|
13646
|
-
"example": 400
|
|
13647
|
-
},
|
|
13648
|
-
"message": {
|
|
13649
|
-
"type": "string",
|
|
13650
|
-
"description": "Human-readable message",
|
|
13651
|
-
"example": "Invalid request body"
|
|
13652
|
-
}
|
|
13653
|
-
},
|
|
13654
|
-
"required": [
|
|
13655
|
-
"code",
|
|
13656
|
-
"message"
|
|
13657
|
-
]
|
|
13658
|
-
}
|
|
13659
|
-
}
|
|
13660
|
-
}
|
|
13661
|
-
}
|
|
13662
|
-
},
|
|
13663
|
-
"security": [
|
|
13664
|
-
{
|
|
13665
|
-
"userBearerAuth": []
|
|
13666
|
-
}
|
|
13667
|
-
]
|
|
13668
|
-
}
|
|
13669
|
-
},
|
|
13670
|
-
"/api/room/media/realtime/turn": {
|
|
13671
|
-
"post": {
|
|
13672
|
-
"operationId": "createRoomRealtimeIceServers",
|
|
13673
|
-
"tags": [
|
|
13674
|
-
"client"
|
|
13675
|
-
],
|
|
13676
|
-
"summary": "Generate TURN / ICE credentials for room realtime media",
|
|
13677
|
-
"description": "Generates ICE server credentials for the authenticated room member.",
|
|
13678
|
-
"parameters": [
|
|
13679
|
-
{
|
|
13680
|
-
"schema": {
|
|
13681
|
-
"type": "string",
|
|
13682
|
-
"description": "Room namespace"
|
|
13683
|
-
},
|
|
13684
|
-
"required": true,
|
|
13685
|
-
"description": "Room namespace",
|
|
13686
|
-
"name": "namespace",
|
|
13687
|
-
"in": "query"
|
|
13688
|
-
},
|
|
13689
|
-
{
|
|
13690
|
-
"schema": {
|
|
13691
|
-
"type": "string",
|
|
13692
|
-
"description": "Room ID"
|
|
13693
|
-
},
|
|
13694
|
-
"required": true,
|
|
13695
|
-
"description": "Room ID",
|
|
13696
|
-
"name": "id",
|
|
13697
|
-
"in": "query"
|
|
13698
|
-
}
|
|
13699
|
-
],
|
|
13700
|
-
"requestBody": {
|
|
13701
|
-
"required": false,
|
|
13702
|
-
"content": {
|
|
13703
|
-
"application/json": {
|
|
13704
|
-
"schema": {
|
|
13705
|
-
"type": "object",
|
|
13706
|
-
"properties": {
|
|
13707
|
-
"ttl": {
|
|
13708
|
-
"type": "number",
|
|
13709
|
-
"description": "Requested TURN credential TTL in seconds"
|
|
13710
|
-
}
|
|
13711
|
-
}
|
|
13712
|
-
}
|
|
13713
|
-
}
|
|
13714
|
-
}
|
|
13715
|
-
},
|
|
13716
|
-
"responses": {
|
|
13717
|
-
"200": {
|
|
13718
|
-
"description": "ICE servers generated",
|
|
13719
|
-
"content": {
|
|
13720
|
-
"application/json": {
|
|
13721
|
-
"schema": {
|
|
13722
|
-
"type": "object",
|
|
13723
|
-
"properties": {
|
|
13724
|
-
"iceServers": {
|
|
13725
|
-
"type": "array",
|
|
13726
|
-
"items": {
|
|
13727
|
-
"type": "object",
|
|
13728
|
-
"properties": {
|
|
13729
|
-
"urls": {
|
|
13730
|
-
"anyOf": [
|
|
13731
|
-
{
|
|
13732
|
-
"type": "array",
|
|
13733
|
-
"items": {
|
|
13734
|
-
"type": "string"
|
|
13735
|
-
}
|
|
13736
|
-
},
|
|
13737
|
-
{
|
|
13738
|
-
"type": "string"
|
|
13739
|
-
}
|
|
13740
|
-
],
|
|
13741
|
-
"description": "ICE server URL or URL list"
|
|
13742
|
-
},
|
|
13743
|
-
"username": {
|
|
13744
|
-
"type": "string"
|
|
13745
|
-
},
|
|
13746
|
-
"credential": {
|
|
13747
|
-
"type": "string"
|
|
13748
|
-
}
|
|
13749
|
-
},
|
|
13750
|
-
"required": [
|
|
13751
|
-
"urls"
|
|
13752
|
-
]
|
|
13753
|
-
},
|
|
13754
|
-
"description": "ICE servers returned by Cloudflare TURN"
|
|
13755
|
-
}
|
|
13756
|
-
},
|
|
13757
|
-
"required": [
|
|
13758
|
-
"iceServers"
|
|
13759
|
-
]
|
|
13760
|
-
}
|
|
13761
|
-
}
|
|
13762
|
-
}
|
|
13763
|
-
},
|
|
13764
|
-
"400": {
|
|
13765
|
-
"description": "Bad request",
|
|
13766
|
-
"content": {
|
|
13767
|
-
"application/json": {
|
|
13768
|
-
"schema": {
|
|
13769
|
-
"type": "object",
|
|
13770
|
-
"properties": {
|
|
13771
|
-
"code": {
|
|
13772
|
-
"type": "number",
|
|
13773
|
-
"description": "HTTP status code",
|
|
13774
|
-
"example": 400
|
|
13775
|
-
},
|
|
13776
|
-
"message": {
|
|
13777
|
-
"type": "string",
|
|
13778
|
-
"description": "Human-readable message",
|
|
13779
|
-
"example": "Invalid request body"
|
|
13780
|
-
}
|
|
13781
|
-
},
|
|
13782
|
-
"required": [
|
|
13783
|
-
"code",
|
|
13784
|
-
"message"
|
|
13785
|
-
]
|
|
13786
|
-
}
|
|
13787
|
-
}
|
|
13788
|
-
}
|
|
13789
|
-
},
|
|
13790
|
-
"401": {
|
|
13791
|
-
"description": "Authentication required",
|
|
13792
|
-
"content": {
|
|
13793
|
-
"application/json": {
|
|
13794
|
-
"schema": {
|
|
13795
|
-
"type": "object",
|
|
13796
|
-
"properties": {
|
|
13797
|
-
"code": {
|
|
13798
|
-
"type": "number",
|
|
13799
|
-
"description": "HTTP status code",
|
|
13800
|
-
"example": 400
|
|
13801
|
-
},
|
|
13802
|
-
"message": {
|
|
13803
|
-
"type": "string",
|
|
13804
|
-
"description": "Human-readable message",
|
|
13805
|
-
"example": "Invalid request body"
|
|
13806
|
-
}
|
|
13807
|
-
},
|
|
13808
|
-
"required": [
|
|
13809
|
-
"code",
|
|
13810
|
-
"message"
|
|
13811
|
-
]
|
|
13812
|
-
}
|
|
13813
|
-
}
|
|
13814
|
-
}
|
|
13815
|
-
},
|
|
13816
|
-
"403": {
|
|
13817
|
-
"description": "Forbidden",
|
|
13818
|
-
"content": {
|
|
13819
|
-
"application/json": {
|
|
13820
|
-
"schema": {
|
|
13821
|
-
"type": "object",
|
|
13822
|
-
"properties": {
|
|
13823
|
-
"code": {
|
|
13824
|
-
"type": "number",
|
|
13825
|
-
"description": "HTTP status code",
|
|
13826
|
-
"example": 400
|
|
13827
|
-
},
|
|
13828
|
-
"message": {
|
|
13829
|
-
"type": "string",
|
|
13830
|
-
"description": "Human-readable message",
|
|
13831
|
-
"example": "Invalid request body"
|
|
13832
|
-
}
|
|
13833
|
-
},
|
|
13834
|
-
"required": [
|
|
13835
|
-
"code",
|
|
13836
|
-
"message"
|
|
13837
|
-
]
|
|
13838
|
-
}
|
|
13839
|
-
}
|
|
13840
|
-
}
|
|
13841
|
-
},
|
|
13842
|
-
"404": {
|
|
13843
|
-
"description": "Room runtime not found",
|
|
13844
|
-
"content": {
|
|
13845
|
-
"application/json": {
|
|
13846
|
-
"schema": {
|
|
13847
|
-
"type": "object",
|
|
13848
|
-
"properties": {
|
|
13849
|
-
"code": {
|
|
13850
|
-
"type": "number",
|
|
13851
|
-
"description": "HTTP status code",
|
|
13852
|
-
"example": 400
|
|
13853
|
-
},
|
|
13854
|
-
"message": {
|
|
13855
|
-
"type": "string",
|
|
13856
|
-
"description": "Human-readable message",
|
|
13857
|
-
"example": "Invalid request body"
|
|
13858
|
-
}
|
|
13859
|
-
},
|
|
13860
|
-
"required": [
|
|
13861
|
-
"code",
|
|
13862
|
-
"message"
|
|
13863
|
-
]
|
|
13864
|
-
}
|
|
13865
|
-
}
|
|
13866
|
-
}
|
|
13867
|
-
}
|
|
13868
|
-
},
|
|
13869
|
-
"security": [
|
|
13870
|
-
{
|
|
13871
|
-
"userBearerAuth": []
|
|
13872
|
-
}
|
|
13873
|
-
]
|
|
13874
|
-
}
|
|
13875
|
-
},
|
|
13876
|
-
"/api/room/media/realtime/tracks/new": {
|
|
13877
|
-
"post": {
|
|
13878
|
-
"operationId": "addRoomRealtimeTracks",
|
|
13879
|
-
"tags": [
|
|
13880
|
-
"client"
|
|
13881
|
-
],
|
|
13882
|
-
"summary": "Add realtime media tracks to a room session",
|
|
13883
|
-
"description": "Creates or subscribes realtime tracks for the authenticated room member.",
|
|
13884
|
-
"parameters": [
|
|
13885
|
-
{
|
|
13886
|
-
"schema": {
|
|
13887
|
-
"type": "string",
|
|
13888
|
-
"description": "Room namespace"
|
|
13889
|
-
},
|
|
13890
|
-
"required": true,
|
|
13891
|
-
"description": "Room namespace",
|
|
13892
|
-
"name": "namespace",
|
|
13893
|
-
"in": "query"
|
|
13894
|
-
},
|
|
13895
|
-
{
|
|
13896
|
-
"schema": {
|
|
13897
|
-
"type": "string",
|
|
13898
|
-
"description": "Room ID"
|
|
13899
|
-
},
|
|
13900
|
-
"required": true,
|
|
13901
|
-
"description": "Room ID",
|
|
13902
|
-
"name": "id",
|
|
13903
|
-
"in": "query"
|
|
13904
|
-
}
|
|
13905
|
-
],
|
|
13906
|
-
"requestBody": {
|
|
13907
|
-
"required": true,
|
|
13908
|
-
"content": {
|
|
13909
|
-
"application/json": {
|
|
13910
|
-
"schema": {
|
|
13911
|
-
"type": "object",
|
|
13912
|
-
"properties": {
|
|
13913
|
-
"sessionId": {
|
|
13914
|
-
"type": "string",
|
|
13915
|
-
"description": "Realtime provider session ID"
|
|
13916
|
-
},
|
|
13917
|
-
"connectionId": {
|
|
13918
|
-
"type": "string",
|
|
13919
|
-
"description": "Specific room connection ID to bind the track operation to"
|
|
13920
|
-
},
|
|
13921
|
-
"sessionDescription": {
|
|
13922
|
-
"type": "object",
|
|
13923
|
-
"properties": {
|
|
13924
|
-
"sdp": {
|
|
13925
|
-
"type": "string",
|
|
13926
|
-
"description": "WebRTC session description payload"
|
|
13927
|
-
},
|
|
13928
|
-
"type": {
|
|
13929
|
-
"type": "string",
|
|
13930
|
-
"enum": [
|
|
13931
|
-
"offer",
|
|
13932
|
-
"answer"
|
|
13933
|
-
],
|
|
13934
|
-
"description": "Session description type"
|
|
13935
|
-
}
|
|
13936
|
-
},
|
|
13937
|
-
"required": [
|
|
13938
|
-
"sdp",
|
|
13939
|
-
"type"
|
|
13940
|
-
]
|
|
13941
|
-
},
|
|
13942
|
-
"tracks": {
|
|
13943
|
-
"type": "array",
|
|
13944
|
-
"items": {
|
|
13945
|
-
"type": "object",
|
|
13946
|
-
"properties": {
|
|
13947
|
-
"location": {
|
|
13948
|
-
"type": "string",
|
|
13949
|
-
"enum": [
|
|
13950
|
-
"local",
|
|
13951
|
-
"remote"
|
|
13952
|
-
],
|
|
13953
|
-
"description": "Track direction relative to the caller"
|
|
13954
|
-
},
|
|
13955
|
-
"mid": {
|
|
13956
|
-
"type": "string",
|
|
13957
|
-
"description": "WebRTC media ID"
|
|
13958
|
-
},
|
|
13959
|
-
"sessionId": {
|
|
13960
|
-
"type": "string",
|
|
13961
|
-
"description": "Provider session ID associated with this track"
|
|
13962
|
-
},
|
|
13963
|
-
"trackName": {
|
|
13964
|
-
"type": "string",
|
|
13965
|
-
"description": "Track name used by the provider"
|
|
13966
|
-
},
|
|
13967
|
-
"bidirectionalMediaStream": {
|
|
13968
|
-
"type": "boolean",
|
|
13969
|
-
"description": "Whether the track should be bidirectional"
|
|
13970
|
-
},
|
|
13971
|
-
"kind": {
|
|
13972
|
-
"type": "string",
|
|
13973
|
-
"description": "Track kind reported by the provider"
|
|
13974
|
-
},
|
|
13975
|
-
"simulcast": {
|
|
13976
|
-
"type": "object",
|
|
13977
|
-
"properties": {
|
|
13978
|
-
"preferredRid": {
|
|
13979
|
-
"type": "string"
|
|
13980
|
-
},
|
|
13981
|
-
"priorityOrdering": {
|
|
13982
|
-
"type": "string",
|
|
13983
|
-
"enum": [
|
|
13984
|
-
"none",
|
|
13985
|
-
"asciibetical"
|
|
13986
|
-
]
|
|
13987
|
-
},
|
|
13988
|
-
"ridNotAvailable": {
|
|
13989
|
-
"type": "string",
|
|
13990
|
-
"enum": [
|
|
13991
|
-
"none",
|
|
13992
|
-
"asciibetical"
|
|
13993
|
-
]
|
|
13994
|
-
}
|
|
13995
|
-
},
|
|
13996
|
-
"description": "Optional simulcast preferences"
|
|
13997
|
-
},
|
|
13998
|
-
"errorCode": {
|
|
13999
|
-
"type": "string",
|
|
14000
|
-
"description": "Provider-level error code for this track"
|
|
14001
|
-
},
|
|
14002
|
-
"errorDescription": {
|
|
14003
|
-
"type": "string",
|
|
14004
|
-
"description": "Provider-level error description for this track"
|
|
14005
|
-
}
|
|
14006
|
-
},
|
|
14007
|
-
"required": [
|
|
14008
|
-
"location"
|
|
14009
|
-
]
|
|
14010
|
-
},
|
|
14011
|
-
"minItems": 1,
|
|
14012
|
-
"description": "Tracks to create or subscribe to"
|
|
14013
|
-
},
|
|
14014
|
-
"autoDiscover": {
|
|
14015
|
-
"type": "boolean",
|
|
14016
|
-
"description": "Ask the provider to auto-discover remote tracks"
|
|
14017
|
-
},
|
|
14018
|
-
"publish": {
|
|
14019
|
-
"type": "object",
|
|
14020
|
-
"properties": {
|
|
14021
|
-
"kind": {
|
|
14022
|
-
"type": "string",
|
|
14023
|
-
"enum": [
|
|
14024
|
-
"audio",
|
|
14025
|
-
"video",
|
|
14026
|
-
"screen"
|
|
14027
|
-
]
|
|
14028
|
-
},
|
|
14029
|
-
"trackId": {
|
|
14030
|
-
"type": "string"
|
|
14031
|
-
},
|
|
14032
|
-
"deviceId": {
|
|
14033
|
-
"type": "string"
|
|
14034
|
-
},
|
|
14035
|
-
"muted": {
|
|
14036
|
-
"type": "boolean"
|
|
14037
|
-
}
|
|
14038
|
-
},
|
|
14039
|
-
"description": "Optional room media state updates to apply after track creation"
|
|
14040
|
-
}
|
|
14041
|
-
},
|
|
14042
|
-
"required": [
|
|
14043
|
-
"sessionId",
|
|
14044
|
-
"tracks"
|
|
14045
|
-
]
|
|
14046
|
-
}
|
|
14047
|
-
}
|
|
14048
|
-
}
|
|
14049
|
-
},
|
|
14050
|
-
"responses": {
|
|
14051
|
-
"200": {
|
|
14052
|
-
"description": "Realtime tracks updated",
|
|
14053
|
-
"content": {
|
|
14054
|
-
"application/json": {
|
|
14055
|
-
"schema": {
|
|
14056
|
-
"type": "object",
|
|
14057
|
-
"properties": {
|
|
14058
|
-
"errorCode": {
|
|
14059
|
-
"type": "string"
|
|
14060
|
-
},
|
|
14061
|
-
"errorDescription": {
|
|
14062
|
-
"type": "string"
|
|
14063
|
-
},
|
|
14064
|
-
"requiresImmediateRenegotiation": {
|
|
14065
|
-
"type": "boolean"
|
|
14066
|
-
},
|
|
14067
|
-
"sessionDescription": {
|
|
14068
|
-
"type": "object",
|
|
14069
|
-
"properties": {
|
|
14070
|
-
"sdp": {
|
|
14071
|
-
"type": "string",
|
|
14072
|
-
"description": "WebRTC session description payload"
|
|
14073
|
-
},
|
|
14074
|
-
"type": {
|
|
14075
|
-
"type": "string",
|
|
14076
|
-
"enum": [
|
|
14077
|
-
"offer",
|
|
14078
|
-
"answer"
|
|
14079
|
-
],
|
|
14080
|
-
"description": "Session description type"
|
|
14081
|
-
}
|
|
14082
|
-
},
|
|
14083
|
-
"required": [
|
|
14084
|
-
"sdp",
|
|
14085
|
-
"type"
|
|
14086
|
-
]
|
|
14087
|
-
},
|
|
14088
|
-
"tracks": {
|
|
14089
|
-
"type": "array",
|
|
14090
|
-
"items": {
|
|
14091
|
-
"type": "object",
|
|
14092
|
-
"properties": {
|
|
14093
|
-
"location": {
|
|
14094
|
-
"type": "string",
|
|
14095
|
-
"enum": [
|
|
14096
|
-
"local",
|
|
14097
|
-
"remote"
|
|
14098
|
-
],
|
|
14099
|
-
"description": "Track direction relative to the caller"
|
|
14100
|
-
},
|
|
14101
|
-
"mid": {
|
|
14102
|
-
"type": "string",
|
|
14103
|
-
"description": "WebRTC media ID"
|
|
14104
|
-
},
|
|
14105
|
-
"sessionId": {
|
|
14106
|
-
"type": "string",
|
|
14107
|
-
"description": "Provider session ID associated with this track"
|
|
14108
|
-
},
|
|
14109
|
-
"trackName": {
|
|
14110
|
-
"type": "string",
|
|
14111
|
-
"description": "Track name used by the provider"
|
|
14112
|
-
},
|
|
14113
|
-
"bidirectionalMediaStream": {
|
|
14114
|
-
"type": "boolean",
|
|
14115
|
-
"description": "Whether the track should be bidirectional"
|
|
14116
|
-
},
|
|
14117
|
-
"kind": {
|
|
14118
|
-
"type": "string",
|
|
14119
|
-
"description": "Track kind reported by the provider"
|
|
14120
|
-
},
|
|
14121
|
-
"simulcast": {
|
|
14122
|
-
"type": "object",
|
|
14123
|
-
"properties": {
|
|
14124
|
-
"preferredRid": {
|
|
14125
|
-
"type": "string"
|
|
14126
|
-
},
|
|
14127
|
-
"priorityOrdering": {
|
|
14128
|
-
"type": "string",
|
|
14129
|
-
"enum": [
|
|
14130
|
-
"none",
|
|
14131
|
-
"asciibetical"
|
|
14132
|
-
]
|
|
14133
|
-
},
|
|
14134
|
-
"ridNotAvailable": {
|
|
14135
|
-
"type": "string",
|
|
14136
|
-
"enum": [
|
|
14137
|
-
"none",
|
|
14138
|
-
"asciibetical"
|
|
14139
|
-
]
|
|
14140
|
-
}
|
|
14141
|
-
},
|
|
14142
|
-
"description": "Optional simulcast preferences"
|
|
14143
|
-
},
|
|
14144
|
-
"errorCode": {
|
|
14145
|
-
"type": "string",
|
|
14146
|
-
"description": "Provider-level error code for this track"
|
|
14147
|
-
},
|
|
14148
|
-
"errorDescription": {
|
|
14149
|
-
"type": "string",
|
|
14150
|
-
"description": "Provider-level error description for this track"
|
|
14151
|
-
}
|
|
14152
|
-
},
|
|
14153
|
-
"required": [
|
|
14154
|
-
"location"
|
|
14155
|
-
]
|
|
14156
|
-
}
|
|
14157
|
-
}
|
|
14158
|
-
}
|
|
14159
|
-
}
|
|
14160
|
-
}
|
|
14161
|
-
}
|
|
14162
|
-
},
|
|
14163
|
-
"400": {
|
|
14164
|
-
"description": "Bad request",
|
|
14165
|
-
"content": {
|
|
14166
|
-
"application/json": {
|
|
14167
|
-
"schema": {
|
|
14168
|
-
"type": "object",
|
|
14169
|
-
"properties": {
|
|
14170
|
-
"code": {
|
|
14171
|
-
"type": "number",
|
|
14172
|
-
"description": "HTTP status code",
|
|
14173
|
-
"example": 400
|
|
14174
|
-
},
|
|
14175
|
-
"message": {
|
|
14176
|
-
"type": "string",
|
|
14177
|
-
"description": "Human-readable message",
|
|
14178
|
-
"example": "Invalid request body"
|
|
14179
|
-
}
|
|
14180
|
-
},
|
|
14181
|
-
"required": [
|
|
14182
|
-
"code",
|
|
14183
|
-
"message"
|
|
14184
|
-
]
|
|
14185
|
-
}
|
|
14186
|
-
}
|
|
14187
|
-
}
|
|
14188
|
-
},
|
|
14189
|
-
"401": {
|
|
14190
|
-
"description": "Authentication required",
|
|
14191
|
-
"content": {
|
|
14192
|
-
"application/json": {
|
|
14193
|
-
"schema": {
|
|
14194
|
-
"type": "object",
|
|
14195
|
-
"properties": {
|
|
14196
|
-
"code": {
|
|
14197
|
-
"type": "number",
|
|
14198
|
-
"description": "HTTP status code",
|
|
14199
|
-
"example": 400
|
|
14200
|
-
},
|
|
14201
|
-
"message": {
|
|
14202
|
-
"type": "string",
|
|
14203
|
-
"description": "Human-readable message",
|
|
14204
|
-
"example": "Invalid request body"
|
|
14205
|
-
}
|
|
14206
|
-
},
|
|
14207
|
-
"required": [
|
|
14208
|
-
"code",
|
|
14209
|
-
"message"
|
|
14210
|
-
]
|
|
14211
|
-
}
|
|
14212
|
-
}
|
|
14213
|
-
}
|
|
14214
|
-
},
|
|
14215
|
-
"403": {
|
|
14216
|
-
"description": "Forbidden",
|
|
14217
|
-
"content": {
|
|
14218
|
-
"application/json": {
|
|
14219
|
-
"schema": {
|
|
14220
|
-
"type": "object",
|
|
14221
|
-
"properties": {
|
|
14222
|
-
"code": {
|
|
14223
|
-
"type": "number",
|
|
14224
|
-
"description": "HTTP status code",
|
|
14225
|
-
"example": 400
|
|
14226
|
-
},
|
|
14227
|
-
"message": {
|
|
14228
|
-
"type": "string",
|
|
14229
|
-
"description": "Human-readable message",
|
|
14230
|
-
"example": "Invalid request body"
|
|
14231
|
-
}
|
|
14232
|
-
},
|
|
14233
|
-
"required": [
|
|
14234
|
-
"code",
|
|
14235
|
-
"message"
|
|
14236
|
-
]
|
|
14237
|
-
}
|
|
14238
|
-
}
|
|
14239
|
-
}
|
|
14240
|
-
},
|
|
14241
|
-
"404": {
|
|
14242
|
-
"description": "Room runtime not found",
|
|
14243
|
-
"content": {
|
|
14244
|
-
"application/json": {
|
|
14245
|
-
"schema": {
|
|
14246
|
-
"type": "object",
|
|
14247
|
-
"properties": {
|
|
14248
|
-
"code": {
|
|
14249
|
-
"type": "number",
|
|
14250
|
-
"description": "HTTP status code",
|
|
14251
|
-
"example": 400
|
|
14252
|
-
},
|
|
14253
|
-
"message": {
|
|
14254
|
-
"type": "string",
|
|
14255
|
-
"description": "Human-readable message",
|
|
14256
|
-
"example": "Invalid request body"
|
|
14257
|
-
}
|
|
14258
|
-
},
|
|
14259
|
-
"required": [
|
|
14260
|
-
"code",
|
|
14261
|
-
"message"
|
|
14262
|
-
]
|
|
14263
|
-
}
|
|
14264
|
-
}
|
|
14265
|
-
}
|
|
14266
|
-
}
|
|
14267
|
-
},
|
|
14268
|
-
"security": [
|
|
14269
|
-
{
|
|
14270
|
-
"userBearerAuth": []
|
|
14271
|
-
}
|
|
14272
|
-
]
|
|
14273
|
-
}
|
|
14274
|
-
},
|
|
14275
|
-
"/api/room/media/realtime/renegotiate": {
|
|
14276
|
-
"put": {
|
|
14277
|
-
"operationId": "renegotiateRoomRealtimeSession",
|
|
14278
|
-
"tags": [
|
|
14279
|
-
"client"
|
|
14280
|
-
],
|
|
14281
|
-
"summary": "Renegotiate a room realtime media session",
|
|
14282
|
-
"description": "Submits a new session description for an existing room realtime media session.",
|
|
14283
|
-
"parameters": [
|
|
14284
|
-
{
|
|
14285
|
-
"schema": {
|
|
14286
|
-
"type": "string",
|
|
14287
|
-
"description": "Room namespace"
|
|
14288
|
-
},
|
|
14289
|
-
"required": true,
|
|
14290
|
-
"description": "Room namespace",
|
|
14291
|
-
"name": "namespace",
|
|
14292
|
-
"in": "query"
|
|
14293
|
-
},
|
|
14294
|
-
{
|
|
14295
|
-
"schema": {
|
|
14296
|
-
"type": "string",
|
|
14297
|
-
"description": "Room ID"
|
|
14298
|
-
},
|
|
14299
|
-
"required": true,
|
|
14300
|
-
"description": "Room ID",
|
|
14301
|
-
"name": "id",
|
|
14302
|
-
"in": "query"
|
|
14303
|
-
}
|
|
14304
|
-
],
|
|
14305
|
-
"requestBody": {
|
|
14306
|
-
"required": true,
|
|
14307
|
-
"content": {
|
|
14308
|
-
"application/json": {
|
|
14309
|
-
"schema": {
|
|
14310
|
-
"type": "object",
|
|
14311
|
-
"properties": {
|
|
14312
|
-
"sessionId": {
|
|
14313
|
-
"type": "string",
|
|
14314
|
-
"description": "Realtime provider session ID"
|
|
14315
|
-
},
|
|
14316
|
-
"connectionId": {
|
|
14317
|
-
"type": "string",
|
|
14318
|
-
"description": "Specific room connection ID to bind the renegotiation to"
|
|
14319
|
-
},
|
|
14320
|
-
"sessionDescription": {
|
|
14321
|
-
"type": "object",
|
|
14322
|
-
"properties": {
|
|
14323
|
-
"sdp": {
|
|
14324
|
-
"type": "string",
|
|
14325
|
-
"description": "WebRTC session description payload"
|
|
14326
|
-
},
|
|
14327
|
-
"type": {
|
|
14328
|
-
"type": "string",
|
|
14329
|
-
"enum": [
|
|
14330
|
-
"offer",
|
|
14331
|
-
"answer"
|
|
14332
|
-
],
|
|
14333
|
-
"description": "Session description type"
|
|
14334
|
-
}
|
|
14335
|
-
},
|
|
14336
|
-
"required": [
|
|
14337
|
-
"sdp",
|
|
14338
|
-
"type"
|
|
14339
|
-
]
|
|
14340
|
-
}
|
|
14341
|
-
},
|
|
14342
|
-
"required": [
|
|
14343
|
-
"sessionId",
|
|
14344
|
-
"sessionDescription"
|
|
14345
|
-
]
|
|
14346
|
-
}
|
|
14347
|
-
}
|
|
14348
|
-
}
|
|
14349
|
-
},
|
|
14350
|
-
"responses": {
|
|
14351
|
-
"200": {
|
|
14352
|
-
"description": "Realtime session renegotiated",
|
|
14353
|
-
"content": {
|
|
14354
|
-
"application/json": {
|
|
14355
|
-
"schema": {
|
|
14356
|
-
"type": "object",
|
|
14357
|
-
"properties": {
|
|
14358
|
-
"errorCode": {
|
|
14359
|
-
"type": "string"
|
|
14360
|
-
},
|
|
14361
|
-
"errorDescription": {
|
|
14362
|
-
"type": "string"
|
|
14363
|
-
},
|
|
14364
|
-
"requiresImmediateRenegotiation": {
|
|
14365
|
-
"type": "boolean"
|
|
14366
|
-
},
|
|
14367
|
-
"sessionDescription": {
|
|
14368
|
-
"type": "object",
|
|
14369
|
-
"properties": {
|
|
14370
|
-
"sdp": {
|
|
14371
|
-
"type": "string",
|
|
14372
|
-
"description": "WebRTC session description payload"
|
|
14373
|
-
},
|
|
14374
|
-
"type": {
|
|
14375
|
-
"type": "string",
|
|
14376
|
-
"enum": [
|
|
14377
|
-
"offer",
|
|
14378
|
-
"answer"
|
|
14379
|
-
],
|
|
14380
|
-
"description": "Session description type"
|
|
14381
|
-
}
|
|
14382
|
-
},
|
|
14383
|
-
"required": [
|
|
14384
|
-
"sdp",
|
|
14385
|
-
"type"
|
|
14386
|
-
]
|
|
14387
|
-
},
|
|
14388
|
-
"tracks": {
|
|
14389
|
-
"type": "array",
|
|
14390
|
-
"items": {
|
|
14391
|
-
"type": "object",
|
|
14392
|
-
"properties": {
|
|
14393
|
-
"location": {
|
|
14394
|
-
"type": "string",
|
|
14395
|
-
"enum": [
|
|
14396
|
-
"local",
|
|
14397
|
-
"remote"
|
|
14398
|
-
],
|
|
14399
|
-
"description": "Track direction relative to the caller"
|
|
14400
|
-
},
|
|
14401
|
-
"mid": {
|
|
14402
|
-
"type": "string",
|
|
14403
|
-
"description": "WebRTC media ID"
|
|
14404
|
-
},
|
|
14405
|
-
"sessionId": {
|
|
14406
|
-
"type": "string",
|
|
14407
|
-
"description": "Provider session ID associated with this track"
|
|
14408
|
-
},
|
|
14409
|
-
"trackName": {
|
|
14410
|
-
"type": "string",
|
|
14411
|
-
"description": "Track name used by the provider"
|
|
14412
|
-
},
|
|
14413
|
-
"bidirectionalMediaStream": {
|
|
14414
|
-
"type": "boolean",
|
|
14415
|
-
"description": "Whether the track should be bidirectional"
|
|
14416
|
-
},
|
|
14417
|
-
"kind": {
|
|
14418
|
-
"type": "string",
|
|
14419
|
-
"description": "Track kind reported by the provider"
|
|
14420
|
-
},
|
|
14421
|
-
"simulcast": {
|
|
14422
|
-
"type": "object",
|
|
14423
|
-
"properties": {
|
|
14424
|
-
"preferredRid": {
|
|
14425
|
-
"type": "string"
|
|
14426
|
-
},
|
|
14427
|
-
"priorityOrdering": {
|
|
14428
|
-
"type": "string",
|
|
14429
|
-
"enum": [
|
|
14430
|
-
"none",
|
|
14431
|
-
"asciibetical"
|
|
14432
|
-
]
|
|
14433
|
-
},
|
|
14434
|
-
"ridNotAvailable": {
|
|
14435
|
-
"type": "string",
|
|
14436
|
-
"enum": [
|
|
14437
|
-
"none",
|
|
14438
|
-
"asciibetical"
|
|
14439
|
-
]
|
|
14440
|
-
}
|
|
14441
|
-
},
|
|
14442
|
-
"description": "Optional simulcast preferences"
|
|
14443
|
-
},
|
|
14444
|
-
"errorCode": {
|
|
14445
|
-
"type": "string",
|
|
14446
|
-
"description": "Provider-level error code for this track"
|
|
14447
|
-
},
|
|
14448
|
-
"errorDescription": {
|
|
14449
|
-
"type": "string",
|
|
14450
|
-
"description": "Provider-level error description for this track"
|
|
14451
|
-
}
|
|
14452
|
-
},
|
|
14453
|
-
"required": [
|
|
14454
|
-
"location"
|
|
14455
|
-
]
|
|
14456
|
-
}
|
|
14457
|
-
}
|
|
14458
|
-
}
|
|
14459
|
-
}
|
|
14460
|
-
}
|
|
14461
|
-
}
|
|
14462
|
-
},
|
|
14463
|
-
"400": {
|
|
14464
|
-
"description": "Bad request",
|
|
14465
|
-
"content": {
|
|
14466
|
-
"application/json": {
|
|
14467
|
-
"schema": {
|
|
14468
|
-
"type": "object",
|
|
14469
|
-
"properties": {
|
|
14470
|
-
"code": {
|
|
14471
|
-
"type": "number",
|
|
14472
|
-
"description": "HTTP status code",
|
|
14473
|
-
"example": 400
|
|
14474
|
-
},
|
|
14475
|
-
"message": {
|
|
14476
|
-
"type": "string",
|
|
14477
|
-
"description": "Human-readable message",
|
|
14478
|
-
"example": "Invalid request body"
|
|
14479
|
-
}
|
|
14480
|
-
},
|
|
14481
|
-
"required": [
|
|
14482
|
-
"code",
|
|
14483
|
-
"message"
|
|
14484
|
-
]
|
|
14485
|
-
}
|
|
14486
|
-
}
|
|
14487
|
-
}
|
|
14488
|
-
},
|
|
14489
|
-
"401": {
|
|
14490
|
-
"description": "Authentication required",
|
|
14491
|
-
"content": {
|
|
14492
|
-
"application/json": {
|
|
14493
|
-
"schema": {
|
|
14494
|
-
"type": "object",
|
|
14495
|
-
"properties": {
|
|
14496
|
-
"code": {
|
|
14497
|
-
"type": "number",
|
|
14498
|
-
"description": "HTTP status code",
|
|
14499
|
-
"example": 400
|
|
14500
|
-
},
|
|
14501
|
-
"message": {
|
|
14502
|
-
"type": "string",
|
|
14503
|
-
"description": "Human-readable message",
|
|
14504
|
-
"example": "Invalid request body"
|
|
14505
|
-
}
|
|
14506
|
-
},
|
|
14507
|
-
"required": [
|
|
14508
|
-
"code",
|
|
14509
|
-
"message"
|
|
14510
|
-
]
|
|
14511
|
-
}
|
|
14512
|
-
}
|
|
14513
|
-
}
|
|
14514
|
-
},
|
|
14515
|
-
"403": {
|
|
14516
|
-
"description": "Forbidden",
|
|
14517
|
-
"content": {
|
|
14518
|
-
"application/json": {
|
|
14519
|
-
"schema": {
|
|
14520
|
-
"type": "object",
|
|
14521
|
-
"properties": {
|
|
14522
|
-
"code": {
|
|
14523
|
-
"type": "number",
|
|
14524
|
-
"description": "HTTP status code",
|
|
14525
|
-
"example": 400
|
|
14526
|
-
},
|
|
14527
|
-
"message": {
|
|
14528
|
-
"type": "string",
|
|
14529
|
-
"description": "Human-readable message",
|
|
14530
|
-
"example": "Invalid request body"
|
|
14531
|
-
}
|
|
14532
|
-
},
|
|
14533
|
-
"required": [
|
|
14534
|
-
"code",
|
|
14535
|
-
"message"
|
|
14536
|
-
]
|
|
14537
|
-
}
|
|
14538
|
-
}
|
|
14539
|
-
}
|
|
14540
|
-
},
|
|
14541
|
-
"404": {
|
|
14542
|
-
"description": "Room runtime not found",
|
|
14543
|
-
"content": {
|
|
14544
|
-
"application/json": {
|
|
14545
|
-
"schema": {
|
|
14546
|
-
"type": "object",
|
|
14547
|
-
"properties": {
|
|
14548
|
-
"code": {
|
|
14549
|
-
"type": "number",
|
|
14550
|
-
"description": "HTTP status code",
|
|
14551
|
-
"example": 400
|
|
14552
|
-
},
|
|
14553
|
-
"message": {
|
|
14554
|
-
"type": "string",
|
|
14555
|
-
"description": "Human-readable message",
|
|
14556
|
-
"example": "Invalid request body"
|
|
14557
|
-
}
|
|
14558
|
-
},
|
|
14559
|
-
"required": [
|
|
14560
|
-
"code",
|
|
14561
|
-
"message"
|
|
14562
|
-
]
|
|
14563
|
-
}
|
|
14564
|
-
}
|
|
14565
|
-
}
|
|
14566
|
-
}
|
|
14567
|
-
},
|
|
14568
|
-
"security": [
|
|
14569
|
-
{
|
|
14570
|
-
"userBearerAuth": []
|
|
14571
|
-
}
|
|
14572
|
-
]
|
|
14573
|
-
}
|
|
14574
|
-
},
|
|
14575
|
-
"/api/room/media/realtime/tracks/close": {
|
|
14576
|
-
"put": {
|
|
14577
|
-
"operationId": "closeRoomRealtimeTracks",
|
|
14578
|
-
"tags": [
|
|
14579
|
-
"client"
|
|
14580
|
-
],
|
|
14581
|
-
"summary": "Close room realtime media tracks",
|
|
14582
|
-
"description": "Closes provider tracks for the authenticated room member and optionally unpublishes room media state.",
|
|
14583
|
-
"parameters": [
|
|
14584
|
-
{
|
|
14585
|
-
"schema": {
|
|
14586
|
-
"type": "string",
|
|
14587
|
-
"description": "Room namespace"
|
|
14588
|
-
},
|
|
14589
|
-
"required": true,
|
|
14590
|
-
"description": "Room namespace",
|
|
14591
|
-
"name": "namespace",
|
|
14592
|
-
"in": "query"
|
|
14593
|
-
},
|
|
14594
|
-
{
|
|
14595
|
-
"schema": {
|
|
14596
|
-
"type": "string",
|
|
14597
|
-
"description": "Room ID"
|
|
14598
|
-
},
|
|
14599
|
-
"required": true,
|
|
14600
|
-
"description": "Room ID",
|
|
14601
|
-
"name": "id",
|
|
14602
|
-
"in": "query"
|
|
14603
|
-
}
|
|
14604
|
-
],
|
|
14605
|
-
"requestBody": {
|
|
14606
|
-
"required": true,
|
|
14607
|
-
"content": {
|
|
14608
|
-
"application/json": {
|
|
14609
|
-
"schema": {
|
|
14610
|
-
"type": "object",
|
|
14611
|
-
"properties": {
|
|
14612
|
-
"sessionId": {
|
|
14613
|
-
"type": "string",
|
|
14614
|
-
"description": "Realtime provider session ID"
|
|
14615
|
-
},
|
|
14616
|
-
"connectionId": {
|
|
14617
|
-
"type": "string",
|
|
14618
|
-
"description": "Specific room connection ID to bind the close operation to"
|
|
14619
|
-
},
|
|
14620
|
-
"sessionDescription": {
|
|
14621
|
-
"type": "object",
|
|
14622
|
-
"properties": {
|
|
14623
|
-
"sdp": {
|
|
14624
|
-
"type": "string",
|
|
14625
|
-
"description": "WebRTC session description payload"
|
|
14626
|
-
},
|
|
14627
|
-
"type": {
|
|
14628
|
-
"type": "string",
|
|
14629
|
-
"enum": [
|
|
14630
|
-
"offer",
|
|
14631
|
-
"answer"
|
|
14632
|
-
],
|
|
14633
|
-
"description": "Session description type"
|
|
14634
|
-
}
|
|
14635
|
-
},
|
|
14636
|
-
"required": [
|
|
14637
|
-
"sdp",
|
|
14638
|
-
"type"
|
|
14639
|
-
]
|
|
14640
|
-
},
|
|
14641
|
-
"tracks": {
|
|
14642
|
-
"type": "array",
|
|
14643
|
-
"items": {
|
|
14644
|
-
"type": "object",
|
|
14645
|
-
"properties": {
|
|
14646
|
-
"mid": {
|
|
14647
|
-
"type": "string",
|
|
14648
|
-
"description": "Track MID to close"
|
|
14649
|
-
}
|
|
14650
|
-
},
|
|
14651
|
-
"required": [
|
|
14652
|
-
"mid"
|
|
14653
|
-
]
|
|
14654
|
-
},
|
|
14655
|
-
"minItems": 1,
|
|
14656
|
-
"description": "Tracks to close"
|
|
14657
|
-
},
|
|
14658
|
-
"force": {
|
|
14659
|
-
"type": "boolean",
|
|
14660
|
-
"description": "Force close even if the provider reports the track as active"
|
|
14661
|
-
},
|
|
14662
|
-
"unpublish": {
|
|
14663
|
-
"type": "object",
|
|
14664
|
-
"properties": {
|
|
14665
|
-
"kind": {
|
|
14666
|
-
"type": "string",
|
|
14667
|
-
"enum": [
|
|
14668
|
-
"audio",
|
|
14669
|
-
"video",
|
|
14670
|
-
"screen"
|
|
14671
|
-
]
|
|
14672
|
-
}
|
|
14673
|
-
},
|
|
14674
|
-
"description": "Optional room media state cleanup after closing tracks"
|
|
14675
|
-
}
|
|
14676
|
-
},
|
|
14677
|
-
"required": [
|
|
14678
|
-
"sessionId",
|
|
14679
|
-
"tracks"
|
|
14680
|
-
]
|
|
14681
|
-
}
|
|
14682
|
-
}
|
|
14683
|
-
}
|
|
14684
|
-
},
|
|
14685
|
-
"responses": {
|
|
14686
|
-
"200": {
|
|
14687
|
-
"description": "Realtime tracks closed",
|
|
14688
|
-
"content": {
|
|
14689
|
-
"application/json": {
|
|
14690
|
-
"schema": {
|
|
14691
|
-
"type": "object",
|
|
14692
|
-
"properties": {
|
|
14693
|
-
"errorCode": {
|
|
14694
|
-
"type": "string"
|
|
14695
|
-
},
|
|
14696
|
-
"errorDescription": {
|
|
14697
|
-
"type": "string"
|
|
14698
|
-
},
|
|
14699
|
-
"requiresImmediateRenegotiation": {
|
|
14700
|
-
"type": "boolean"
|
|
14701
|
-
},
|
|
14702
|
-
"sessionDescription": {
|
|
14703
|
-
"type": "object",
|
|
14704
|
-
"properties": {
|
|
14705
|
-
"sdp": {
|
|
14706
|
-
"type": "string",
|
|
14707
|
-
"description": "WebRTC session description payload"
|
|
14708
|
-
},
|
|
14709
|
-
"type": {
|
|
14710
|
-
"type": "string",
|
|
14711
|
-
"enum": [
|
|
14712
|
-
"offer",
|
|
14713
|
-
"answer"
|
|
14714
|
-
],
|
|
14715
|
-
"description": "Session description type"
|
|
14716
|
-
}
|
|
14717
|
-
},
|
|
14718
|
-
"required": [
|
|
14719
|
-
"sdp",
|
|
14720
|
-
"type"
|
|
14721
|
-
]
|
|
14722
|
-
},
|
|
14723
|
-
"tracks": {
|
|
14724
|
-
"type": "array",
|
|
14725
|
-
"items": {
|
|
14726
|
-
"type": "object",
|
|
14727
|
-
"properties": {
|
|
14728
|
-
"location": {
|
|
14729
|
-
"type": "string",
|
|
14730
|
-
"enum": [
|
|
14731
|
-
"local",
|
|
14732
|
-
"remote"
|
|
14733
|
-
],
|
|
14734
|
-
"description": "Track direction relative to the caller"
|
|
14735
|
-
},
|
|
14736
|
-
"mid": {
|
|
14737
|
-
"type": "string",
|
|
14738
|
-
"description": "WebRTC media ID"
|
|
14739
|
-
},
|
|
14740
|
-
"sessionId": {
|
|
14741
|
-
"type": "string",
|
|
14742
|
-
"description": "Provider session ID associated with this track"
|
|
14743
|
-
},
|
|
14744
|
-
"trackName": {
|
|
14745
|
-
"type": "string",
|
|
14746
|
-
"description": "Track name used by the provider"
|
|
14747
|
-
},
|
|
14748
|
-
"bidirectionalMediaStream": {
|
|
14749
|
-
"type": "boolean",
|
|
14750
|
-
"description": "Whether the track should be bidirectional"
|
|
14751
|
-
},
|
|
14752
|
-
"kind": {
|
|
14753
|
-
"type": "string",
|
|
14754
|
-
"description": "Track kind reported by the provider"
|
|
14755
|
-
},
|
|
14756
|
-
"simulcast": {
|
|
14757
|
-
"type": "object",
|
|
14758
|
-
"properties": {
|
|
14759
|
-
"preferredRid": {
|
|
14760
|
-
"type": "string"
|
|
14761
|
-
},
|
|
14762
|
-
"priorityOrdering": {
|
|
14763
|
-
"type": "string",
|
|
14764
|
-
"enum": [
|
|
14765
|
-
"none",
|
|
14766
|
-
"asciibetical"
|
|
14767
|
-
]
|
|
14768
|
-
},
|
|
14769
|
-
"ridNotAvailable": {
|
|
14770
|
-
"type": "string",
|
|
14771
|
-
"enum": [
|
|
14772
|
-
"none",
|
|
14773
|
-
"asciibetical"
|
|
14774
|
-
]
|
|
14775
|
-
}
|
|
14776
|
-
},
|
|
14777
|
-
"description": "Optional simulcast preferences"
|
|
14778
|
-
},
|
|
14779
|
-
"errorCode": {
|
|
14780
|
-
"type": "string",
|
|
14781
|
-
"description": "Provider-level error code for this track"
|
|
14782
|
-
},
|
|
14783
|
-
"errorDescription": {
|
|
14784
|
-
"type": "string",
|
|
14785
|
-
"description": "Provider-level error description for this track"
|
|
14786
|
-
}
|
|
14787
|
-
},
|
|
14788
|
-
"required": [
|
|
14789
|
-
"location"
|
|
14790
|
-
]
|
|
14791
|
-
}
|
|
14792
|
-
}
|
|
14793
|
-
}
|
|
14794
|
-
}
|
|
14795
|
-
}
|
|
14796
|
-
}
|
|
14797
|
-
},
|
|
14798
|
-
"400": {
|
|
14799
|
-
"description": "Bad request",
|
|
14800
|
-
"content": {
|
|
14801
|
-
"application/json": {
|
|
14802
|
-
"schema": {
|
|
14803
|
-
"type": "object",
|
|
14804
|
-
"properties": {
|
|
14805
|
-
"code": {
|
|
14806
|
-
"type": "number",
|
|
14807
|
-
"description": "HTTP status code",
|
|
14808
|
-
"example": 400
|
|
14809
|
-
},
|
|
14810
|
-
"message": {
|
|
14811
|
-
"type": "string",
|
|
14812
|
-
"description": "Human-readable message",
|
|
14813
|
-
"example": "Invalid request body"
|
|
14814
|
-
}
|
|
14815
|
-
},
|
|
14816
|
-
"required": [
|
|
14817
|
-
"code",
|
|
14818
|
-
"message"
|
|
14819
|
-
]
|
|
14820
|
-
}
|
|
14821
|
-
}
|
|
14822
|
-
}
|
|
14823
|
-
},
|
|
14824
|
-
"401": {
|
|
14825
|
-
"description": "Authentication required",
|
|
14826
|
-
"content": {
|
|
14827
|
-
"application/json": {
|
|
14828
|
-
"schema": {
|
|
14829
|
-
"type": "object",
|
|
14830
|
-
"properties": {
|
|
14831
|
-
"code": {
|
|
14832
|
-
"type": "number",
|
|
14833
|
-
"description": "HTTP status code",
|
|
14834
|
-
"example": 400
|
|
14835
|
-
},
|
|
14836
|
-
"message": {
|
|
14837
|
-
"type": "string",
|
|
14838
|
-
"description": "Human-readable message",
|
|
14839
|
-
"example": "Invalid request body"
|
|
14840
|
-
}
|
|
14841
|
-
},
|
|
14842
|
-
"required": [
|
|
14843
|
-
"code",
|
|
14844
|
-
"message"
|
|
14845
|
-
]
|
|
14846
|
-
}
|
|
14847
|
-
}
|
|
14848
|
-
}
|
|
14849
|
-
},
|
|
14850
|
-
"403": {
|
|
14851
|
-
"description": "Forbidden",
|
|
14852
|
-
"content": {
|
|
14853
|
-
"application/json": {
|
|
14854
|
-
"schema": {
|
|
14855
|
-
"type": "object",
|
|
14856
|
-
"properties": {
|
|
14857
|
-
"code": {
|
|
14858
|
-
"type": "number",
|
|
14859
|
-
"description": "HTTP status code",
|
|
14860
|
-
"example": 400
|
|
14861
|
-
},
|
|
14862
|
-
"message": {
|
|
14863
|
-
"type": "string",
|
|
14864
|
-
"description": "Human-readable message",
|
|
14865
|
-
"example": "Invalid request body"
|
|
14866
|
-
}
|
|
14867
|
-
},
|
|
14868
|
-
"required": [
|
|
14869
|
-
"code",
|
|
14870
|
-
"message"
|
|
14871
|
-
]
|
|
14872
|
-
}
|
|
14873
|
-
}
|
|
14874
|
-
}
|
|
14875
|
-
},
|
|
14876
|
-
"404": {
|
|
14877
|
-
"description": "Room runtime not found",
|
|
14878
|
-
"content": {
|
|
14879
|
-
"application/json": {
|
|
14880
|
-
"schema": {
|
|
14881
|
-
"type": "object",
|
|
14882
|
-
"properties": {
|
|
14883
|
-
"code": {
|
|
14884
|
-
"type": "number",
|
|
14885
|
-
"description": "HTTP status code",
|
|
14886
|
-
"example": 400
|
|
14887
|
-
},
|
|
14888
|
-
"message": {
|
|
14889
|
-
"type": "string",
|
|
14890
|
-
"description": "Human-readable message",
|
|
14891
|
-
"example": "Invalid request body"
|
|
14892
|
-
}
|
|
14893
|
-
},
|
|
14894
|
-
"required": [
|
|
14895
|
-
"code",
|
|
14896
|
-
"message"
|
|
14897
|
-
]
|
|
14898
|
-
}
|
|
14899
|
-
}
|
|
14900
|
-
}
|
|
14901
|
-
}
|
|
14902
|
-
},
|
|
14903
|
-
"security": [
|
|
14904
|
-
{
|
|
14905
|
-
"userBearerAuth": []
|
|
14906
|
-
}
|
|
14907
|
-
]
|
|
14908
|
-
}
|
|
14909
|
-
},
|
|
14910
|
-
"/api/room/media/cloudflare_realtimekit/session": {
|
|
14911
|
-
"post": {
|
|
14912
|
-
"operationId": "createRoomCloudflareRealtimeKitSession",
|
|
14913
|
-
"tags": [
|
|
14914
|
-
"client"
|
|
14915
|
-
],
|
|
14916
|
-
"summary": "Create a room Cloudflare RealtimeKit session",
|
|
14917
|
-
"description": "Creates a Cloudflare RealtimeKit session for the authenticated room member.",
|
|
14918
|
-
"parameters": [
|
|
14919
|
-
{
|
|
14920
|
-
"schema": {
|
|
14921
|
-
"type": "string",
|
|
14922
|
-
"description": "Room namespace"
|
|
14923
|
-
},
|
|
14924
|
-
"required": true,
|
|
14925
|
-
"description": "Room namespace",
|
|
14926
|
-
"name": "namespace",
|
|
14927
|
-
"in": "query"
|
|
14928
|
-
},
|
|
14929
|
-
{
|
|
14930
|
-
"schema": {
|
|
14931
|
-
"type": "string",
|
|
14932
|
-
"description": "Room ID"
|
|
14933
|
-
},
|
|
14934
|
-
"required": true,
|
|
14935
|
-
"description": "Room ID",
|
|
14936
|
-
"name": "id",
|
|
14937
|
-
"in": "query"
|
|
14938
|
-
}
|
|
14939
|
-
],
|
|
14940
|
-
"requestBody": {
|
|
14941
|
-
"required": false,
|
|
14942
|
-
"content": {
|
|
14943
|
-
"application/json": {
|
|
14944
|
-
"schema": {
|
|
14945
|
-
"type": "object",
|
|
14946
|
-
"properties": {
|
|
14947
|
-
"connectionId": {
|
|
14948
|
-
"type": "string",
|
|
14949
|
-
"description": "Specific room connection ID to bind the Cloudflare RealtimeKit participant to"
|
|
14950
|
-
},
|
|
14951
|
-
"customParticipantId": {
|
|
14952
|
-
"type": "string",
|
|
14953
|
-
"description": "Optional custom participant identifier for the provisioned RealtimeKit participant"
|
|
14954
|
-
},
|
|
14955
|
-
"name": {
|
|
14956
|
-
"type": "string",
|
|
14957
|
-
"description": "Optional display name for the provisioned RealtimeKit participant"
|
|
14958
|
-
},
|
|
14959
|
-
"picture": {
|
|
14960
|
-
"type": "string",
|
|
14961
|
-
"description": "Optional avatar URL for the provisioned RealtimeKit participant"
|
|
14962
|
-
}
|
|
14963
|
-
}
|
|
14964
|
-
}
|
|
14965
|
-
}
|
|
14966
|
-
}
|
|
14967
|
-
},
|
|
14968
|
-
"responses": {
|
|
14969
|
-
"200": {
|
|
14970
|
-
"description": "Cloudflare RealtimeKit session created",
|
|
14971
|
-
"content": {
|
|
14972
|
-
"application/json": {
|
|
14973
|
-
"schema": {
|
|
14974
|
-
"type": "object",
|
|
14975
|
-
"properties": {
|
|
14976
|
-
"sessionId": {
|
|
14977
|
-
"type": "string",
|
|
14978
|
-
"description": "Cloudflare RealtimeKit participant ID"
|
|
14979
|
-
},
|
|
14980
|
-
"meetingId": {
|
|
14981
|
-
"type": "string",
|
|
14982
|
-
"description": "Cloudflare RealtimeKit meeting ID backing the room session"
|
|
14983
|
-
},
|
|
14984
|
-
"participantId": {
|
|
14985
|
-
"type": "string",
|
|
14986
|
-
"description": "Cloudflare RealtimeKit participant ID"
|
|
14987
|
-
},
|
|
14988
|
-
"authToken": {
|
|
14989
|
-
"type": "string",
|
|
14990
|
-
"description": "RealtimeKit auth token for the provisioned participant"
|
|
14991
|
-
},
|
|
14992
|
-
"presetName": {
|
|
14993
|
-
"type": "string",
|
|
14994
|
-
"description": "RealtimeKit preset used for the provisioned participant"
|
|
14995
|
-
},
|
|
14996
|
-
"connectionId": {
|
|
14997
|
-
"type": "string",
|
|
14998
|
-
"description": "Room connection ID associated with the session"
|
|
14999
|
-
},
|
|
15000
|
-
"reused": {
|
|
15001
|
-
"type": "boolean",
|
|
15002
|
-
"description": "Whether an existing provider participant was reused"
|
|
15003
|
-
}
|
|
15004
|
-
},
|
|
15005
|
-
"required": [
|
|
15006
|
-
"sessionId",
|
|
15007
|
-
"meetingId",
|
|
15008
|
-
"participantId",
|
|
15009
|
-
"authToken"
|
|
15010
|
-
]
|
|
15011
|
-
}
|
|
15012
|
-
}
|
|
15013
|
-
}
|
|
15014
|
-
},
|
|
15015
|
-
"400": {
|
|
15016
|
-
"description": "Bad request",
|
|
15017
|
-
"content": {
|
|
15018
|
-
"application/json": {
|
|
15019
|
-
"schema": {
|
|
15020
|
-
"type": "object",
|
|
15021
|
-
"properties": {
|
|
15022
|
-
"code": {
|
|
15023
|
-
"type": "number",
|
|
15024
|
-
"description": "HTTP status code",
|
|
15025
|
-
"example": 400
|
|
15026
|
-
},
|
|
15027
|
-
"message": {
|
|
15028
|
-
"type": "string",
|
|
15029
|
-
"description": "Human-readable message",
|
|
15030
|
-
"example": "Invalid request body"
|
|
15031
|
-
}
|
|
15032
|
-
},
|
|
15033
|
-
"required": [
|
|
15034
|
-
"code",
|
|
15035
|
-
"message"
|
|
15036
|
-
]
|
|
15037
|
-
}
|
|
15038
|
-
}
|
|
15039
|
-
}
|
|
15040
|
-
},
|
|
15041
|
-
"401": {
|
|
15042
|
-
"description": "Authentication required",
|
|
15043
|
-
"content": {
|
|
15044
|
-
"application/json": {
|
|
15045
|
-
"schema": {
|
|
15046
|
-
"type": "object",
|
|
15047
|
-
"properties": {
|
|
15048
|
-
"code": {
|
|
15049
|
-
"type": "number",
|
|
15050
|
-
"description": "HTTP status code",
|
|
15051
|
-
"example": 400
|
|
15052
|
-
},
|
|
15053
|
-
"message": {
|
|
15054
|
-
"type": "string",
|
|
15055
|
-
"description": "Human-readable message",
|
|
15056
|
-
"example": "Invalid request body"
|
|
15057
|
-
}
|
|
15058
|
-
},
|
|
15059
|
-
"required": [
|
|
15060
|
-
"code",
|
|
15061
|
-
"message"
|
|
15062
|
-
]
|
|
15063
|
-
}
|
|
15064
|
-
}
|
|
15065
|
-
}
|
|
15066
|
-
},
|
|
15067
|
-
"403": {
|
|
15068
|
-
"description": "Forbidden",
|
|
15069
|
-
"content": {
|
|
15070
|
-
"application/json": {
|
|
15071
|
-
"schema": {
|
|
15072
|
-
"type": "object",
|
|
15073
|
-
"properties": {
|
|
15074
|
-
"code": {
|
|
15075
|
-
"type": "number",
|
|
15076
|
-
"description": "HTTP status code",
|
|
15077
|
-
"example": 400
|
|
15078
|
-
},
|
|
15079
|
-
"message": {
|
|
15080
|
-
"type": "string",
|
|
15081
|
-
"description": "Human-readable message",
|
|
15082
|
-
"example": "Invalid request body"
|
|
15083
|
-
}
|
|
15084
|
-
},
|
|
15085
|
-
"required": [
|
|
15086
|
-
"code",
|
|
15087
|
-
"message"
|
|
15088
|
-
]
|
|
15089
|
-
}
|
|
15090
|
-
}
|
|
15091
|
-
}
|
|
15092
|
-
},
|
|
15093
|
-
"404": {
|
|
15094
|
-
"description": "Room runtime not found",
|
|
15095
|
-
"content": {
|
|
15096
|
-
"application/json": {
|
|
15097
|
-
"schema": {
|
|
15098
|
-
"type": "object",
|
|
15099
|
-
"properties": {
|
|
15100
|
-
"code": {
|
|
15101
|
-
"type": "number",
|
|
15102
|
-
"description": "HTTP status code",
|
|
15103
|
-
"example": 400
|
|
15104
|
-
},
|
|
15105
|
-
"message": {
|
|
15106
|
-
"type": "string",
|
|
15107
|
-
"description": "Human-readable message",
|
|
15108
|
-
"example": "Invalid request body"
|
|
15109
|
-
}
|
|
15110
|
-
},
|
|
15111
|
-
"required": [
|
|
15112
|
-
"code",
|
|
15113
|
-
"message"
|
|
15114
|
-
]
|
|
15115
|
-
}
|
|
15116
|
-
}
|
|
15117
|
-
}
|
|
15118
|
-
},
|
|
15119
|
-
"409": {
|
|
15120
|
-
"description": "Conflicting existing published media",
|
|
15121
|
-
"content": {
|
|
15122
|
-
"application/json": {
|
|
15123
|
-
"schema": {
|
|
15124
|
-
"type": "object",
|
|
15125
|
-
"properties": {
|
|
15126
|
-
"code": {
|
|
15127
|
-
"type": "number",
|
|
15128
|
-
"description": "HTTP status code",
|
|
15129
|
-
"example": 400
|
|
15130
|
-
},
|
|
15131
|
-
"message": {
|
|
15132
|
-
"type": "string",
|
|
15133
|
-
"description": "Human-readable message",
|
|
15134
|
-
"example": "Invalid request body"
|
|
15135
|
-
}
|
|
15136
|
-
},
|
|
15137
|
-
"required": [
|
|
15138
|
-
"code",
|
|
15139
|
-
"message"
|
|
15140
|
-
]
|
|
15141
|
-
}
|
|
15142
|
-
}
|
|
15143
|
-
}
|
|
15144
|
-
}
|
|
15145
|
-
},
|
|
15146
|
-
"security": [
|
|
15147
|
-
{
|
|
15148
|
-
"userBearerAuth": []
|
|
15149
|
-
}
|
|
15150
|
-
]
|
|
15151
|
-
}
|
|
15152
|
-
},
|
|
15153
13218
|
"/api/analytics/query": {
|
|
15154
13219
|
"get": {
|
|
15155
13220
|
"operationId": "queryAnalytics",
|