Advertisement
ku_

Roblox Voice Docs Internal November 2021 V1 (rgp-integration.simulprod.com/docs/json/v1 Host: voice)

ku_
Dec 5th, 2023
252
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JSON 58.37 KB | None | 0 0
  1. {
  2.     "swagger": "2.0",
  3.     "info": {
  4.         "version": "v1",
  5.         "title": "Voice Api v1"
  6.     },
  7.     "host": "rgp-integration.simulprod.com",
  8.     "schemes": [
  9.         "https"
  10.     ],
  11.     "paths": {
  12.         "/v1/calls/{channelId}/users": {
  13.             "get": {
  14.                 "tags": [
  15.                     "Voice"
  16.                 ],
  17.                 "summary": "Returns a list of the ids for all users active/publishing in a call (except for the user making the request).",
  18.                 "consumes": [],
  19.                 "produces": [
  20.                     "application/json",
  21.                     "text/json"
  22.                 ],
  23.                 "parameters": [
  24.                     {
  25.                         "name": "channelId",
  26.                         "in": "path",
  27.                         "description": "The unique channel Id of the call",
  28.                         "required": true,
  29.                         "type": "string"
  30.                     }
  31.                 ],
  32.                 "responses": {
  33.                     "200": {
  34.                         "description": "OK",
  35.                         "schema": {
  36.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.CallUsersListResponse"
  37.                         }
  38.                     },
  39.                     "401": {
  40.                         "description": "0: Authorization has been denied for this request."
  41.                     }
  42.                 },
  43.                 "properties": {
  44.                     "internal": true,
  45.                     "metricIds": [
  46.                         "Voice:ListCallActiveUsers"
  47.                     ]
  48.                 }
  49.             }
  50.         },
  51.         "/v1/settings": {
  52.             "get": {
  53.                 "tags": [
  54.                     "Voice"
  55.                 ],
  56.                 "summary": "Returns voice chat settings details for the requesting user.",
  57.                 "consumes": [],
  58.                 "produces": [
  59.                     "application/json",
  60.                     "text/json"
  61.                 ],
  62.                 "parameters": [],
  63.                 "responses": {
  64.                     "200": {
  65.                         "description": "",
  66.                         "schema": {
  67.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceSettingsResponse"
  68.                         }
  69.                     },
  70.                     "401": {
  71.                         "description": "0: Authorization has been denied for this request."
  72.                     }
  73.                 },
  74.                 "properties": {
  75.                     "internal": true,
  76.                     "metricIds": [
  77.                         "Voice:GetVoiceSettings"
  78.                     ]
  79.                 }
  80.             }
  81.         },
  82.         "/v1/settings/universe/{universeId}": {
  83.             "get": {
  84.                 "tags": [
  85.                     "Voice"
  86.                 ],
  87.                 "summary": "Returns whether or not the universe/place is enabled for voice",
  88.                 "consumes": [],
  89.                 "produces": [
  90.                     "application/json",
  91.                     "text/json"
  92.                 ],
  93.                 "parameters": [
  94.                     {
  95.                         "name": "universeId",
  96.                         "in": "path",
  97.                         "description": "The id of the universe to check if voice enabled",
  98.                         "required": true,
  99.                         "type": "integer",
  100.                         "format": "int64"
  101.                     },
  102.                     {
  103.                         "name": "placeId",
  104.                         "in": "query",
  105.                         "description": "The optional id of the place to check if voice enabled",
  106.                         "required": false,
  107.                         "type": "integer",
  108.                         "format": "int64"
  109.                     }
  110.                 ],
  111.                 "responses": {
  112.                     "200": {
  113.                         "description": "",
  114.                         "schema": {
  115.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceSettingsUniverseResponse"
  116.                         }
  117.                     },
  118.                     "401": {
  119.                         "description": "0: Authorization has been denied for this request."
  120.                     }
  121.                 },
  122.                 "properties": {
  123.                     "internal": true,
  124.                     "metricIds": [
  125.                         "Voice:GetUniversePlaceVoiceEnabledSettings"
  126.                     ]
  127.                 }
  128.             }
  129.         },
  130.         "/v1/turn/auth": {
  131.             "get": {
  132.                 "tags": [
  133.                     "Turn"
  134.                 ],
  135.                 "summary": "Returns turn server auth details for the requesting user.",
  136.                 "consumes": [],
  137.                 "produces": [
  138.                     "application/json",
  139.                     "text/json"
  140.                 ],
  141.                 "parameters": [],
  142.                 "responses": {
  143.                     "200": {
  144.                         "description": "",
  145.                         "schema": {
  146.                             "$ref": "#/definitions/Roblox.Platform.Voice.TurnServers.TurnServerAuth"
  147.                         }
  148.                     },
  149.                     "401": {
  150.                         "description": "0: Authorization has been denied for this request."
  151.                     }
  152.                 },
  153.                 "properties": {
  154.                     "internal": true,
  155.                     "metricIds": [
  156.                         "Turn:GetTurnServerAuth"
  157.                     ]
  158.                 }
  159.             }
  160.         },
  161.         "/v1/calls/{channelId}/leave": {
  162.             "post": {
  163.                 "tags": [
  164.                     "Voice"
  165.                 ],
  166.                 "summary": "Leave a named voice channel",
  167.                 "consumes": [],
  168.                 "produces": [
  169.                     "application/json",
  170.                     "text/json"
  171.                 ],
  172.                 "parameters": [
  173.                     {
  174.                         "name": "channelId",
  175.                         "in": "path",
  176.                         "description": "",
  177.                         "required": true,
  178.                         "type": "string"
  179.                     }
  180.                 ],
  181.                 "responses": {
  182.                     "200": {
  183.                         "description": "",
  184.                         "schema": {
  185.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  186.                         }
  187.                     },
  188.                     "401": {
  189.                         "description": "0: Authorization has been denied for this request."
  190.                     },
  191.                     "403": {
  192.                         "description": "0: Token Validation Failed"
  193.                     }
  194.                 },
  195.                 "deprecated": true,
  196.                 "properties": {
  197.                     "internal": true,
  198.                     "obsoleteMessage": "Please use /calls/leave",
  199.                     "metricIds": [
  200.                         "Voice:LeaveVoiceCall"
  201.                     ]
  202.                 }
  203.             }
  204.         },
  205.         "/v1/calls/group/{groupId}/join": {
  206.             "post": {
  207.                 "tags": [
  208.                     "Voice"
  209.                 ],
  210.                 "summary": "Join voice call for an internal group Id",
  211.                 "consumes": [
  212.                     "application/json",
  213.                     "text/json",
  214.                     "application/x-www-form-urlencoded"
  215.                 ],
  216.                 "produces": [
  217.                     "application/json",
  218.                     "text/json"
  219.                 ],
  220.                 "parameters": [
  221.                     {
  222.                         "name": "groupId",
  223.                         "in": "path",
  224.                         "description": "",
  225.                         "required": true,
  226.                         "type": "string"
  227.                     },
  228.                     {
  229.                         "name": "requestModel",
  230.                         "in": "body",
  231.                         "description": "{Roblox.Voice.Api.Models.VoiceBaseRequest}\r\n{Roblox.Voice.Api.Models.VoiceBaseRequest}",
  232.                         "required": true,
  233.                         "schema": {
  234.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceBaseRequest"
  235.                         }
  236.                     }
  237.                 ],
  238.                 "responses": {
  239.                     "200": {
  240.                         "description": "{Roblox.Voice.Api.Models.JoinVoiceChannelResponse}",
  241.                         "schema": {
  242.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.JoinVoiceChannelResponse"
  243.                         }
  244.                     },
  245.                     "401": {
  246.                         "description": "0: Authorization has been denied for this request."
  247.                     },
  248.                     "403": {
  249.                         "description": "0: Token Validation Failed"
  250.                     }
  251.                 },
  252.                 "deprecated": true,
  253.                 "properties": {
  254.                     "internal": true,
  255.                     "obsoleteMessage": "Please use /calls/join",
  256.                     "metricIds": [
  257.                         "Voice:JoinVoiceGroupCall"
  258.                     ]
  259.                 }
  260.             }
  261.         },
  262.         "/v1/calls/join": {
  263.             "post": {
  264.                 "tags": [
  265.                     "Voice"
  266.                 ],
  267.                 "summary": "Join voice call from group",
  268.                 "consumes": [
  269.                     "application/json",
  270.                     "text/json",
  271.                     "application/x-www-form-urlencoded"
  272.                 ],
  273.                 "produces": [
  274.                     "application/json",
  275.                     "text/json"
  276.                 ],
  277.                 "parameters": [
  278.                     {
  279.                         "name": "requestModel",
  280.                         "in": "body",
  281.                         "description": "{Roblox.Voice.Api.Models.JoinVoiceCallRequest}",
  282.                         "required": true,
  283.                         "schema": {
  284.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.JoinVoiceCallRequest"
  285.                         }
  286.                     }
  287.                 ],
  288.                 "responses": {
  289.                     "200": {
  290.                         "description": "",
  291.                         "schema": {
  292.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.JoinVoiceChannelResponse"
  293.                         }
  294.                     },
  295.                     "401": {
  296.                         "description": "0: Authorization has been denied for this request."
  297.                     },
  298.                     "403": {
  299.                         "description": "0: Token Validation Failed"
  300.                     }
  301.                 },
  302.                 "properties": {
  303.                     "internal": true,
  304.                     "metricIds": [
  305.                         "Voice:JoinVoiceCall"
  306.                     ]
  307.                 }
  308.             }
  309.         },
  310.         "/v1/calls/leave": {
  311.             "post": {
  312.                 "tags": [
  313.                     "Voice"
  314.                 ],
  315.                 "summary": "Leave voice call for a channel",
  316.                 "consumes": [
  317.                     "application/json",
  318.                     "text/json",
  319.                     "application/x-www-form-urlencoded"
  320.                 ],
  321.                 "produces": [
  322.                     "application/json",
  323.                     "text/json"
  324.                 ],
  325.                 "parameters": [
  326.                     {
  327.                         "name": "requestModel",
  328.                         "in": "body",
  329.                         "description": "",
  330.                         "required": true,
  331.                         "schema": {
  332.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceCallLifecycleRequestBase"
  333.                         }
  334.                     }
  335.                 ],
  336.                 "responses": {
  337.                     "200": {
  338.                         "description": "",
  339.                         "schema": {
  340.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  341.                         }
  342.                     },
  343.                     "401": {
  344.                         "description": "0: Authorization has been denied for this request."
  345.                     },
  346.                     "403": {
  347.                         "description": "0: Token Validation Failed"
  348.                     }
  349.                 },
  350.                 "properties": {
  351.                     "internal": true,
  352.                     "metricIds": [
  353.                         "Voice:LeaveVoiceCall"
  354.                     ]
  355.                 }
  356.             }
  357.         },
  358.         "/v1/calls/publish/pause": {
  359.             "post": {
  360.                 "tags": [
  361.                     "Voice"
  362.                 ],
  363.                 "summary": "Pause publishing voice in an existing voice call",
  364.                 "consumes": [
  365.                     "application/json",
  366.                     "text/json",
  367.                     "application/x-www-form-urlencoded"
  368.                 ],
  369.                 "produces": [
  370.                     "application/json",
  371.                     "text/json"
  372.                 ],
  373.                 "parameters": [
  374.                     {
  375.                         "name": "requestModel",
  376.                         "in": "body",
  377.                         "description": "",
  378.                         "required": true,
  379.                         "schema": {
  380.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceCallLifecycleRequestBase"
  381.                         }
  382.                     }
  383.                 ],
  384.                 "responses": {
  385.                     "200": {
  386.                         "description": "",
  387.                         "schema": {
  388.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  389.                         }
  390.                     },
  391.                     "401": {
  392.                         "description": "0: Authorization has been denied for this request."
  393.                     },
  394.                     "403": {
  395.                         "description": "0: Token Validation Failed"
  396.                     }
  397.                 },
  398.                 "properties": {
  399.                     "internal": true,
  400.                     "metricIds": [
  401.                         "Voice:PausePublishInCall"
  402.                     ]
  403.                 }
  404.             }
  405.         },
  406.         "/v1/calls/publish/resume": {
  407.             "post": {
  408.                 "tags": [
  409.                     "Voice"
  410.                 ],
  411.                 "summary": "Resume publishing voice in an existing voice call",
  412.                 "consumes": [
  413.                     "application/json",
  414.                     "text/json",
  415.                     "application/x-www-form-urlencoded"
  416.                 ],
  417.                 "produces": [
  418.                     "application/json",
  419.                     "text/json"
  420.                 ],
  421.                 "parameters": [
  422.                     {
  423.                         "name": "requestModel",
  424.                         "in": "body",
  425.                         "description": "",
  426.                         "required": true,
  427.                         "schema": {
  428.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceCallLifecycleRequestBase"
  429.                         }
  430.                     }
  431.                 ],
  432.                 "responses": {
  433.                     "200": {
  434.                         "description": "",
  435.                         "schema": {
  436.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  437.                         }
  438.                     },
  439.                     "401": {
  440.                         "description": "0: Authorization has been denied for this request."
  441.                     },
  442.                     "403": {
  443.                         "description": "0: Token Validation Failed"
  444.                     }
  445.                 },
  446.                 "properties": {
  447.                     "internal": true,
  448.                     "metricIds": [
  449.                         "Voice:ResumePublishInCall"
  450.                     ]
  451.                 }
  452.             }
  453.         },
  454.         "/v1/calls/publish/start": {
  455.             "post": {
  456.                 "tags": [
  457.                     "Voice"
  458.                 ],
  459.                 "summary": "Start publishing voice in an existing voice call",
  460.                 "consumes": [
  461.                     "application/json",
  462.                     "text/json",
  463.                     "application/x-www-form-urlencoded"
  464.                 ],
  465.                 "produces": [
  466.                     "application/json",
  467.                     "text/json"
  468.                 ],
  469.                 "parameters": [
  470.                     {
  471.                         "name": "requestModel",
  472.                         "in": "body",
  473.                         "description": "",
  474.                         "required": true,
  475.                         "schema": {
  476.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.PublishInCallRequest"
  477.                         }
  478.                     }
  479.                 ],
  480.                 "responses": {
  481.                     "200": {
  482.                         "description": "",
  483.                         "schema": {
  484.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  485.                         }
  486.                     },
  487.                     "401": {
  488.                         "description": "0: Authorization has been denied for this request."
  489.                     },
  490.                     "403": {
  491.                         "description": "0: Token Validation Failed"
  492.                     }
  493.                 },
  494.                 "properties": {
  495.                     "internal": true,
  496.                     "metricIds": [
  497.                         "Voice:PublishInCall"
  498.                     ]
  499.                 }
  500.             }
  501.         },
  502.         "/v1/calls/publish/trickle": {
  503.             "post": {
  504.                 "tags": [
  505.                     "Voice"
  506.                 ],
  507.                 "summary": "Trickles ICE candidates for a call's publishing peer connection\r\nhttps://webrtcglossary.com/trickle-ice/",
  508.                 "consumes": [
  509.                     "application/json",
  510.                     "text/json",
  511.                     "application/x-www-form-urlencoded"
  512.                 ],
  513.                 "produces": [
  514.                     "application/json",
  515.                     "text/json"
  516.                 ],
  517.                 "parameters": [
  518.                     {
  519.                         "name": "requestModel",
  520.                         "in": "body",
  521.                         "description": "",
  522.                         "required": true,
  523.                         "schema": {
  524.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.TrickleIceRequest"
  525.                         }
  526.                     }
  527.                 ],
  528.                 "responses": {
  529.                     "200": {
  530.                         "description": "",
  531.                         "schema": {
  532.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  533.                         }
  534.                     },
  535.                     "401": {
  536.                         "description": "0: Authorization has been denied for this request."
  537.                     },
  538.                     "403": {
  539.                         "description": "0: Token Validation Failed"
  540.                     }
  541.                 },
  542.                 "properties": {
  543.                     "internal": true,
  544.                     "metricIds": [
  545.                         "Voice:CallTrickleIce"
  546.                     ]
  547.                 }
  548.             }
  549.         },
  550.         "/v1/calls/publish/trickle/end": {
  551.             "post": {
  552.                 "tags": [
  553.                     "Voice"
  554.                 ],
  555.                 "summary": "Finish the trickle ICE candidate process\r\nhttps://webrtcglossary.com/trickle-ice/",
  556.                 "consumes": [
  557.                     "application/json",
  558.                     "text/json",
  559.                     "application/x-www-form-urlencoded"
  560.                 ],
  561.                 "produces": [
  562.                     "application/json",
  563.                     "text/json"
  564.                 ],
  565.                 "parameters": [
  566.                     {
  567.                         "name": "requestModel",
  568.                         "in": "body",
  569.                         "description": "",
  570.                         "required": true,
  571.                         "schema": {
  572.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.VoiceCallLifecycleRequestBase"
  573.                         }
  574.                     }
  575.                 ],
  576.                 "responses": {
  577.                     "200": {
  578.                         "description": "",
  579.                         "schema": {
  580.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  581.                         }
  582.                     },
  583.                     "401": {
  584.                         "description": "0: Authorization has been denied for this request."
  585.                     },
  586.                     "403": {
  587.                         "description": "0: Token Validation Failed"
  588.                     }
  589.                 },
  590.                 "properties": {
  591.                     "internal": true,
  592.                     "metricIds": [
  593.                         "Voice:FinishCallTrickleIce"
  594.                     ]
  595.                 }
  596.             }
  597.         },
  598.         "/v1/calls/subscriptions/cancel": {
  599.             "post": {
  600.                 "tags": [
  601.                     "Voice"
  602.                 ],
  603.                 "summary": "Cancel (and close) an user's subscription to a voice feed of another user",
  604.                 "consumes": [
  605.                     "application/json",
  606.                     "text/json",
  607.                     "application/x-www-form-urlencoded"
  608.                 ],
  609.                 "produces": [
  610.                     "application/json",
  611.                     "text/json"
  612.                 ],
  613.                 "parameters": [
  614.                     {
  615.                         "name": "requestModel",
  616.                         "in": "body",
  617.                         "description": "",
  618.                         "required": true,
  619.                         "schema": {
  620.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.SubscriptionsRequest"
  621.                         }
  622.                     }
  623.                 ],
  624.                 "responses": {
  625.                     "200": {
  626.                         "description": "",
  627.                         "schema": {
  628.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseSubscriptionsResponse"
  629.                         }
  630.                     },
  631.                     "401": {
  632.                         "description": "0: Authorization has been denied for this request."
  633.                     },
  634.                     "403": {
  635.                         "description": "0: Token Validation Failed"
  636.                     }
  637.                 },
  638.                 "properties": {
  639.                     "internal": true,
  640.                     "metricIds": [
  641.                         "Voice:CancelSubscriptions"
  642.                     ]
  643.                 }
  644.             }
  645.         },
  646.         "/v1/calls/subscriptions/complete": {
  647.             "post": {
  648.                 "tags": [
  649.                     "Voice"
  650.                 ],
  651.                 "summary": "Completes an user's subscription to a voice feed of another user",
  652.                 "consumes": [
  653.                     "application/json",
  654.                     "text/json",
  655.                     "application/x-www-form-urlencoded"
  656.                 ],
  657.                 "produces": [
  658.                     "application/json",
  659.                     "text/json"
  660.                 ],
  661.                 "parameters": [
  662.                     {
  663.                         "name": "requestModel",
  664.                         "in": "body",
  665.                         "description": "",
  666.                         "required": true,
  667.                         "schema": {
  668.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.CompleteSubscriptionsRequest"
  669.                         }
  670.                     }
  671.                 ],
  672.                 "responses": {
  673.                     "200": {
  674.                         "description": "",
  675.                         "schema": {
  676.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseSubscriptionsResponse"
  677.                         }
  678.                     },
  679.                     "401": {
  680.                         "description": "0: Authorization has been denied for this request."
  681.                     },
  682.                     "403": {
  683.                         "description": "0: Token Validation Failed"
  684.                     }
  685.                 },
  686.                 "properties": {
  687.                     "internal": true,
  688.                     "metricIds": [
  689.                         "Voice:CompleteSubscriptions"
  690.                     ]
  691.                 }
  692.             }
  693.         },
  694.         "/v1/calls/subscriptions/pause": {
  695.             "post": {
  696.                 "tags": [
  697.                     "Voice"
  698.                 ],
  699.                 "summary": "Pause an user's subscription to a voice feed of another user",
  700.                 "consumes": [
  701.                     "application/json",
  702.                     "text/json",
  703.                     "application/x-www-form-urlencoded"
  704.                 ],
  705.                 "produces": [
  706.                     "application/json",
  707.                     "text/json"
  708.                 ],
  709.                 "parameters": [
  710.                     {
  711.                         "name": "requestModel",
  712.                         "in": "body",
  713.                         "description": "",
  714.                         "required": true,
  715.                         "schema": {
  716.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.SubscriptionsRequest"
  717.                         }
  718.                     }
  719.                 ],
  720.                 "responses": {
  721.                     "200": {
  722.                         "description": "",
  723.                         "schema": {
  724.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseSubscriptionsResponse"
  725.                         }
  726.                     },
  727.                     "401": {
  728.                         "description": "0: Authorization has been denied for this request."
  729.                     },
  730.                     "403": {
  731.                         "description": "0: Token Validation Failed"
  732.                     }
  733.                 },
  734.                 "properties": {
  735.                     "internal": true,
  736.                     "metricIds": [
  737.                         "Voice:PauseSubscriptions"
  738.                     ]
  739.                 }
  740.             }
  741.         },
  742.         "/v1/calls/subscriptions/resume": {
  743.             "post": {
  744.                 "tags": [
  745.                     "Voice"
  746.                 ],
  747.                 "summary": "Resume an user's subscription to a voice feed of another user",
  748.                 "consumes": [
  749.                     "application/json",
  750.                     "text/json",
  751.                     "application/x-www-form-urlencoded"
  752.                 ],
  753.                 "produces": [
  754.                     "application/json",
  755.                     "text/json"
  756.                 ],
  757.                 "parameters": [
  758.                     {
  759.                         "name": "requestModel",
  760.                         "in": "body",
  761.                         "description": "",
  762.                         "required": true,
  763.                         "schema": {
  764.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.SubscriptionsRequest"
  765.                         }
  766.                     }
  767.                 ],
  768.                 "responses": {
  769.                     "200": {
  770.                         "description": "",
  771.                         "schema": {
  772.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseSubscriptionsResponse"
  773.                         }
  774.                     },
  775.                     "401": {
  776.                         "description": "0: Authorization has been denied for this request."
  777.                     },
  778.                     "403": {
  779.                         "description": "0: Token Validation Failed"
  780.                     }
  781.                 },
  782.                 "properties": {
  783.                     "internal": true,
  784.                     "metricIds": [
  785.                         "Voice:ResumeSubscriptions"
  786.                     ]
  787.                 }
  788.             }
  789.         },
  790.         "/v1/calls/subscriptions/start": {
  791.             "post": {
  792.                 "tags": [
  793.                     "Voice"
  794.                 ],
  795.                 "summary": "Initiates an user's subscription to a voice feed of another user",
  796.                 "consumes": [
  797.                     "application/json",
  798.                     "text/json",
  799.                     "application/x-www-form-urlencoded"
  800.                 ],
  801.                 "produces": [
  802.                     "application/json",
  803.                     "text/json"
  804.                 ],
  805.                 "parameters": [
  806.                     {
  807.                         "name": "requestModel",
  808.                         "in": "body",
  809.                         "description": "",
  810.                         "required": true,
  811.                         "schema": {
  812.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.SubscriptionsRequest"
  813.                         }
  814.                     }
  815.                 ],
  816.                 "responses": {
  817.                     "200": {
  818.                         "description": "",
  819.                         "schema": {
  820.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseSubscriptionsResponse"
  821.                         }
  822.                     },
  823.                     "401": {
  824.                         "description": "0: Authorization has been denied for this request."
  825.                     },
  826.                     "403": {
  827.                         "description": "0: Token Validation Failed"
  828.                     }
  829.                 },
  830.                 "properties": {
  831.                     "internal": true,
  832.                     "metricIds": [
  833.                         "Voice:InitiateSubscriptions"
  834.                     ]
  835.                 }
  836.             }
  837.         },
  838.         "/v1/calls/subscriptions/trickle": {
  839.             "post": {
  840.                 "tags": [
  841.                     "Voice"
  842.                 ],
  843.                 "summary": "Trickles ICE candidates for a subscription's peer connection\r\nhttps://webrtcglossary.com/trickle-ice/",
  844.                 "consumes": [
  845.                     "application/json",
  846.                     "text/json",
  847.                     "application/x-www-form-urlencoded"
  848.                 ],
  849.                 "produces": [
  850.                     "application/json",
  851.                     "text/json"
  852.                 ],
  853.                 "parameters": [
  854.                     {
  855.                         "name": "requestModel",
  856.                         "in": "body",
  857.                         "description": "",
  858.                         "required": true,
  859.                         "schema": {
  860.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.SubscriptionTrickleIceRequest"
  861.                         }
  862.                     }
  863.                 ],
  864.                 "responses": {
  865.                     "200": {
  866.                         "description": "",
  867.                         "schema": {
  868.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  869.                         }
  870.                     },
  871.                     "401": {
  872.                         "description": "0: Authorization has been denied for this request."
  873.                     },
  874.                     "403": {
  875.                         "description": "0: Token Validation Failed"
  876.                     }
  877.                 },
  878.                 "properties": {
  879.                     "internal": true,
  880.                     "metricIds": [
  881.                         "Voice:SubscriptionTrickleIce"
  882.                     ]
  883.                 }
  884.             }
  885.         },
  886.         "/v1/calls/subscriptions/trickle/end": {
  887.             "post": {
  888.                 "tags": [
  889.                     "Voice"
  890.                 ],
  891.                 "summary": "Finish the trickle ICE candidate process.\r\nhttps://webrtcglossary.com/trickle-ice/",
  892.                 "consumes": [
  893.                     "application/json",
  894.                     "text/json",
  895.                     "application/x-www-form-urlencoded"
  896.                 ],
  897.                 "produces": [
  898.                     "application/json",
  899.                     "text/json"
  900.                 ],
  901.                 "parameters": [
  902.                     {
  903.                         "name": "requestModel",
  904.                         "in": "body",
  905.                         "description": "",
  906.                         "required": true,
  907.                         "schema": {
  908.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.SubscriptionTrickleIceRequest"
  909.                         }
  910.                     }
  911.                 ],
  912.                 "responses": {
  913.                     "200": {
  914.                         "description": "",
  915.                         "schema": {
  916.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  917.                         }
  918.                     },
  919.                     "401": {
  920.                         "description": "0: Authorization has been denied for this request."
  921.                     },
  922.                     "403": {
  923.                         "description": "0: Token Validation Failed"
  924.                     }
  925.                 },
  926.                 "properties": {
  927.                     "internal": true,
  928.                     "metricIds": [
  929.                         "Voice:FinishSubscriptionTrickleIce"
  930.                     ]
  931.                 }
  932.             }
  933.         },
  934.         "/v1/clientlog": {
  935.             "post": {
  936.                 "tags": [
  937.                     "Voice"
  938.                 ],
  939.                 "summary": "Log a debug message from the client.\r\nTHIS IS NOT A LONG TERM SOLUTION AND WILL BE REMOVED BEFORE GOING INTO PRODUCTION!",
  940.                 "consumes": [
  941.                     "application/json",
  942.                     "text/json",
  943.                     "application/x-www-form-urlencoded"
  944.                 ],
  945.                 "produces": [
  946.                     "application/json",
  947.                     "text/json"
  948.                 ],
  949.                 "parameters": [
  950.                     {
  951.                         "name": "requestModel",
  952.                         "in": "body",
  953.                         "description": "",
  954.                         "required": true,
  955.                         "schema": {
  956.                             "$ref": "#/definitions/Roblox.Voice.Api.ClientLogRequest"
  957.                         }
  958.                     }
  959.                 ],
  960.                 "responses": {
  961.                     "200": {
  962.                         "description": "{Roblox.Voice.Api.Models.BaseStatusResponse}",
  963.                         "schema": {
  964.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  965.                         }
  966.                     },
  967.                     "401": {
  968.                         "description": "0: Authorization has been denied for this request."
  969.                     },
  970.                     "403": {
  971.                         "description": "0: Token Validation Failed"
  972.                     }
  973.                 },
  974.                 "properties": {
  975.                     "internal": true,
  976.                     "metricIds": [
  977.                         "Voice:ClientLog"
  978.                     ]
  979.                 }
  980.             }
  981.         },
  982.         "/v1/groups": {
  983.             "post": {
  984.                 "tags": [
  985.                     "Voice"
  986.                 ],
  987.                 "summary": "Create voice group for internal use",
  988.                 "consumes": [],
  989.                 "produces": [
  990.                     "application/json",
  991.                     "text/json"
  992.                 ],
  993.                 "parameters": [],
  994.                 "responses": {
  995.                     "200": {
  996.                         "description": "{Roblox.Voice.Api.Models.CreateGroupResponse}",
  997.                         "schema": {
  998.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.CreateGroupResponse"
  999.                         }
  1000.                     },
  1001.                     "401": {
  1002.                         "description": "0: Authorization has been denied for this request."
  1003.                     },
  1004.                     "403": {
  1005.                         "description": "0: Token Validation Failed"
  1006.                     }
  1007.                 },
  1008.                 "properties": {
  1009.                     "internal": true,
  1010.                     "metricIds": [
  1011.                         "Voice:CreateGroup"
  1012.                     ]
  1013.                 }
  1014.             }
  1015.         },
  1016.         "/v1/groups/bulk": {
  1017.             "post": {
  1018.                 "tags": [
  1019.                     "Voice"
  1020.                 ],
  1021.                 "summary": "Create multiple voice groups for internal use",
  1022.                 "consumes": [
  1023.                     "application/json",
  1024.                     "text/json",
  1025.                     "application/x-www-form-urlencoded"
  1026.                 ],
  1027.                 "produces": [
  1028.                     "application/json",
  1029.                     "text/json"
  1030.                 ],
  1031.                 "parameters": [
  1032.                     {
  1033.                         "name": "requestModel",
  1034.                         "in": "body",
  1035.                         "description": "",
  1036.                         "required": true,
  1037.                         "schema": {
  1038.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BulkCreateGroupsRequest"
  1039.                         }
  1040.                     }
  1041.                 ],
  1042.                 "responses": {
  1043.                     "200": {
  1044.                         "description": "{Roblox.Voice.Api.Models.BaseStatusResponse}",
  1045.                         "schema": {
  1046.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.BaseStatusResponse"
  1047.                         }
  1048.                     },
  1049.                     "401": {
  1050.                         "description": "0: Authorization has been denied for this request."
  1051.                     },
  1052.                     "403": {
  1053.                         "description": "0: Token Validation Failed"
  1054.                     }
  1055.                 },
  1056.                 "properties": {
  1057.                     "internal": true,
  1058.                     "metricIds": [
  1059.                         "Voice:BulkCreateGroups"
  1060.                     ]
  1061.                 }
  1062.             }
  1063.         },
  1064.         "/v1/settings/user-opt-in": {
  1065.             "post": {
  1066.                 "tags": [
  1067.                     "Voice"
  1068.                 ],
  1069.                 "summary": "Update whether a user has opted into voice chat or not.",
  1070.                 "consumes": [
  1071.                     "application/json",
  1072.                     "text/json",
  1073.                     "application/x-www-form-urlencoded"
  1074.                 ],
  1075.                 "produces": [
  1076.                     "application/json",
  1077.                     "text/json"
  1078.                 ],
  1079.                 "parameters": [
  1080.                     {
  1081.                         "name": "requestModel",
  1082.                         "in": "body",
  1083.                         "description": "{Roblox.Voice.Api.Models.UpdateUsersVoiceChatPermissionRequest}",
  1084.                         "required": true,
  1085.                         "schema": {
  1086.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.UpdateUsersVoiceChatPermissionRequest"
  1087.                         }
  1088.                     }
  1089.                 ],
  1090.                 "responses": {
  1091.                     "200": {
  1092.                         "description": "",
  1093.                         "schema": {
  1094.                             "$ref": "#/definitions/Roblox.Voice.Api.Models.UpdateUsersVoiceChatPermissionResponse"
  1095.                         }
  1096.                     },
  1097.                     "401": {
  1098.                         "description": "0: Authorization has been denied for this request."
  1099.                     },
  1100.                     "403": {
  1101.                         "description": "0: Token Validation Failed"
  1102.                     }
  1103.                 },
  1104.                 "properties": {
  1105.                     "internal": true,
  1106.                     "metricIds": [
  1107.                         "Voice:UpdateUserVoiceChatPermission"
  1108.                     ]
  1109.                 }
  1110.             }
  1111.         }
  1112.     },
  1113.     "definitions": {
  1114.         "Roblox.Platform.Voice.TurnServers.TurnServerAuth": {
  1115.             "type": "object",
  1116.             "properties": {
  1117.                 "uris": {
  1118.                     "type": "array",
  1119.                     "items": {
  1120.                         "type": "string"
  1121.                     }
  1122.                 },
  1123.                 "username": {
  1124.                     "type": "string"
  1125.                 },
  1126.                 "password": {
  1127.                     "type": "string"
  1128.                 },
  1129.                 "ttl": {
  1130.                     "format": "int32",
  1131.                     "type": "integer"
  1132.                 }
  1133.             }
  1134.         },
  1135.         "Roblox.Voice.Api.Models.VoiceSettingsResponse": {
  1136.             "description": "Response model for voice settings associated with the user",
  1137.             "type": "object",
  1138.             "properties": {
  1139.                 "isVoiceEnabled": {
  1140.                     "description": "Gets or sets a value indicating whether this user can use voice chat feature",
  1141.                     "type": "boolean"
  1142.                 },
  1143.                 "isUserOptIn": {
  1144.                     "description": "Gets or sets a value indicating whether this user has opt-in to voice chat",
  1145.                     "type": "boolean"
  1146.                 },
  1147.                 "isUserEligible": {
  1148.                     "description": "Gets or sets a value indicating whether this user is eligible for voice chat",
  1149.                     "type": "boolean"
  1150.                 }
  1151.             }
  1152.         },
  1153.         "Roblox.Voice.Api.Models.VoiceSettingsUniverseResponse": {
  1154.             "description": "Response model for voice settings associated with a universe/place",
  1155.             "type": "object",
  1156.             "properties": {
  1157.                 "isUniverseEnabledForVoice": {
  1158.                     "description": "Whether or not the universe is enabled for voice",
  1159.                     "type": "boolean"
  1160.                 },
  1161.                 "isPlaceEnabledForVoice": {
  1162.                     "description": "Whether or not the place is enabled for voice",
  1163.                     "type": "boolean"
  1164.                 }
  1165.             }
  1166.         },
  1167.         "Roblox.Voice.Api.Models.UpdateUsersVoiceChatPermissionRequest": {
  1168.             "description": "Request model for updating whether a user has opted into voice chat or not.",
  1169.             "type": "object",
  1170.             "properties": {
  1171.                 "isUserOptIn": {
  1172.                     "description": "Gets or sets a boolean indicating whether the user opts-in to voice chat feature.",
  1173.                     "type": "boolean"
  1174.                 }
  1175.             }
  1176.         },
  1177.         "Roblox.Voice.Api.Models.UpdateUsersVoiceChatPermissionResponse": {
  1178.             "description": "Response model for updating whether a user has opted into voice chat or not.",
  1179.             "type": "object",
  1180.             "properties": {
  1181.                 "isUserOptIn": {
  1182.                     "description": "Gets or sets a boolean indicating whether the user opts-in to voice chat feature.",
  1183.                     "type": "boolean"
  1184.                 }
  1185.             }
  1186.         },
  1187.         "Roblox.Voice.Api.Models.JoinVoiceCallRequest": {
  1188.             "description": "Request model to join voice call for a chat conversation",
  1189.             "type": "object",
  1190.             "properties": {
  1191.                 "callReferenceId": {
  1192.                     "description": "Gets or sets unique id of the joined call",
  1193.                     "type": "string"
  1194.                 },
  1195.                 "type": {
  1196.                     "description": "Gets or sets the type of joined call",
  1197.                     "type": "string"
  1198.                 },
  1199.                 "sessionId": {
  1200.                     "description": "Gets or sets unique id of the joined call",
  1201.                     "maxLength": 65,
  1202.                     "minLength": 0,
  1203.                     "type": "string"
  1204.                 }
  1205.             }
  1206.         },
  1207.         "Roblox.Voice.Api.Models.JoinVoiceChannelResponse": {
  1208.             "description": "response model for try join voice channel request",
  1209.             "type": "object",
  1210.             "properties": {
  1211.                 "channelId": {
  1212.                     "description": "Gets or sets unique id of the joined call",
  1213.                     "type": "string"
  1214.                 }
  1215.             }
  1216.         },
  1217.         "Roblox.Voice.Api.Models.VoiceCallLifecycleRequestBase": {
  1218.             "description": "Request model to start publishing to voice call",
  1219.             "type": "object",
  1220.             "properties": {
  1221.                 "channelId": {
  1222.                     "description": "Gets or sets unique id of the joined call",
  1223.                     "type": "string"
  1224.                 },
  1225.                 "sessionId": {
  1226.                     "description": "Gets or sets unique id of the joined call",
  1227.                     "maxLength": 65,
  1228.                     "minLength": 0,
  1229.                     "type": "string"
  1230.                 }
  1231.             }
  1232.         },
  1233.         "Roblox.Voice.Api.Models.BaseStatusResponse": {
  1234.             "description": "base response model for voice apis",
  1235.             "type": "object",
  1236.             "properties": {
  1237.                 "status": {
  1238.                     "description": "Gets or sets status of response",
  1239.                     "enum": [
  1240.                         "Success"
  1241.                     ],
  1242.                     "type": "string"
  1243.                 }
  1244.             }
  1245.         },
  1246.         "Roblox.Voice.Api.Models.PublishInCallRequest": {
  1247.             "description": "Request model to start publishing to voice call",
  1248.             "type": "object",
  1249.             "properties": {
  1250.                 "offerSdp": {
  1251.                     "description": "Gets or sets sdp offer to start publishing",
  1252.                     "type": "string"
  1253.                 },
  1254.                 "isMuted": {
  1255.                     "description": "Gets or sets a value indicating whether to start as muted or not",
  1256.                     "type": "boolean"
  1257.                 },
  1258.                 "channelId": {
  1259.                     "description": "Gets or sets unique id of the joined call",
  1260.                     "type": "string"
  1261.                 },
  1262.                 "sessionId": {
  1263.                     "description": "Gets or sets unique id of the joined call",
  1264.                     "maxLength": 65,
  1265.                     "minLength": 0,
  1266.                     "type": "string"
  1267.                 }
  1268.             }
  1269.         },
  1270.         "Roblox.Voice.Api.Models.CallUsersListResponse": {
  1271.             "description": "Response model for users in voice call",
  1272.             "type": "object",
  1273.             "properties": {
  1274.                 "channelId": {
  1275.                     "description": "Gets or sets the unique id of the call",
  1276.                     "type": "string"
  1277.                 },
  1278.                 "ownState": {
  1279.                     "$ref": "#/definitions/Roblox.Voice.Api.CallParticipantState",
  1280.                     "description": "Gets or sets the requesting user's state in the channel"
  1281.                 },
  1282.                 "publishers": {
  1283.                     "description": "Gets or sets the user Id",
  1284.                     "type": "array",
  1285.                     "items": {
  1286.                         "$ref": "#/definitions/Roblox.Platform.Voice.CallPublisherInfo"
  1287.                     }
  1288.                 }
  1289.             }
  1290.         },
  1291.         "Roblox.Voice.Api.CallParticipantState": {
  1292.             "description": "Wraps a call participant's state",
  1293.             "type": "object",
  1294.             "properties": {
  1295.                 "isMuted": {
  1296.                     "description": "Gets or sets if the user is muted",
  1297.                     "type": "boolean"
  1298.                 }
  1299.             }
  1300.         },
  1301.         "Roblox.Platform.Voice.CallPublisherInfo": {
  1302.             "type": "object",
  1303.             "properties": {
  1304.                 "userId": {
  1305.                     "format": "int64",
  1306.                     "type": "integer"
  1307.                 },
  1308.                 "feedReferenceId": {
  1309.                     "format": "int64",
  1310.                     "type": "integer"
  1311.                 },
  1312.                 "isMuted": {
  1313.                     "type": "boolean"
  1314.                 }
  1315.             }
  1316.         },
  1317.         "Roblox.Voice.Api.Models.TrickleIceRequest": {
  1318.             "description": "Request model for Trickle ICE request for a completing a subscription/peer connection",
  1319.             "type": "object",
  1320.             "properties": {
  1321.                 "candidates": {
  1322.                     "description": "Gets or sets Web-RTC ICE candidates",
  1323.                     "type": "array",
  1324.                     "items": {
  1325.                         "$ref": "#/definitions/Roblox.Platform.Voice.IceCandidate"
  1326.                     }
  1327.                 },
  1328.                 "isLast": {
  1329.                     "description": "Gets or sets a value indicating whether this is the last candidate.\r\nThis allows combining the last candidate trickle request with signaling trickle end.",
  1330.                     "type": "boolean"
  1331.                 },
  1332.                 "channelId": {
  1333.                     "description": "Gets or sets unique id of the joined call",
  1334.                     "type": "string"
  1335.                 },
  1336.                 "sessionId": {
  1337.                     "description": "Gets or sets unique id of the joined call",
  1338.                     "maxLength": 65,
  1339.                     "minLength": 0,
  1340.                     "type": "string"
  1341.                 }
  1342.             }
  1343.         },
  1344.         "Roblox.Platform.Voice.IceCandidate": {
  1345.             "type": "object",
  1346.             "properties": {
  1347.                 "sdpMid": {
  1348.                     "type": "string"
  1349.                 },
  1350.                 "sdpMLineIndex": {
  1351.                     "format": "int32",
  1352.                     "type": "integer"
  1353.                 },
  1354.                 "candidate": {
  1355.                     "type": "string"
  1356.                 }
  1357.             }
  1358.         },
  1359.         "Roblox.Voice.Api.Models.SubscriptionsRequest": {
  1360.             "description": "Request model for user feed subscription operations",
  1361.             "type": "object",
  1362.             "properties": {
  1363.                 "subscribedUsers": {
  1364.                     "description": "Gets or sets the publisher infos for all users to be subscribed by the subscription request",
  1365.                     "type": "array",
  1366.                     "items": {
  1367.                         "$ref": "#/definitions/Roblox.Voice.Api.Models.CallPublisherInfoRequest"
  1368.                     }
  1369.                 },
  1370.                 "channelId": {
  1371.                     "description": "Gets or sets unique id of the joined call",
  1372.                     "type": "string"
  1373.                 },
  1374.                 "sessionId": {
  1375.                     "description": "Gets or sets unique id of the joined call",
  1376.                     "maxLength": 65,
  1377.                     "minLength": 0,
  1378.                     "type": "string"
  1379.                 }
  1380.             }
  1381.         },
  1382.         "Roblox.Voice.Api.Models.CallPublisherInfoRequest": {
  1383.             "description": "Request model for a call publisher's details, does not include the publishing state (muted/unmuted)",
  1384.             "type": "object",
  1385.             "properties": {
  1386.                 "userId": {
  1387.                     "format": "int64",
  1388.                     "description": "Gets or sets the user Id",
  1389.                     "type": "integer"
  1390.                 },
  1391.                 "feedReferenceId": {
  1392.                     "format": "int64",
  1393.                     "description": "Gets or sets the unique identifier for a publisher's feed (timestamp user finished publishing handshake)\r\nThis is used to identify the latest feed associated with a publisher",
  1394.                     "type": "integer"
  1395.                 }
  1396.             }
  1397.         },
  1398.         "Roblox.Voice.Api.Models.BaseSubscriptionsResponse": {
  1399.             "description": "Base Response model for subscription operations",
  1400.             "type": "object",
  1401.             "properties": {
  1402.                 "channelId": {
  1403.                     "description": "Gets or sets unique id of the joined call",
  1404.                     "type": "string"
  1405.                 },
  1406.                 "failures": {
  1407.                     "description": "Gets or sets the reason, for each publisher the subscription operation failed",
  1408.                     "type": "object",
  1409.                     "additionalProperties": {
  1410.                         "type": "string"
  1411.                     }
  1412.                 }
  1413.             }
  1414.         },
  1415.         "Roblox.Voice.Api.Models.CompleteSubscriptionsRequest": {
  1416.             "description": "Request model to complete subscribing to user feeds in voice call",
  1417.             "type": "object",
  1418.             "properties": {
  1419.                 "sdpAnswersList": {
  1420.                     "description": "Gets or sets publisher userIds to subscribe to",
  1421.                     "type": "array",
  1422.                     "items": {
  1423.                         "$ref": "#/definitions/Roblox.Voice.Api.Models.CallPublisherSdpRequest"
  1424.                     }
  1425.                 },
  1426.                 "channelId": {
  1427.                     "description": "Gets or sets unique id of the joined call",
  1428.                     "type": "string"
  1429.                 },
  1430.                 "sessionId": {
  1431.                     "description": "Gets or sets unique id of the joined call",
  1432.                     "maxLength": 65,
  1433.                     "minLength": 0,
  1434.                     "type": "string"
  1435.                 }
  1436.             }
  1437.         },
  1438.         "Roblox.Voice.Api.Models.CallPublisherSdpRequest": {
  1439.             "description": "Request model for a call publisher's details, does not include the publishing state (muted/unmuted)",
  1440.             "type": "object",
  1441.             "properties": {
  1442.                 "publisher": {
  1443.                     "$ref": "#/definitions/Roblox.Voice.Api.Models.CallPublisherInfoRequest",
  1444.                     "description": "Gets or sets the publisher's info"
  1445.                 },
  1446.                 "sdp": {
  1447.                     "description": "Gets or sets an sdp message representing either an offer from or an answer to the publisher.",
  1448.                     "type": "string"
  1449.                 }
  1450.             }
  1451.         },
  1452.         "Roblox.Voice.Api.Models.SubscriptionTrickleIceRequest": {
  1453.             "description": "Request model for Trickle",
  1454.             "type": "object",
  1455.             "properties": {
  1456.                 "subscribedUser": {
  1457.                     "$ref": "#/definitions/Roblox.Voice.Api.Models.CallPublisherInfoRequest",
  1458.                     "description": "Gets or sets the publisher info for the user being subscribed to"
  1459.                 },
  1460.                 "candidates": {
  1461.                     "description": "Gets or sets Web-RTC ICE candidates",
  1462.                     "type": "array",
  1463.                     "items": {
  1464.                         "$ref": "#/definitions/Roblox.Platform.Voice.IceCandidate"
  1465.                     }
  1466.                 },
  1467.                 "isLast": {
  1468.                     "description": "Gets or sets a value indicating whether this is the last candidate.\r\nThis allows combining the last candidate trickle request with signaling trickle end.",
  1469.                     "type": "boolean"
  1470.                 },
  1471.                 "channelId": {
  1472.                     "description": "Gets or sets unique id of the joined call",
  1473.                     "type": "string"
  1474.                 },
  1475.                 "sessionId": {
  1476.                     "description": "Gets or sets unique id of the joined call",
  1477.                     "maxLength": 65,
  1478.                     "minLength": 0,
  1479.                     "type": "string"
  1480.                 }
  1481.             }
  1482.         },
  1483.         "Roblox.Voice.Api.Models.CreateGroupResponse": {
  1484.             "description": "The response model for the CreateGroup endpoint",
  1485.             "type": "object",
  1486.             "properties": {
  1487.                 "channelIdentifier": {
  1488.                     "description": "Gets or sets the channel identifier",
  1489.                     "type": "string"
  1490.                 }
  1491.             }
  1492.         },
  1493.         "Roblox.Voice.Api.Models.BulkCreateGroupsRequest": {
  1494.             "description": "Request for creating group channels in bulk",
  1495.             "type": "object",
  1496.             "properties": {
  1497.                 "groupIds": {
  1498.                     "description": "Gets or sets the group ids to create.",
  1499.                     "type": "array",
  1500.                     "items": {
  1501.                         "type": "string"
  1502.                     }
  1503.                 }
  1504.             }
  1505.         },
  1506.         "Roblox.Voice.Api.ClientLogRequest": {
  1507.             "description": "Holds a client log message to be stored in the server logs",
  1508.             "type": "object",
  1509.             "properties": {
  1510.                 "messages": {
  1511.                     "description": "Gets or sets the logs messages.",
  1512.                     "type": "array",
  1513.                     "items": {
  1514.                         "$ref": "#/definitions/Roblox.Voice.ClientLogMessage"
  1515.                     }
  1516.                 }
  1517.             }
  1518.         },
  1519.         "Roblox.Voice.ClientLogMessage": {
  1520.             "description": "Wraps a single log message from the client",
  1521.             "type": "object",
  1522.             "properties": {
  1523.                 "isError": {
  1524.                     "description": "Gets or sets a value indicating whether this is a client-side error level log. All other logs will be treated as info level.",
  1525.                     "type": "boolean"
  1526.                 },
  1527.                 "message": {
  1528.                     "description": "Gets or sets the logs message content.",
  1529.                     "type": "string"
  1530.                 }
  1531.             }
  1532.         },
  1533.         "Roblox.Voice.Api.Models.VoiceBaseRequest": {
  1534.             "description": "Base request class for VoiceController",
  1535.             "type": "object",
  1536.             "properties": {
  1537.                 "sessionId": {
  1538.                     "description": "Gets or sets unique id of the joined call",
  1539.                     "maxLength": 65,
  1540.                     "minLength": 0,
  1541.                     "type": "string"
  1542.                 }
  1543.             }
  1544.         }
  1545.     }
  1546. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement