APIRoom 管理 APIgetRoom情報の取得delRoom強制終了delConnection強制退室スキーマRoomInfoIDStringAPI docs by RedoclyRICOH Live Streaming REST API: Room管理 API (v1)Download OpenAPI specification:DownloadRICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。本ページは Room 管理 API の仕様について記載します。共通仕様API の認証/認可に失敗した場合、ステータスコード 401 のレスポンスが返却されますRoom 管理 APIRoom情報の取得 パラメータで指定したclient_idとroom_idに一致するRoom情報を返しますRoom の type が "p2p" または "p2p_turn" の時は、録画に対応しないため recording_status 要素は省略されますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDroom_idrequiredstring Room IDquery Parametersenvstring (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可Responses200 RoomInfoオブジェクトclient_idとroom_idで指定されたRoom及び、そのRoom内のConnectionの情報を返します404 指定したclient_idとroom_idに対応するRoomが存在しませんget/clients/{client_id}/rooms/{room_id}v1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/rooms/{room_id} Response samples 200404Content typeapplication/jsonCopy Expand all Collapse all {"client_id": "string","room_id": "string","room_spec": {"type": "sfu","max_connections": 1,"media_control": {"bitrate_reservation_mbps": 10},"recording": {"recording_on_start": false,"composition_recording": {"enabled": false,"format": "mp4","video": {"resolution": "auto","max_bitrate_kbps": "auto"},"audio": {"codec": "aac"}}},"classification_label": "default"},"connections": [{"connection_id": "string","meta": { }}],"recording_status": {"in_recording": true}}Room強制終了 Roomに入室していたConnectionを全て切断させてRoomを強制的に終了しますRoomに入室していたConnectionのClientSDKは53002 ConnectionClosedByApplicationでクローズしますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDroom_idrequiredstring Room IDquery Parametersenvstring (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可Responses204 強制終了の受付け成功ボディは空です404 対象Roomに1Connectionも入室していませんdelete/clients/{client_id}/rooms/{room_id}v1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/rooms/{room_id} Response samples 404Content typeapplication/jsonCopy Expand all Collapse all {"error_id": "not_found","message": "string","options": { }}Connection強制退室 ConnectionをRoomから退室させます対象ConnectionのClientSDKは53002 ConnectionClosedByApplicationでクローズしますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDroom_idrequiredstring Room IDconnection_idrequiredstring Connection IDquery Parametersenvstring (LSEnv) Enum: "prod" "dev" 操作対象の環境。複数指定不可Responses204 強制退室の受付け成功ボディは空です404 対象Roomに対象Connectionが入室していませんdelete/clients/{client_id}/rooms/{room_id}/connections/{connection_id}v1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/rooms/{room_id}/connections/{connection_id} Response samples 404Content typeapplication/jsonCopy Expand all Collapse all {"error_id": "not_found","message": "string","options": { }}RoomInfoclient_idrequiredstring parameterで指定したclient_idroom_idrequiredstring parameterで指定したroom_idroom_specrequiredobject (RoomSpec) 入室する Room の仕様同時に同じ Room に入室する Connection は同じ RoomSpec が指定されていなければなりませんconnectionsrequiredArray of objects (Connection) recording_statusobject (RecordingStatus) Roomの録画に関する状態を格納するオブジェクトCopy Expand all Collapse all {"client_id": "string","room_id": "string","room_spec": {"type": "sfu","max_connections": 1,"media_control": {"bitrate_reservation_mbps": 10},"recording": {"recording_on_start": false,"composition_recording": {"enabled": false,"format": "mp4","video": {"resolution": "auto","max_bitrate_kbps": "auto"},"audio": {"codec": "aac"}}},"classification_label": "default"},"connections": [{"connection_id": "string","meta": { }}],"recording_status": {"in_recording": true}}IDStringstring (IDString) ^[a-zA-Z0-9.%+^_"`{|}~<>\\\\-]{1,255}$ 1 文字以上 255 文字以下ASCII以下の文字のみ許可英数字次の記号: .%+^_"`{|}~<>\-Copy"string" const __redoc_state = {"menu":{"activeItemIdx":-1},"spec":{"data":{"openapi":"3.0.2","info":{"title":"RICOH Live Streaming REST API: Room管理 API","version":"v1","description":"RICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。\n\n本ページは Room 管理 API の仕様について記載します。\n\n### 共通仕様\n- API の認証/認可に失敗した場合、ステータスコード 401 のレスポンスが返却されます\n"},"servers":[{"url":"https://api.livestreaming.mw.smart-integration.ricoh.com/v1","description":"v1 Endpoint"}],"x-tagGroups":[{"name":"API","tags":["api_room_management"]},{"name":"スキーマ","tags":["room_info","id_string"]}],"tags":[{"name":"api_room_management","x-displayName":"Room 管理 API"},{"name":"api_room_recording","x-displayName":"Room 録画 API"},{"name":"room_info","x-displayName":"RoomInfo","description":""},{"name":"connection","x-displayName":"Connection","description":""},{"name":"recording_status","x-displayName":"RecordingStatus","description":""},{"name":"id_string","x-displayName":"IDString","description":""}],"paths":{"/clients/{client_id}/rooms/{room_id}":{"get":{"summary":"Room情報の取得","description":"- パラメータで指定したclient_idとroom_idに一致するRoom情報を返します\n- Room の type が \"p2p\" または \"p2p_turn\" の時は、録画に対応しないため recording_status 要素は省略されます\n","tags":["api_room_management"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"},{"$ref":"#/components/parameters/room_id"},{"$ref":"#/components/parameters/env"}],"responses":{"200":{"description":"RoomInfoオブジェクト\n- client_idとroom_idで指定されたRoom及び、そのRoom内のConnectionの情報を返します\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RoomInfo"}}}},"404":{"description":"指定したclient_idとroom_idに対応するRoomが存在しません","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["not_found"]}}}]}}}}}},"delete":{"summary":"Room強制終了","description":"- Roomに入室していたConnectionを全て切断させてRoomを強制的に終了します\n- Roomに入室していたConnectionのClientSDKは53002 ConnectionClosedByApplicationでクローズします\n","tags":["api_room_management"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"},{"$ref":"#/components/parameters/room_id"},{"$ref":"#/components/parameters/env"}],"responses":{"204":{"description":"強制終了の受付け成功\n- ボディは空です\n"},"404":{"description":"対象Roomに1Connectionも入室していません","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["not_found"]}}}]}}}}}}},"/clients/{client_id}/rooms/{room_id}/connections/{connection_id}":{"delete":{"summary":"Connection強制退室","description":"- ConnectionをRoomから退室させます\n- 対象ConnectionのClientSDKは53002 ConnectionClosedByApplicationでクローズします\n","tags":["api_room_management"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"},{"$ref":"#/components/parameters/room_id"},{"$ref":"#/components/parameters/connection_id"},{"$ref":"#/components/parameters/env"}],"responses":{"204":{"description":"強制退室の受付け成功\n- ボディは空です\n"},"404":{"description":"対象Roomに対象Connectionが入室していません","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Error"},{"type":"object","properties":{"error_id":{"type":"string","enum":["not_found"]}}}]}}}}}}}},"components":{"schemas":{"IDString":{"type":"string","pattern":"^[a-zA-Z0-9.%+^_\"`{|}~<>\\\\\\\\-]{1,255}$","description":"- 1 文字以上 255 文字以下\n- ASCII\n- 以下の文字のみ許可\n - 英数字\n - 次の記号: ``.%+^_\"`{|}~<>\\-``\n"},"RoomInfo":{"type":"object","description":"- RoomとRoom内のコネクションに対する情報を格納した構造体\n- p2pまたはp2p_turnを指定したRoomは録画に対応していないため、recording_statusは省略されます\n- room_specは、Connect時に要素が省略された場合、デフォルト値で補完されます\n","required":["client_id","room_id","room_spec","connections"],"properties":{"client_id":{"type":"string","description":"parameterで指定したclient_id"},"room_id":{"type":"string","format":"IDString","description":"parameterで指定したroom_id"},"room_spec":{"$ref":"#/components/schemas/RoomSpec"},"connections":{"type":"array","items":{"$ref":"#/components/schemas/Connection"}},"recording_status":{"$ref":"#/components/schemas/RecordingStatus"}}},"Connection":{"type":"object","description":"- そのRoomに接続しているConnectionの情報\n","required":["connection_id","meta"],"properties":{"connection_id":{"type":"string","format":"IDString","description":"そのConnectionが接続時に指定したconnection_id"},"meta":{"type":"object","default":{},"description":"- アプリケーションフロントエンドでアプリ自身が生成したConnection Metadataを格納するObject\n - すべてのkeyがIDStringである必要があります\n - keyは最大 32 個まで格納できます\n - valueはJSON にエンコードされて 0 文字以上 1024 文字以下となるUTF-8でエンコードできる全ての文字が使用できます\n"}}},"RecordingStatus":{"description":"- Roomの録画に関する状態を格納するオブジェクト\n","type":"object","required":["in_recording"],"properties":{"in_recording":{"type":"boolean","description":"- そのRoomが録画中ならtrue、録画停止中ならfalseが格納されます\n"}}},"LSEnv":{"type":"string","enum":["prod","dev"],"description":"- Live Streaming の環境種別\n - prod: プロダクション環境\n - dev: 開発環境\n"},"RoomType":{"type":"string","enum":["sfu","sfu_large","p2p","p2p_turn"],"description":"- Room の種類\n - sfu\n - SFURoom 型接続\n - ある程度の人数での双方向会議向けです\n - sfu_large\n - 大規模イベント向けの SFURoom 型接続\n - 送信可能な Client 数に制限がありますが、1Room あたりの接続可能 Client 数が増えます\n - p2p\n - P2PRoom 型接続\n - 1 対 1 など少人数でのコミュニケーション向けです\n - p2p_turn\n - TURN サーバーを利用する P2PRoom 型接続\n - Room 型 p2p と比べて TURN サーバが利用可能できるため、Client が接続できる可能性が向上します\n"},"MaxConnections":{"title":"最大接続数 (sfu_large以外)","type":"integer","minimum":1,"maximum":50,"description":"- RoomSpec.type に sfu_large 以外を設定した場合の Room に入室できる最大 Connection 数\n- 互換性維持のため 1~10000 の範囲で指定可能ですが、サービス内部では上限 50 接続に丸められます\n"},"MaxConnectionsLarge":{"title":"最大接続数 (sfu_large)","type":"integer","minimum":1,"maximum":300,"description":"- RoomSpec.type に sfu_large を設定した場合の Room に入室できる最大 Connection 数\n"},"MediaControl":{"type":"object","description":"- Room 全体に対するメディア制御設定\n- type が \"sfu\" または \"sfu_large\" の時のみ有効\n - 指定を省略した場合 `{\"bitrate_reservation_mbps\": 10}` を指定したのと同じ扱いになります\n- type が \"p2p\" または \"p2p_turn\" の時は、Room の最大帯域はブラウザ間の帯域制御に依存し、指定値は無視されます\n","properties":{"bitrate_reservation_mbps":{"type":"integer","minimum":1,"maximum":250,"default":10,"description":"- Room ごとに利用可能な帯域幅の最大値を Mbps 単位で指定\n- Room の利用帯域幅は、すべての接続の送信と受信の合計値であり、各接続が利用する帯域は、合計が bitrate_reservation_mbps の設定内に収まるように調整されます\n"}}},"RoomSpecRecording":{"title":"RoomSpecRecording","type":"object","default":{"recording_on_start":false,"composition_recording":{"enabled":false,"format":"mp4","video":{"resolution":"auto","max_bitrate_kbps":"auto"},"audio":{"codec":"aac"}}},"description":"- β 機能\n- Room 全体に対する録画設定\n- type が \"sfu\" または \"sfu_large\" の時のみ有効\n - RoomSpecRecording 全体を省略することも可能です。その場合、録画は行われません\n- type が \"p2p\" または \"p2p_turn\" の時は録画をサポートしないため、指定値が無視されます\n- 現状の制約\n - 録画を実行する場合、 storage を aws_s3 で設定することが必須になります\n","required":["storage"],"properties":{"recording_on_start":{"type":"boolean","default":false,"description":"- Room 開始時に録画を有効にするかどうかの設定\n"},"storage":{"type":"string","enum":["aws_s3"],"description":"- 録画データを保存するストレージの設定\n- 事前にクライアントアプリ設定 API で保存先のストレージやクレデンシャルの設定を行っている必要があります\n- 値\n - aws_s3: お客様の AWS の S3 バケットに保存します\n"},"composition_recording":{"type":"object","default":{"enabled":false,"format":"mp4","video":{"resolution":"auto","max_bitrate_kbps":"auto"},"audio":{"codec":"aac"}},"required":["enabled"],"description":"- 合成録画ファイルに対する設定\n- 省略した場合、 合成ファイルは作成されません\n- type が \"sfu\" または \"sfu_large\" の時のみ有効\n- type が \"p2p\" または \"p2p_turn\" の時は録画をサポートしないため、設定は無視されます\n- 合成対象のファイルにビデオが含まれるものがない場合は、音声のみの合成であっても、合成に失敗します\n- 合成録画ファイルの映像コーデックは VP9 形式で固定です\n","properties":{"enabled":{"type":"boolean","description":"合成処理するのであれば `true` を指定"},"format":{"type":"string","enum":["mp4"],"default":"mp4","description":"- メディアファイルのフォーマット\n- 値\n - mp4: MP4 形式\n"},"video":{"type":"object","description":"映像設定","properties":{"resolution":{"type":"string","enum":["4k","2k","fhd","hd","equi_3840","equi_1920","equi_1024","equi_640","auto","`${number}x${number}`"],"default":"auto","description":"- プリセットの名称、または数値を指定して設定可能\n- プリセットの名称を指定\n - 4k: 4K 解像度 (3840x2160)\n - 2k: 2K 解像度 (2560x1440)\n - fhd: FullHD 解像度 (1920x1080)\n - hd: HD解像度 (1280x720)\n - equi_3840: 360 映像の解像度 (3840x1920)\n - equi_1920: 360 映像の解像度 (1920x960)\n - equi_1024: 360 映像の解像度 (1024x512)\n - equi_640: 360 映像の解像度 (640x320)\n - auto: 自動設定\n- 数値を指定\n - `{width}x{height}` の形式で指定\n - width/height の値は 16 以上 3840 以下の 4 の倍数\n - 例: 1920x1080\n- auto 設定について\n - 合成対象の video が 1 つの場合: video の解像度の値\n - 合成対象の video が複数の場合: 2560x1440\n"},"max_bitrate_kbps":{"oneOf":[{"type":"string","enum":["auto"]},{"type":"integer"}],"minimum":100,"maximum":2000,"default":"auto","description":"- 合成録画ファイルの video の最大ビットレート\n- プリセットの名称、または数値を指定して設定可能\n- プリセットの名称を指定\n - auto: 自動設定\n- 数値を指定\n - 100 以上 2000 以下\n- auto 設定について\n - 合成対象の video が1つの場合: video のビットレートの値\n - 合成対象の video が複数の場合: 2000\n"}}},"audio":{"type":"object","description":"音声設定","properties":{"codec":{"type":"string","enum":["aac","opus"],"default":"aac","description":"- 音声コーデック設定\n- 値\n - aac: AAC 形式\n - opus: OPUS 形式\n"}}}}}}},"RoomSpec":{"type":"object","required":["type"],"description":"- 入室する Room の仕様\n- 同時に同じ Room に入室する Connection は同じ RoomSpec が指定されていなければなりません\n","properties":{"type":{"$ref":"#/components/schemas/RoomType"},"max_connections":{"oneOf":[{"$ref":"#/components/schemas/MaxConnections"},{"$ref":"#/components/schemas/MaxConnectionsLarge"}]},"media_control":{"$ref":"#/components/schemas/MediaControl"},"recording":{"$ref":"#/components/schemas/RoomSpecRecording"},"classification_label":{"type":"string","format":"IDString","default":"default","description":"- 課金分類ラベル\n"}}},"Error":{"type":"object","required":["error_id"],"properties":{"error_id":{"type":"string","description":"- エラーの種類を識別する ID\n"},"message":{"type":"string","description":"- エラーの内容を記述した開発者向けのメッセージ\n- バージョンアップによってテキストの内容が変更される可能性があるため、これに依存した処理を実装してはいけません\n"},"options":{"type":"object","description":"- エラーの補助情報\n- 内容は API および error_id によって異なります\n"}}}},"parameters":{"client_id":{"in":"path","name":"client_id","schema":{"type":"string"},"required":true,"description":"- Client ID\n"},"room_id":{"in":"path","name":"room_id","schema":{"type":"string"},"required":true,"description":"- Room ID\n"},"connection_id":{"in":"path","name":"connection_id","schema":{"type":"string"},"required":true,"description":"- Connection ID\n"},"env":{"in":"query","name":"env","schema":{"$ref":"#/components/schemas/LSEnv","default":"prod"},"description":"操作対象の環境。複数指定不可\n","required":false}},"securitySchemes":{"ClientBasic":{"type":"http","scheme":"basic","description":"Client ID を username、Client Secretを password にした Basic 認証"}}}}},"searchIndex":{"store":["tag/api_room_management","tag/api_room_management/paths/~1clients~1{client_id}~1rooms~1{room_id}/get","tag/api_room_management/paths/~1clients~1{client_id}~1rooms~1{room_id}/delete","tag/api_room_management/paths/~1clients~1{client_id}~1rooms~1{room_id}~1connections~1{connection_id}/delete","tag/room_info","tag/id_string"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,0.292,1,0.049,2,1.019]],["description/0",[]],["title/1",[0,0.492]],["description/1",[0,0.265,1,0.118,3,0.925,4,0.925,5,0.925,6,0.925,7,0.925,8,0.618]],["title/2",[0,0.492]],["description/2",[1,0.098,8,0.98,9,1.466,10,1.466,11,0.98]],["title/3",[12,1.716]],["description/3",[1,0.098,11,0.98,13,1.466,14,1.466,15,1.466]],["title/4",[16,1.716]],["description/4",[1,0.09,17,1.254,18,1.876]],["title/5",[19,1.716]],["description/5",[1,0.09,17,1.254,20,1.876]]],"invertedIndex":[["",{"_index":1,"title":{"0":{}},"description":{"1":{},"2":{},"3":{},"4":{},"5":{}}}],["api",{"_index":2,"title":{"0":{}},"description":{}}],["client_idとroom_idに一致するroom",{"_index":3,"title":{},"description":{"1":{}}}],["clients/{client_id}/rooms/{room_id",{"_index":8,"title":{},"description":{"1":{},"2":{}}}],["clients/{client_id}/rooms/{room_id}/connections/{connection_id",{"_index":15,"title":{},"description":{"3":{}}}],["connect",{"_index":12,"title":{"3":{}},"description":{}}],["connectionclosedbyappl",{"_index":11,"title":{},"description":{"2":{},"3":{}}}],["connectionのclientsdkは53002",{"_index":14,"title":{},"description":{"3":{}}}],["connectionをroom",{"_index":13,"title":{},"description":{"3":{}}}],["idstr",{"_index":19,"title":{"5":{}},"description":{}}],["p2p",{"_index":5,"title":{},"description":{"1":{}}}],["p2p_turn",{"_index":6,"title":{},"description":{"1":{}}}],["recording_statu",{"_index":7,"title":{},"description":{"1":{}}}],["room",{"_index":0,"title":{"0":{},"1":{},"2":{}},"description":{"1":{}}}],["roominfo",{"_index":16,"title":{"4":{}},"description":{}}],["roomに入室していたconnectionのclientsdkは53002",{"_index":10,"title":{},"description":{"2":{}}}],["roomに入室していたconnectionを全て切断させてroom",{"_index":9,"title":{},"description":{"2":{}}}],["schemadefinit",{"_index":17,"title":{},"description":{"4":{},"5":{}}}],["schemaref=\"#/components/schemas/idstr",{"_index":20,"title":{},"description":{"5":{}}}],["schemaref=\"#/components/schemas/roominfo",{"_index":18,"title":{},"description":{"4":{}}}],["type",{"_index":4,"title":{},"description":{"1":{}}}]],"pipeline":[]}},"options":{}}; var container = document.getElementById('redoc'); Redoc.hydrate(__redoc_state, container);