APIアクティビティ Webhook 設定 APIpostアクティビティ Webhook 設定登録getアクティビティ Webhook 設定取得delアクティビティ Webhook 設定リセットスキーマActivityWebhookVerificationRequestWebhookVerificationResponseIDStringAPI docs by RedoclyRICOH Live Streaming REST API: アクティビティ API (v1)Download OpenAPI specification:DownloadRICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。本ページはアクティビティ API の仕様について記載します。アクティビティとは、RICOH Live Streaming で発生したイベントのクライアントアプリに対する表現形式であり、本 API を利用することでクライアントアプリは Webhook によるアクティビティの通知を受けることができます。共通仕様REST API の認証/認可に失敗した場合、ステータスコード 401 のレスポンスが返却されますWebhook 設定登録時にクライアントアプリにより設定された Webhook URL の検証Webhook 設定の登録時には指定された Webhook の URL が正当なクライアントアプリのものであることを検証するため以下のようなフローを実行します。RICOH Live Streaming は Webhook 登録リクエストを受け取ると webhook_url の URL に対して Webhook URL の検証リクエストを送信します。クライアントアプリはこれに対して所定のレスポンスを返却することで、 webhook_url が正当なクライアントアプリの Webhook URL だと証明する必要がありますアクティビティ Webhook 設定登録 > Callbacks > Webhook URL の検証 に記載された仕様に従ってこの処理の実装が必要ですWebhook 通知時に RICOH Live Streaming から送られた Webhook メッセージの検証Webhook の URL に対して通知されたメッセージが RICOH Live Streaming からのものであることをクライアントアプリが検証することが可能です。RICOH Live Streaming Webhook 通知時に所定の方法で作成された署名を X-RICOH-LS-Signature ヘッダに付与して送信しますクライアントアプリはこの署名を検証し、RICOH Live Streaming から送られた通知であることを検証できますアクティビティ Webhook 設定登録 > Callbacks > Activity Webhook の通知 に記載された仕様にしたがってこの処理を実装する事が可能ですWebhook 通知のリトライLive Streaming からクライアントアプリへの Webhook リクエストで ネットワークエラー、リクエストタイムアウト (30 秒)、または 500 系のエラーが発生した場合、以下の戦略に基づいてリトライを行います。前回のエラーからそれぞれ、5 秒後, 10 秒後, 20 秒後, 40 秒後にリトライし、成功した時点で終了します上記の 4 回リトライしても成功しない場合はその Webhook 通知を諦めますアクティビティ Webhook 設定 APIアクティビティ Webhook 設定登録 アクティビティ発生時にクライアントアプリ通知される Webhook の URL を設定しますRICOH Live Streaming はこのリクエストを受け付けると、webhook_url の URL に対して、[Callbacks] の [Webhook URL の検証] に記載する POST リクエストを送出しますクライアントアプリケーションはこのリクエストを受けたら [Webhook URL の検証] に記載された所定のレスポンスを返す必要がありますRICOH Live Streaming はこのレスポンスを受けて検証に成功すれば Webhook 設定の登録を受け付けますすでに Webhook 設定が登録済みだった場合、既存の設定は上書きされますAuthorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDRequest Body schema: application/jsonアクティビティ Webhook 設定を更新するための WebhookConfig オブジェクトwebhook_urlrequiredstring <= 255 characters RICOH Live Streaming からの Webhook 通知を受けるクライアントアプリの WebAPI の URLhttps:// から開始している必要があり、すなわちクライアントアプリの Web API は HTTPS に対応おり、信頼された認証局によって発行された証明書が利用されていることResponses200 作成された WebhookConfig オブジェクト400 リクエストボディ不正、または、クライアントアプリに対する Webhook Verification Request に失敗したerror_id の値invalid_parameter: リクエストボディのパラメータの不正、options のキーに不正だったプロパティ名が入るverification_failed: クライアントアプリに対する Webhook Verification Request に失敗、options に Webhook Verification Request のエラー情報が入る Callbacks postWebhook URL の検証postWebhook メッセージの通知post/clients/{client_id}/activity/webhook/registerv1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/activity/webhook/register Request samples PayloadContent typeapplication/jsonCopy{"webhook_url": "string"} Response samples 200400Content typeapplication/jsonCopy{"webhook_url": "string"} Callback payload samples CallbackPOST: Webhook URL の検証POST: Webhook メッセージの通知POST: Webhook URL の検証Content typeapplication/jsonCopy{"type": "webhook.verification","challenge": "string"}アクティビティ Webhook 設定取得 Authorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDResponses200 WebhookConfig オブジェクト404 Webhook 設定が未登録get/clients/{client_id}/activity/webhookv1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/activity/webhook Response samples 200Content typeapplication/jsonCopy{"webhook_url": "string"}アクティビティ Webhook 設定リセット Authorizations:ClientBasicpath Parametersclient_idrequiredstring Client IDResponses204 リセット成功404 Webhook 設定が未登録delete/clients/{client_id}/activity/webhookv1 Endpointhttps://api.livestreaming.mw.smart-integration.ricoh.com/v1/clients/{client_id}/activity/webhookActivity One of ActivityRecordingCompletedActivityRecordingFailedactivity_idrequiredstring アクティビティを一意に識別する IDenvrequiredstring Enum: "prod" "dev" アクティビティの発生した環境created_atrequiredstring
アクティビティが生成された時刻ISO8601 形式typerequiredstring Value: "recording.completed" 録画の完了を示すアクティビティ種別 recording.completeddatarequiredobject outputs: 録画ファイル/合成ファイルの出力情報ExampleActivityRecordingCompletedActivityRecordingFailedActivityRecordingCompletedCopy Expand all Collapse all {"activity_id": "string","env": "prod","created_at": "2019-08-24T14:15:22Z","type": "recording.completed","data": {"recording_id": "string","outputs": {"connection_recordings": [{"room_id": "string","recording_id": "string","connection_id": "string","exists_since": "2019-08-24T14:15:22Z","exists_until": "2019-08-24T14:15:22Z","started_at": "2019-08-24T14:15:22Z","ended_at": "2019-08-24T14:15:22Z","format": "mp4","video": {"codec": "h264","width": 0,"height": 0},"audio": {"codec": "aac"},"aws_s3_url": "string"}],"composition_recordings": [{"room_id": "string","recording_id": "string","connections": [{"connection_id": "string","started_at": "2019-08-24T14:15:22Z","ended_at": "2019-08-24T14:15:22Z"}],"started_at": "2019-08-24T14:15:22Z","ended_at": "2019-08-24T14:15:22Z","format": "mp4","video": {"codec": "vp9","max_bitrate_kbps": 100,"width": 0,"height": 0},"audio": {"codec": "aac"},"aws_s3_url": "string"}]}}}WebhookVerificationRequesttyperequiredstring Value: "webhook.verification" webhook.verification 固定challengerequiredstring RICOH Live Streaming がランダムに生成した文字列Copy{"type": "webhook.verification","challenge": "string"}WebhookVerificationResponsechallenge_signaturerequiredstring Webhook URL の検証リクエストで受け取った challenge の値に対してクライアントアプリケーションが内部で保持している Client Secret をキーとして HMAC hex digest (sha256) を計算した結果に sha256= のプレフィックスをつけた文字列Copy{"challenge_signature": "string"}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: アクティビティ API","version":"v1","description":"RICOH Live Streaming REST API は Live Streaming サービスの公開 REST API です。\n\n本ページはアクティビティ API の仕様について記載します。\n\nアクティビティとは、RICOH Live Streaming で発生したイベントのクライアントアプリに対する表現形式であり、本 API を利用することでクライアントアプリは Webhook によるアクティビティの通知を受けることができます。\n\n### 共通仕様\n- REST API の認証/認可に失敗した場合、ステータスコード 401 のレスポンスが返却されます\n\n### Webhook 設定登録時にクライアントアプリにより設定された Webhook URL の検証\nWebhook 設定の登録時には指定された Webhook の URL が正当なクライアントアプリのものであることを検証するため以下のようなフローを実行します。\n\n\n\nRICOH Live Streaming は Webhook 登録リクエストを受け取ると `webhook_url` の URL に対して Webhook URL の検証リクエストを送信します。\n- クライアントアプリはこれに対して所定のレスポンスを返却することで、 `webhook_url` が正当なクライアントアプリの Webhook URL だと証明する必要があります\n- **[アクティビティ Webhook 設定登録](#tag/api_activity_webhook_config/paths/~1clients~1%7Bclient_id%7D~1activity~1webhook~1register/post)** > **Callbacks** > **Webhook URL の検証** に記載された仕様に従ってこの処理の実装が必要です\n\n### Webhook 通知時に RICOH Live Streaming から送られた Webhook メッセージの検証\nWebhook の URL に対して通知されたメッセージが RICOH Live Streaming からのものであることをクライアントアプリが検証することが可能です。\n- RICOH Live Streaming Webhook 通知時に所定の方法で作成された署名を `X-RICOH-LS-Signature` ヘッダに付与して送信します\n- クライアントアプリはこの署名を検証し、RICOH Live Streaming から送られた通知であることを検証できます\n- **[アクティビティ Webhook 設定登録](#tag/api_activity_webhook_config/paths/~1clients~1%7Bclient_id%7D~1activity~1webhook~1register/post)** > **Callbacks** > **Activity Webhook の通知** に記載された仕様にしたがってこの処理を実装する事が可能です\n\n### Webhook 通知のリトライ\nLive Streaming からクライアントアプリへの Webhook リクエストで ネットワークエラー、リクエストタイムアウト (30 秒)、または 500 系のエラーが発生した場合、以下の戦略に基づいてリトライを行います。\n- 前回のエラーからそれぞれ、5 秒後, 10 秒後, 20 秒後, 40 秒後にリトライし、成功した時点で終了します\n- 上記の 4 回リトライしても成功しない場合はその Webhook 通知を諦めます\n"},"servers":[{"url":"https://api.livestreaming.mw.smart-integration.ricoh.com/v1","description":"v1 Endpoint"}],"x-tagGroups":[{"name":"API","tags":["api_activity_webhook_config"]},{"name":"スキーマ","tags":["activity","webhook_verification_request","webhook_verification_response","id_string"]}],"tags":[{"name":"api_activities","x-displayName":"アクティビティ API"},{"name":"api_activity_webhook_config","x-displayName":"アクティビティ Webhook 設定 API"},{"name":"webhook_verification_request","x-displayName":"WebhookVerificationRequest","description":""},{"name":"webhook_verification_response","x-displayName":"WebhookVerificationResponse","description":""},{"name":"activity","x-displayName":"Activity","description":""},{"name":"id_string","x-displayName":"IDString","description":""}],"paths":{"/clients/{client_id}/activity/webhook/register":{"post":{"summary":"アクティビティ Webhook 設定登録","description":"- アクティビティ発生時にクライアントアプリ通知される Webhook の URL を設定します\n- RICOH Live Streaming はこのリクエストを受け付けると、`webhook_url` の URL に対して、[Callbacks] の [Webhook URL の検証] に記載する POST リクエストを送出します\n - クライアントアプリケーションはこのリクエストを受けたら [Webhook URL の検証] に記載された所定のレスポンスを返す必要があります\n - RICOH Live Streaming はこのレスポンスを受けて検証に成功すれば Webhook 設定の登録を受け付けます\n- すでに Webhook 設定が登録済みだった場合、既存の設定は上書きされます\n","tags":["api_activity_webhook_config"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"}],"requestBody":{"$ref":"#/components/requestBodies/requestBody"},"responses":{"200":{"$ref":"#/components/responses/200"},"400":{"$ref":"#/components/responses/400"}},"callbacks":{"Webhook Verification":{"Webhook 設定登録リクエストボディの webhook_url の URL":{"post":{"summary":"Webhook URL の検証","tags":["アクティビティ Webhook"],"description":"Webhook 登録リクエストの設定の正当性を検証するために RICOH Live Streaming からクライアントアプリの `webhook_url` の URL に対して検証のためのリクエストを行います\n- クライアントアプリケーションは `type` が `webhook.verification` であるリクエストを受け取ったら、`challenge` の値を取り出し、クライアントアプリケーションが内部で保持している Client Secret をキーとして HMAC hex digest (sha256) を計算した結果に `sha256=` のプレフィックスをつけた文字列を `challenge_signature` の値としてレスポンスを返却します\n- RICOH Live Streaming は返却された `challenge_signature` を検証し、正当であれば設定の登録を受け付けます\n","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookVerificationRequest"}}}},"responses":{"200":{"description":"上述した `challenge_signature` を含む WebhookVerificationResponse オブジェクト\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WebhookVerificationResponse"}}}}}}}},"Webhook Notification":{"Webhook 設定登録リクエストボディの webhook_url の URL":{"post":{"summary":"Webhook メッセージの通知","tags":["アクティビティ Webhook"],"description":"RICOH Live Streaming でクライアントアプリに通知すべきアクティビティが発生した際にその都度 `webhook_url` で設定された URL に対して通知のリクエストを行います\n- 制約事項\n - Webhook の通知の順序が `created_at` の順序になることを必ずしも保証しません\n","parameters":[{"$ref":"#/components/parameters/X-RICOH-LS-Signature"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Activity"}}}},"responses":{"200":{"description":"クライアントアプリは Webhook 通知を受け取ったらステータスコード 200 を返します"}}}}}}}},"/clients/{client_id}/activity/webhook":{"get":{"summary":"アクティビティ Webhook 設定取得","tags":["api_activity_webhook_config"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"}],"responses":{"200":{"$ref":"#/components/responses/responses-200"},"404":{"description":"Webhook 設定が未登録"}}},"delete":{"summary":"アクティビティ Webhook 設定リセット","tags":["api_activity_webhook_config"],"security":[{"ClientBasic":[]}],"parameters":[{"$ref":"#/components/parameters/client_id"}],"responses":{"204":{"$ref":"#/components/responses/204"},"404":{"description":"Webhook 設定が未登録"}}}}},"components":{"schemas":{"Activity":{"oneOf":[{"$ref":"#/components/schemas/ActivityRecordingCompleted"},{"$ref":"#/components/schemas/ActivityRecordingFailed"}]},"ActivityRecordingCompleted":{"description":"録画処理が完了した際に発生するアクティビティ\n- AccessToken で設定したフォーマット変換や合成処理、ストレージへの転送など、全ての処理が完了した時点で発生します\n","allOf":[{"$ref":"#/components/schemas/ActivityBase"},{"type":"object","required":["type","data"],"properties":{"type":{"type":"string","enum":["recording.completed"],"description":"録画の完了を示すアクティビティ種別 `recording.completed`"},"data":{"type":"object","description":"- `outputs`: 録画ファイル/合成ファイルの出力情報\n","properties":{"recording_id":{"type":"string","description":"録画 ID"},"outputs":{"$ref":"#/components/schemas/ActivityRecordingOutputs"}}}}}]},"ActivityRecordingFailed":{"description":"録画処理が失敗した際に発生するアクティビティ\n- 一部の録画ファイルの処理が成功していても、エラーが発生した時点で失敗扱いとなります\n","allOf":[{"$ref":"#/components/schemas/ActivityBase"},{"type":"object","required":["type","data"],"properties":{"type":{"type":"string","enum":["recording.failed"],"description":"録画の失敗を示すアクティビティ種別 `recording.failed`"},"data":{"type":"object","description":"- `errors`: 発生したエラー情報のリスト\n - `error_id` の値\n - `recording_storage_no_config`: AccessToken の設定で外部ストレージを設定しているが、録画ストレージ設定 API でストレージ設定が登録されていません\n - `recording_storage_invalid_credential`: 録画ストレージ設定 API で設定されたストレージのクレデンシャルが不正\n - `recording_storage_permission_denied`: 録画ストレージ設定 API で設定されたストレージのクレデンシャルに権限が不足しています\n - `recording_storage_error`: 録画ストレージ設定 API で設定されたストレージへの保存時に上記以外のエラーが発生\n - `recording_transcode_error`: 単一拠点録画の変換処理で何らかのエラーが発生\n - `recording_composition_error`: 録画の合成処理で何らかのエラーが発生\n - `recording_composition_error_no_video`: 録画の合成処理で必要となるvideoトラックがないため合成できない\n - `internal_error`: RICOH Live Streaming の内部エラーが発生\n- `partial_outputs`: エラー発生までに成功していた録画ファイル/合成ファイルの出力情報\n","required":["error"],"properties":{"recording_id":{"type":"string","description":"録画 ID"},"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"}},"partial_outputs":{"$ref":"#/components/schemas/ActivityRecordingOutputs"}}}}}]},"ActivityRecordingOutputs":{"type":"object","properties":{"connection_recordings":{"description":"各 Connection の単一拠点録画ファイルの出力情報","type":"array","items":{"oneOf":[{"$ref":"#/components/schemas/ConnectionRecordingMetadataWithMediaFile"},{"$ref":"#/components/schemas/ConnectionRecordingMetadataWithoutMediaFile"}]}},"composition_recordings":{"description":"録画合成ファイルの出力情報","type":"array","items":{"allOf":[{"$ref":"#/components/schemas/CompositionRecordingMetadata"},{"$ref":"#/components/schemas/ActivityRecordingLocations"}]}}}},"ConnectionRecordingMetadataWithMediaFile":{"allOf":[{"$ref":"#/components/schemas/schemas-ConnectionRecordingMetadataWithMediaFile"},{"$ref":"#/components/schemas/ActivityRecordingLocations"}]},"ConnectionRecordingMetadataWithoutMediaFile":{"type":"object","description":"単一拠点録画に関するメタデータ (単一拠点録画ファイルが保存されない場合)","required":["room_id","recording_id","connection_id","exists_since","exists_until"],"properties":{"room_id":{"type":"string","format":"IDString","description":"Room の ID"},"recording_id":{"type":"string","description":"Recording の ID"},"connection_id":{"type":"string","format":"IDString","description":"Connection の ID"},"exists_since":{"type":"string","format":"date-time","description":"ConnectionInstance が RoomInstanceに入室した時刻と RoomInstance の録画開始時刻の内遅い時刻(ISO8601)"},"exists_until":{"type":"string","format":"date-time","description":"ConnectionInstance が RoomInstanceから退出した時刻と RoomInstance の録画終了時刻の内早い時刻(ISO8601)"}}},"ActivityRecordingLocations":{"type":"object","properties":{"aws_s3_url":{"description":"AccessToken で録画ファイルのストレージに `aws_s3` を指定した場合は、保存先の S3 URL が入り、そうでない場合は空","type":"string"}}},"ActivityBase":{"type":"object","required":["activity_id","env","created_at"],"properties":{"activity_id":{"type":"string","description":"アクティビティを一意に識別する ID"},"env":{"type":"string","enum":["prod","dev"],"description":"アクティビティの発生した環境"},"created_at":{"type":"string","format":"date-time","description":"アクティビティが生成された時刻\n- ISO8601 形式\n"}}},"WebhookConfig":{"type":"object","description":"- アプリケーションが RICOH Live Streaming からの Webhook 通知を受けるための設定\n","required":["webhook_url"],"properties":{"webhook_url":{"type":"string","maxLength":255,"description":"- RICOH Live Streaming からの Webhook 通知を受けるクライアントアプリの WebAPI の URL\n- `https://` から開始している必要があり、すなわちクライアントアプリの Web API は HTTPS に対応おり、信頼された認証局によって発行された証明書が利用されていること\n"}}},"WebhookVerificationRequest":{"type":"object","description":"RICOH Live Streaming がクライアントアプリケーションに対して Webhook URL の検証をする際のリクエエストボディ","required":["type","challenge"],"properties":{"type":{"type":"string","enum":["webhook.verification"],"description":"`webhook.verification` 固定\n"},"challenge":{"type":"string","description":"RICOH Live Streaming がランダムに生成した文字列"}}},"WebhookVerificationResponse":{"type":"object","description":"クライアントアプリケーションが Webhook URL の検証リクエストを受けて返却するレスポンスのボディ","required":["challenge_signature"],"properties":{"challenge_signature":{"type":"string","description":"Webhook URL の検証リクエストで受け取った `challenge` の値に対してクライアントアプリケーションが内部で保持している Client Secret をキーとして HMAC hex digest (sha256) を計算した結果に `sha256=` のプレフィックスをつけた文字列\n"}}},"IDString":{"type":"string","pattern":"^[a-zA-Z0-9.%+^_\"`{|}~<>\\\\\\\\-]{1,255}$","description":"- 1 文字以上 255 文字以下\n- ASCII\n- 以下の文字のみ許可\n - 英数字\n - 次の記号: ``.%+^_\"`{|}~<>\\-``\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"}}},"schemas-WebhookConfig":{"type":"object","description":"- アプリケーションが RICOH Live Streaming からの Webhook 通知を受けるための設定\n","required":["webhook_url"],"properties":{"webhook_url":{"type":"string","maxLength":255,"description":"- RICOH Live Streaming からの Webhook 通知を受けるクライアントアプリの WebAPI の URL\n- `https://` から開始している必要があり、すなわちクライアントアプリの Web API は HTTPS に対応おり、信頼された認証局によって発行された証明書が利用されていること\n"}}},"schemas-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"}}},"ConnectionRecordingVideoMetadata":{"type":"object","description":"録画の映像データに関するメタデータ","required":["codec","max_bitrate_kbps","width","height"],"properties":{"codec":{"type":"string","enum":["h264","vp9"],"description":"映像データのコーデック"},"width":{"type":"integer","description":"- 映像データの幅\n"},"height":{"type":"integer","description":"- 映像データの高さ\n"}}},"RecordingAudioMetadata":{"type":"object","description":"録画の音声データに関するメタデータ","required":["codec"],"properties":{"codec":{"type":"string","enum":["aac","opus"],"description":"音声データのコーデック"}}},"schemas-ConnectionRecordingMetadataWithMediaFile":{"type":"object","description":"単一拠点録画に関するメタデータ (単一拠点録画ファイルが保存される場合)","required":["room_id","recording_id","connection_id","exists_since","exists_until","started_at","ended_at","format"],"properties":{"room_id":{"type":"string","format":"IDString","description":"Room の ID"},"recording_id":{"type":"string","description":"Recording の ID"},"connection_id":{"type":"string","format":"IDString","description":"Connection の ID"},"exists_since":{"type":"string","format":"date-time","description":"ConnectionInstance が RoomInstanceに入室した時刻と RoomInstance の録画開始時刻の内遅い時刻(ISO8601)"},"exists_until":{"type":"string","format":"date-time","description":"ConnectionInstance が RoomInstanceから退出した時刻と RoomInstance の録画終了時刻の内早い時刻(ISO8601)"},"started_at":{"type":"string","format":"date-time","description":"録画開始時刻(ISO8601)"},"ended_at":{"type":"string","format":"date-time","description":"録画終了時刻(ISO8601)"},"format":{"type":"string","enum":["mp4"],"description":"メディアファイルのフォーマット"},"video":{"$ref":"#/components/schemas/ConnectionRecordingVideoMetadata"},"audio":{"$ref":"#/components/schemas/RecordingAudioMetadata"}}},"ConnectionMetadata":{"type":"object","description":"合成録画に含まれる Connection の情報","required":["connection_id","started_at","ended_at"],"properties":{"connection_id":{"type":"string","format":"IDString","description":"Connection の ID"},"started_at":{"type":"string","format":"date-time","description":"録画開始時刻(ISO8601)"},"ended_at":{"type":"string","format":"date-time","description":"録画終了時刻(ISO8601)"}}},"CompositionRecordingVideoMetadata":{"type":"object","description":"録画の映像データに関するメタデータ","required":["codec","max_bitrate_kbps","width","height"],"properties":{"codec":{"type":"string","enum":["vp9"],"description":"映像データのコーデック"},"max_bitrate_kbps":{"type":"integer","minimum":100,"maximum":2000,"description":"映像の最大ビットレート(Kbps)"},"width":{"type":"integer","description":"- 映像データの幅\n"},"height":{"type":"integer","description":"- 映像データの高さ\n"}}},"CompositionRecordingMetadata":{"type":"object","description":"合成録画に関するメタデータ","required":["room_id","recording_id","connections","started_at","ended_at","format"],"properties":{"room_id":{"type":"string","format":"IDString","description":"Room の ID"},"recording_id":{"type":"string","description":"Recording の ID"},"connections":{"type":"array","items":{"$ref":"#/components/schemas/ConnectionMetadata"},"description":"合成録画に含まれる ConnectionMetadata の配列"},"started_at":{"type":"string","format":"date-time","description":"録画開始時刻(ISO8601)"},"ended_at":{"type":"string","format":"date-time","description":"録画終了時刻(ISO8601)"},"format":{"type":"string","enum":["mp4"],"description":"メディアファイルのフォーマット"},"video":{"$ref":"#/components/schemas/CompositionRecordingVideoMetadata"},"audio":{"$ref":"#/components/schemas/RecordingAudioMetadata"}}}},"parameters":{"client_id":{"in":"path","name":"client_id","schema":{"type":"string"},"required":true,"description":"- Client ID\n"},"X-RICOH-LS-Signature":{"in":"header","name":"X-RICOH-LS-Signature","schema":{"type":"string"},"required":true,"description":"- Webhook 通知時には Client Secret をキーとしてリクエストボディのペイロードから HMAC hex digest (sha256) を計算して先頭に `sha256=` のプレフィックスをつけた文字列を `X-RICOH-LS-Signature` ヘッダに付与して送信します\n- クライアントアプリはこの署名を検証し、RICOH Live Streaming から送られた通知であることを検証できます\n"}},"securitySchemes":{"ClientBasic":{"type":"http","scheme":"basic","description":"Client ID を username、Client Secretを password にした Basic 認証"}},"requestBodies":{"requestBody":{"required":true,"description":"アクティビティ Webhook 設定を更新するための WebhookConfig オブジェクト\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-WebhookConfig"}}}}},"responses":{"200":{"description":"作成された WebhookConfig オブジェクト","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-WebhookConfig"}}}},"204":{"description":"リセット成功"},"400":{"description":"リクエストボディ不正、または、クライアントアプリに対する Webhook Verification Request に失敗した\n- error_id の値\n - invalid_parameter: リクエストボディのパラメータの不正、options のキーに不正だったプロパティ名が入る\n - verification_failed: クライアントアプリに対する Webhook Verification Request に失敗、options に Webhook Verification Request のエラー情報が入る\n","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-Error"}}}},"responses-200":{"description":"WebhookConfig オブジェクト","content":{"application/json":{"schema":{"$ref":"#/components/schemas/schemas-WebhookConfig"}}}}}}}},"searchIndex":{"store":["tag/api_activity_webhook_config","tag/api_activity_webhook_config/paths/~1clients~1{client_id}~1activity~1webhook~1register/post","tag/api_activity_webhook_config/paths/~1clients~1{client_id}~1activity~1webhook/get","tag/api_activity_webhook_config/paths/~1clients~1{client_id}~1activity~1webhook/delete","tag/activity","tag/webhook_verification_request","tag/webhook_verification_response","tag/id_string"],"index":{"version":"2.3.9","fields":["title","description"],"fieldVectors":[["title/0",[0,0.057,1,0.362,2,1.317]],["description/0",[]],["title/1",[0,0.063,1,0.421]],["description/1",[0,0.088,1,0.511,3,1.643,4,1.038,5,1.038,6,1.038,7,0.597,8,0.597,9,0.597,10,0.597]],["title/2",[0,0.063,1,0.421]],["description/2",[11,1.963]],["title/3",[0,0.063,1,0.421]],["description/3",[11,1.963]],["title/4",[12,2.287]],["description/4",[0,0.066,13,0.893,14,2.308]],["title/5",[15,2.287]],["description/5",[0,0.066,13,0.893,16,2.308]],["title/6",[17,2.287]],["description/6",[0,0.066,13,0.893,18,2.308]],["title/7",[19,2.287]],["description/7",[0,0.066,13,0.893,20,2.308]]],"invertedIndex":[["",{"_index":0,"title":{"0":{},"1":{},"2":{},"3":{}},"description":{"1":{},"4":{},"5":{},"6":{},"7":{}}}],["activ",{"_index":12,"title":{"4":{}},"description":{}}],["api",{"_index":2,"title":{"0":{}},"description":{}}],["callback",{"_index":8,"title":{},"description":{"1":{}}}],["clients/{client_id}/activity/webhook",{"_index":11,"title":{},"description":{"2":{},"3":{}}}],["clients/{client_id}/activity/webhook/regist",{"_index":10,"title":{},"description":{"1":{}}}],["idstr",{"_index":19,"title":{"7":{}},"description":{}}],["live",{"_index":5,"title":{},"description":{"1":{}}}],["post",{"_index":9,"title":{},"description":{"1":{}}}],["ricoh",{"_index":4,"title":{},"description":{"1":{}}}],["schemadefinit",{"_index":13,"title":{},"description":{"4":{},"5":{},"6":{},"7":{}}}],["schemaref=\"#/components/schemas/act",{"_index":14,"title":{},"description":{"4":{}}}],["schemaref=\"#/components/schemas/idstr",{"_index":20,"title":{},"description":{"7":{}}}],["schemaref=\"#/components/schemas/webhookverificationrequest",{"_index":16,"title":{},"description":{"5":{}}}],["schemaref=\"#/components/schemas/webhookverificationrespons",{"_index":18,"title":{},"description":{"6":{}}}],["stream",{"_index":6,"title":{},"description":{"1":{}}}],["url",{"_index":3,"title":{},"description":{"1":{}}}],["webhook",{"_index":1,"title":{"0":{},"1":{},"2":{},"3":{}},"description":{"1":{}}}],["webhook_url",{"_index":7,"title":{},"description":{"1":{}}}],["webhookverificationrequest",{"_index":15,"title":{"5":{}},"description":{}}],["webhookverificationrespons",{"_index":17,"title":{"6":{}},"description":{}}]],"pipeline":[]}},"options":{}}; var container = document.getElementById('redoc'); Redoc.hydrate(__redoc_state, container);