@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.
Files changed (68) hide show
  1. package/admin-build/_app/immutable/chunks/{BN_-k-Ck.js → BDYewzou.js} +1 -1
  2. package/admin-build/_app/immutable/chunks/{qBm6xof8.js → BEM1BeVF.js} +1 -1
  3. package/admin-build/_app/immutable/chunks/{Ff90owjx.js → BYyykAbh.js} +1 -1
  4. package/admin-build/_app/immutable/chunks/{SQVAC3Cv.js → BaUG2TJ-.js} +1 -1
  5. package/admin-build/_app/immutable/chunks/{BvoGcDFV.js → BfpUQYr3.js} +1 -1
  6. package/admin-build/_app/immutable/chunks/{CLHN9MVr.js → BhCO1Fpt.js} +1 -1
  7. package/admin-build/_app/immutable/chunks/{DemDWbs-.js → CIOC1v_q.js} +3 -3
  8. package/admin-build/_app/immutable/chunks/{CrwlCAM0.js → CvczjTXx.js} +1 -1
  9. package/admin-build/_app/immutable/chunks/{DQVP4KC-.js → D1u3u7xu.js} +1 -1
  10. package/admin-build/_app/immutable/chunks/{LL3ulaxa.js → DaXO-sFP.js} +1 -1
  11. package/admin-build/_app/immutable/chunks/{CbfX3ELZ.js → DnpbvAPi.js} +1 -1
  12. package/admin-build/_app/immutable/chunks/{DdvsFblq.js → Dz9cUCuv.js} +1 -1
  13. package/admin-build/_app/immutable/chunks/{DmDTovpg.js → Tea2dBJ8.js} +1 -1
  14. package/admin-build/_app/immutable/chunks/{CR37B8DX.js → ejoEf2I5.js} +1 -1
  15. package/admin-build/_app/immutable/chunks/{CCUxCptE.js → iEyeblJR.js} +1 -1
  16. package/admin-build/_app/immutable/chunks/{Q3vAxeY-.js → qKdzaeX3.js} +1 -1
  17. package/admin-build/_app/immutable/entry/{app.CP83Ni80.js → app.DoUaxnew.js} +2 -2
  18. package/admin-build/_app/immutable/entry/start.MmZh8oBH.js +1 -0
  19. package/admin-build/_app/immutable/nodes/{0.DiRq7puO.js → 0.Dsxi8s7i.js} +1 -1
  20. package/admin-build/_app/immutable/nodes/{1.BFeyKLGT.js → 1.Cp2l-hol.js} +1 -1
  21. package/admin-build/_app/immutable/nodes/{10.zcee7hJx.js → 10.4oY6m8Nz.js} +1 -1
  22. package/admin-build/_app/immutable/nodes/{11.BW7wLs2Y.js → 11.DfcozD4J.js} +1 -1
  23. package/admin-build/_app/immutable/nodes/{12.CxJRlYSd.js → 12.uJgZdCIA.js} +1 -1
  24. package/admin-build/_app/immutable/nodes/{13.pp0F_5hn.js → 13.CaN1kRev.js} +1 -1
  25. package/admin-build/_app/immutable/nodes/{14.t3AfGiGo.js → 14.DQ5xIi3s.js} +1 -1
  26. package/admin-build/_app/immutable/nodes/{15.B3agc7NX.js → 15.B_EkebTJ.js} +1 -1
  27. package/admin-build/_app/immutable/nodes/{16.C4uG2-i8.js → 16.Tko1ZX8-.js} +1 -1
  28. package/admin-build/_app/immutable/nodes/{17.CwGxi1Bn.js → 17.BCmWMJX9.js} +1 -1
  29. package/admin-build/_app/immutable/nodes/{18.CrQyN_gU.js → 18.hmGhl1O2.js} +1 -1
  30. package/admin-build/_app/immutable/nodes/{19.NEPUOXl7.js → 19.D-1infOo.js} +1 -1
  31. package/admin-build/_app/immutable/nodes/{20.DGHO8ipr.js → 20.CY4KKcBL.js} +1 -1
  32. package/admin-build/_app/immutable/nodes/21.B9lbNUQr.js +1 -0
  33. package/admin-build/_app/immutable/nodes/{22.Dri5It7a.js → 22.14Vd7bnt.js} +1 -1
  34. package/admin-build/_app/immutable/nodes/{23.BPQP_Zte.js → 23.Be6jK77o.js} +1 -1
  35. package/admin-build/_app/immutable/nodes/{24.D580FdSS.js → 24.CSTFkr6R.js} +1 -1
  36. package/admin-build/_app/immutable/nodes/{25.BMNPOZwF.js → 25.DRTg8fHc.js} +1 -1
  37. package/admin-build/_app/immutable/nodes/{26.XcpEcbiz.js → 26.DKt-9lwQ.js} +1 -1
  38. package/admin-build/_app/immutable/nodes/{27.C1zHHcYv.js → 27.D5caPu0F.js} +1 -1
  39. package/admin-build/_app/immutable/nodes/{28.CuKzzrY8.js → 28.hJhlnlyY.js} +1 -1
  40. package/admin-build/_app/immutable/nodes/{29.nLpBMXnM.js → 29.CDYBzFyT.js} +1 -1
  41. package/admin-build/_app/immutable/nodes/{3.5G_aseoL.js → 3.DMyKwkGn.js} +1 -1
  42. package/admin-build/_app/immutable/nodes/{30.CQC4nLoU.js → 30.BaHNeEmc.js} +1 -1
  43. package/admin-build/_app/immutable/nodes/{31.Bet8kxOK.js → 31.C6PV5L-2.js} +1 -1
  44. package/admin-build/_app/immutable/nodes/{4.nmJDYJpC.js → 4.9E118Ftm.js} +1 -1
  45. package/admin-build/_app/immutable/nodes/{5.CnbYLG4E.js → 5.D8guAl3v.js} +1 -1
  46. package/admin-build/_app/immutable/nodes/{6.KA01b-3y.js → 6.D1u__DtT.js} +1 -1
  47. package/admin-build/_app/immutable/nodes/{7.CP9fkn1L.js → 7.DWXHnRFf.js} +1 -1
  48. package/admin-build/_app/immutable/nodes/{8.BTzDb---.js → 8.Dojd8krc.js} +1 -1
  49. package/admin-build/_app/immutable/nodes/{9.DkNJg_J6.js → 9.CLtrr0K_.js} +1 -1
  50. package/admin-build/_app/version.json +1 -1
  51. package/admin-build/index.html +7 -7
  52. package/openapi.json +6 -1941
  53. package/package.json +3 -3
  54. package/src/__tests__/openapi-coverage.test.ts +0 -6
  55. package/src/__tests__/room-auth-state-loss.test.ts +6 -0
  56. package/src/__tests__/room-handler-context.test.ts +0 -31
  57. package/src/__tests__/room-rate-limit-scopes.test.ts +1 -5
  58. package/src/__tests__/room-runtime-routing.test.ts +1 -111
  59. package/src/__tests__/smoke-skip-report.test.ts +1 -1
  60. package/src/durable-objects/room-runtime-base.ts +241 -17
  61. package/src/durable-objects/rooms-do.ts +190 -1345
  62. package/src/lib/openapi.ts +1 -4
  63. package/src/routes/room.ts +0 -285
  64. package/src/types.ts +1 -14
  65. package/admin-build/_app/immutable/entry/start.DY6YakU0.js +0 -1
  66. package/admin-build/_app/immutable/nodes/21.UVKBDvp4.js +0 -1
  67. package/src/__tests__/cloudflare-realtime.test.ts +0 -113
  68. package/src/lib/cloudflare-realtime.ts +0 -251
package/openapi.json CHANGED
@@ -137,8 +137,8 @@
137
137
  }
138
138
  }
139
139
  },
140
- "409": {
141
- "description": "Email already registered",
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
- "429": {
167
- "description": "Too many requests",
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
- "403": {
193
- "description": "Forbidden",
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",