diff --git a/README.md b/README.md
index 557e2ba..7571a99 100644
--- a/README.md
+++ b/README.md
@@ -23,37 +23,37 @@ yarn add @aiozstream/nodejs-client
### Code sample
```typescript
-import StreamClient from '@aiozstream/nodejs-client'
+import StreamClient from "@aiozstream/nodejs-client";
-;(async () => {
+(async () => {
try {
const client = new StreamClient({
- publicKey: 'YOUR_PUBLIC_KEY=',
- secretKey: 'YOUR_SECRET_KEY'
- })
- const mediaCreationPayload = {
- title: 'First video', // The title of your new video.
- description: 'A new video.' // A brief description of your video.
- }
+ publicKey: "YOUR_PUBLIC_KEY",
+ secretKey: "YOUR_SECRET_KEY",
+ });
+ const videoCreationPayload = {
+ title: "First video", // The title of your new video.
+ description: "A new video.", // A brief description of your video.
+ };
- const media = await client.media.create(mediaCreationPayload)
- if (!media.data) {
- throw new Error('Failed to create video')
+ const video = await client.video.create(videoCreationPayload);
+ if (!video.data) {
+ throw new Error("Failed to create video");
}
- if (!media.data.id) {
- throw new Error('Failed to create video')
+ if (!video.data.id) {
+ throw new Error("Failed to create video");
}
// Option 1: Use client upload with videoId
- // await client.uploadVideo(media.data.id, "./path/to/video.mp4");
+ // await client.uploadVideo(video.data.id, "./path/to/video.mp4");
// console.log("Upload successfully");
// Option 2: Upload parts yourself
- const uploadResult = await client.media.uploadPart(
- media.data.id,
- "./558k.mp4"
+ const uploadResult = await client.video.uploadPart(
+ video.data.id,
+ "./path/to/video.mp4",
);
console.log(uploadResult);
-
- const checkResult = await client.media.uploadMediaComplete(media.data.id);
+
+ const checkResult = await client.video.uploadVideoComplete(video.data.id);
// Check if the video upload is complete
console.log(checkResult);
} catch (e) {
@@ -80,6 +80,31 @@ Method | Description | HTTP request
[**list()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/ApiKeyApi.md#list) | Get list API keys | **GET** `/api_keys`
+#### LiveStreamApi
+
+Method | Description | HTTP request
+------------- | ------------- | -------------
+[**uploadThumbnail()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#uploadThumbnail) | Upload live stream media thumbnail | **POST** `/live_streams/{id}/thumbnail`
+[**deleteThumbnail()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#deleteThumbnail) | Delete live stream media thumbnail | **DELETE** `/live_streams/{id}/thumbnail`
+[**addMulticast()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#addMulticast) | Add live stream multicast | **POST** `/live_streams/multicast/{stream_key}`
+[**createLiveStreamKey()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#createLiveStreamKey) | Create live stream key | **POST** `/live_streams`
+[**createStreaming()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#createStreaming) | Create a new live stream media | **POST** `/live_streams/{id}/streamings`
+[**deleteLiveStreamKey()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#deleteLiveStreamKey) | Delete live stream key | **DELETE** `/live_streams/{id}`
+[**deleteLiveStreamMulticast()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#deleteLiveStreamMulticast) | Delete live stream multicast | **DELETE** `/live_streams/multicast/{stream_key}`
+[**deleteStreaming()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#deleteStreaming) | Delete live stream video | **DELETE** `/live_streams/{id}/streamings/{stream_id}`
+[**getLiveStreamKey()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getLiveStreamKey) | Get live stream key | **GET** `/live_streams/{id}`
+[**getLiveStreamKeys()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getLiveStreamKeys) | Get live stream key list | **GET** `/live_streams`
+[**getLiveStreamMulticastByStreamKey()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getLiveStreamMulticastByStreamKey) | Get live stream multicast by stream key | **GET** `/live_streams/multicast/{stream_key}`
+[**getLiveStreamPlayerInfo()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getLiveStreamPlayerInfo) | Get live stream video public | **GET** `/live_streams/player/{id}/media`
+[**getLiveStreamStatisticByStreamMediaId()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getLiveStreamStatisticByStreamMediaId) | Get live stream statistic by stream media id | **GET** `/live_streams/statistic/{stream_media_id}`
+[**getLiveStreamVideo()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getLiveStreamVideo) | Get live stream video | **GET** `/live_streams/{id}/video`
+[**getMedias()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getMedias) | Get live stream media | **POST** `/live_streams/{id}/media`
+[**getStreaming()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getStreaming) | Get live stream media streaming | **GET** `/live_streams/{id}/streamings/{stream_id}`
+[**getStreamings()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#getStreamings) | Get live stream media streamings | **GET** `/live_streams/{id}/streamings`
+[**updateLiveStreamKey()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#updateLiveStreamKey) | Update live stream key | **PUT** `/live_streams/{id}`
+[**updateMedia()**](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/api/LiveStreamApi.md#updateMedia) | Update live stream media | **PUT** `/live_streams/{id}/streamings`
+
+
#### MediaApi
Method | Description | HTTP request
@@ -165,6 +190,8 @@ Method | Description | HTTP request
- [CreateApiKeyData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateApiKeyData.md)
- [CreateApiKeyRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateApiKeyRequest.md)
- [CreateApiKeyResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateApiKeyResponse.md)
+ - [CreateLiveStreamKeyRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateLiveStreamKeyRequest.md)
+ - [CreateLiveStreamKeyResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateLiveStreamKeyResponse.md)
- [CreateMediaCaptionData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateMediaCaptionData.md)
- [CreateMediaCaptionResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateMediaCaptionResponse.md)
- [CreateMediaChapterData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateMediaChapterData.md)
@@ -177,11 +204,23 @@ Method | Description | HTTP request
- [CreatePlaylistData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreatePlaylistData.md)
- [CreatePlaylistRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreatePlaylistRequest.md)
- [CreatePlaylistResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreatePlaylistResponse.md)
+ - [CreateStreamingRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateStreamingRequest.md)
+ - [CreateStreamingResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateStreamingResponse.md)
- [CreateWebhookData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateWebhookData.md)
- [CreateWebhookRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateWebhookRequest.md)
- [CreateWebhookResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/CreateWebhookResponse.md)
- [GetApiKeysData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetApiKeysData.md)
- [GetApiKeysResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetApiKeysResponse.md)
+ - [GetLiveStreamKeyData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamKeyData.md)
+ - [GetLiveStreamKeyResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamKeyResponse.md)
+ - [GetLiveStreamKeysListData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamKeysListData.md)
+ - [GetLiveStreamKeysListResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamKeysListResponse.md)
+ - [GetLiveStreamMediasRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamMediasRequest.md)
+ - [GetLiveStreamMediasResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamMediasResponse.md)
+ - [GetLiveStreamMulticastResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamMulticastResponse.md)
+ - [GetLiveStreamStatisticResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamStatisticResponse.md)
+ - [GetLiveStreamVideoPublicResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamVideoPublicResponse.md)
+ - [GetLiveStreamVideoResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetLiveStreamVideoResponse.md)
- [GetMediaCaptionsData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetMediaCaptionsData.md)
- [GetMediaCaptionsResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetMediaCaptionsResponse.md)
- [GetMediaChaptersData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetMediaChaptersData.md)
@@ -200,12 +239,21 @@ Method | Description | HTTP request
- [GetPlaylistListData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetPlaylistListData.md)
- [GetPlaylistListRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetPlaylistListRequest.md)
- [GetPlaylistListResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetPlaylistListResponse.md)
+ - [GetStreamingResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetStreamingResponse.md)
+ - [GetStreamingsResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetStreamingsResponse.md)
- [GetTranscodeCostData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetTranscodeCostData.md)
- [GetTranscodeCostResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetTranscodeCostResponse.md)
- [GetUserWebhookData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetUserWebhookData.md)
- [GetUserWebhookResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetUserWebhookResponse.md)
- [GetWebhooksListData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetWebhooksListData.md)
- [GetWebhooksListResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/GetWebhooksListResponse.md)
+ - [LiveStreamAssets](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamAssets.md)
+ - [LiveStreamKeyData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamKeyData.md)
+ - [LiveStreamMediaData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamMediaData.md)
+ - [LiveStreamMediaResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamMediaResponse.md)
+ - [LiveStreamMediasResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamMediasResponse.md)
+ - [LiveStreamMulticast](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamMulticast.md)
+ - [LiveStreamStatisticResp](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/LiveStreamStatisticResp.md)
- [Media](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/Media.md)
- [MediaAssets](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/MediaAssets.md)
- [MediaCaption](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/MediaCaption.md)
@@ -226,11 +274,16 @@ Method | Description | HTTP request
- [ResponseError](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/ResponseError.md)
- [ResponseSuccess](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/ResponseSuccess.md)
- [Theme](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/Theme.md)
+ - [UpdateLiveStreamKeyData](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdateLiveStreamKeyData.md)
+ - [UpdateLiveStreamKeyRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdateLiveStreamKeyRequest.md)
+ - [UpdateLiveStreamKeyResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdateLiveStreamKeyResponse.md)
+ - [UpdateLiveStreamMediaRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdateLiveStreamMediaRequest.md)
- [UpdateMediaInfoRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdateMediaInfoRequest.md)
- [UpdatePlayerThemeRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdatePlayerThemeRequest.md)
- [UpdatePlayerThemeResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdatePlayerThemeResponse.md)
- [UpdateWebhookRequest](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpdateWebhookRequest.md)
- [UploadLogoByIdResponse](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UploadLogoByIdResponse.md)
+ - [UpsertLiveStreamMulticastInput](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/UpsertLiveStreamMulticastInput.md)
- [User](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/User.md)
- [VideoConfig](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/VideoConfig.md)
- [VideoWatermark](https://github.com/AIOZNetwork/aiozstream-nodejs-client/blob/main/docs/model/VideoWatermark.md)
diff --git a/docs/api/LiveStreamApi.md b/docs/api/LiveStreamApi.md
new file mode 100644
index 0000000..ec60f80
--- /dev/null
+++ b/docs/api/LiveStreamApi.md
@@ -0,0 +1,454 @@
+# LiveStreamApi
+
+All URIs are relative to *http://localhost/api*
+
+| Method | Description | HTTP request |
+| ------------- | ------------- | ------------- |
+| [**uploadThumbnail()**](LiveStreamApi.md#uploadThumbnail) | Upload live stream media thumbnail | **POST** /live_streams/{id}/thumbnail |
+| [**deleteThumbnail()**](LiveStreamApi.md#deleteThumbnail) | Delete live stream media thumbnail | **DELETE** /live_streams/{id}/thumbnail |
+| [**addMulticast()**](LiveStreamApi.md#addMulticast) | Add live stream multicast | **POST** /live_streams/multicast/{stream_key} |
+| [**createLiveStreamKey()**](LiveStreamApi.md#createLiveStreamKey) | Create live stream key | **POST** /live_streams |
+| [**createStreaming()**](LiveStreamApi.md#createStreaming) | Create a new live stream media | **POST** /live_streams/{id}/streamings |
+| [**deleteLiveStreamKey()**](LiveStreamApi.md#deleteLiveStreamKey) | Delete live stream key | **DELETE** /live_streams/{id} |
+| [**deleteLiveStreamMulticast()**](LiveStreamApi.md#deleteLiveStreamMulticast) | Delete live stream multicast | **DELETE** /live_streams/multicast/{stream_key} |
+| [**deleteStreaming()**](LiveStreamApi.md#deleteStreaming) | Delete live stream video | **DELETE** /live_streams/{id}/streamings/{stream_id} |
+| [**getLiveStreamKey()**](LiveStreamApi.md#getLiveStreamKey) | Get live stream key | **GET** /live_streams/{id} |
+| [**getLiveStreamKeys()**](LiveStreamApi.md#getLiveStreamKeys) | Get live stream key list | **GET** /live_streams |
+| [**getLiveStreamMulticastByStreamKey()**](LiveStreamApi.md#getLiveStreamMulticastByStreamKey) | Get live stream multicast by stream key | **GET** /live_streams/multicast/{stream_key} |
+| [**getLiveStreamPlayerInfo()**](LiveStreamApi.md#getLiveStreamPlayerInfo) | Get live stream video public | **GET** /live_streams/player/{id}/media |
+| [**getLiveStreamStatisticByStreamMediaId()**](LiveStreamApi.md#getLiveStreamStatisticByStreamMediaId) | Get live stream statistic by stream media id | **GET** /live_streams/statistic/{stream_media_id} |
+| [**getLiveStreamVideo()**](LiveStreamApi.md#getLiveStreamVideo) | Get live stream video | **GET** /live_streams/{id}/video |
+| [**getMedias()**](LiveStreamApi.md#getMedias) | Get live stream media | **POST** /live_streams/{id}/media |
+| [**getStreaming()**](LiveStreamApi.md#getStreaming) | Get live stream media streaming | **GET** /live_streams/{id}/streamings/{stream_id} |
+| [**getStreamings()**](LiveStreamApi.md#getStreamings) | Get live stream media streamings | **GET** /live_streams/{id}/streamings |
+| [**updateLiveStreamKey()**](LiveStreamApi.md#updateLiveStreamKey) | Update live stream key | **PUT** /live_streams/{id} |
+| [**updateMedia()**](LiveStreamApi.md#updateMedia) | Update live stream media | **PUT** /live_streams/{id}/streamings |
+
+
+
+## **`uploadThumbnail()` - Upload live stream media thumbnail**
+
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| live stream media's id |
+ | **file** | **string \| Readable \| Buffer**| **yes**| file media to be uploaded |
+
+
+### Return type
+
+Promise<[**ResponseSuccess**](../model/ResponseSuccess.md)>.
+
+
+
+
+---
+
+
+## **`deleteThumbnail()` - Delete live stream media thumbnail**
+
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| live stream media's id |
+
+
+### Return type
+
+Promise<[**ResponseSuccess**](../model/ResponseSuccess.md)>.
+
+
+
+
+---
+
+
+## **`addMulticast()` - Add live stream multicast**
+
+
+Add live stream multicast
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **streamKey** | **string**| **yes**| Live stream key. Use uuid |
+ | **data** | [**UpsertLiveStreamMulticastInput**](../model/UpsertLiveStreamMulticastInput.md)| **yes**| data |
+
+
+### Return type
+
+Promise<[**GetLiveStreamMulticastResponse**](../model/GetLiveStreamMulticastResponse.md)>.
+
+
+
+
+---
+
+
+## **`createLiveStreamKey()` - Create live stream key**
+
+
+Create live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **input** | [**CreateLiveStreamKeyRequest**](../model/CreateLiveStreamKeyRequest.md)| **yes**| CreateLiveStreamKeyRequest |
+
+
+### Return type
+
+Promise<[**CreateLiveStreamKeyResponse**](../model/CreateLiveStreamKeyResponse.md)>.
+
+
+
+
+---
+
+
+## **`createStreaming()` - Create a new live stream media**
+
+
+Creates a new live stream media with the provided details
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+ | **input** | [**CreateStreamingRequest**](../model/CreateStreamingRequest.md)| **yes**| CreateStreamingRequest |
+
+
+### Return type
+
+Promise<[**CreateStreamingResponse**](../model/CreateStreamingResponse.md)>.
+
+
+
+
+---
+
+
+## **`deleteLiveStreamKey()` - Delete live stream key**
+
+
+Delete a live stream key by ID
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+
+
+### Return type
+
+Promise<[**ResponseSuccess**](../model/ResponseSuccess.md)>.
+
+
+
+
+---
+
+
+## **`deleteLiveStreamMulticast()` - Delete live stream multicast**
+
+
+Delete live stream multicast
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **streamKey** | **string**| **yes**| Live stream key. UUID string format |
+
+
+### Return type
+
+Promise<[**ResponseSuccess**](../model/ResponseSuccess.md)>.
+
+
+
+
+---
+
+
+## **`deleteStreaming()` - Delete live stream video**
+
+
+Delete live stream are created by a specific live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+ | **streamId** | **string**| **yes**| Streaming ID |
+
+
+### Return type
+
+Promise<[**ResponseSuccess**](../model/ResponseSuccess.md)>.
+
+
+
+
+---
+
+
+## **`getLiveStreamKey()` - Get live stream key**
+
+
+Get live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| ID |
+
+
+### Return type
+
+Promise<[**GetLiveStreamKeyResponse**](../model/GetLiveStreamKeyResponse.md)>.
+
+
+
+
+---
+
+
+## **`getLiveStreamKeys()` - Get live stream key list**
+
+
+Get live stream key list
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **search** | **string**| no| only support search by name |
+ | **sortBy** | **'created_at' \| 'name'**| no| sort by |
+ | **orderBy** | **'asc' \| 'desc'**| no| allowed: asc, desc. Default: asc |
+ | **offset** | **number**| no| offset, allowed values greater than or equal to 0. |
+ | **limit** | **number**| no| results per page. |
+ | **type** | **'audio' \| 'video'**| no| type of media. Enums(audio, video) default(video). |
+
+
+### Return type
+
+Promise<[**GetLiveStreamKeysListResponse**](../model/GetLiveStreamKeysListResponse.md)>.
+
+
+
+
+---
+
+
+## **`getLiveStreamMulticastByStreamKey()` - Get live stream multicast by stream key**
+
+
+Get live stream multicast by stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **streamKey** | **string**| **yes**| Live stream key. UUID string format |
+
+
+### Return type
+
+Promise<[**GetLiveStreamMulticastResponse**](../model/GetLiveStreamMulticastResponse.md)>.
+
+
+
+
+---
+
+
+## **`getLiveStreamPlayerInfo()` - Get live stream video public**
+
+
+Get live stream video public for a specific live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+
+
+### Return type
+
+Promise<[**GetLiveStreamVideoPublicResponse**](../model/GetLiveStreamVideoPublicResponse.md)>.
+
+
+
+
+---
+
+
+## **`getLiveStreamStatisticByStreamMediaId()` - Get live stream statistic by stream media id**
+
+
+Get live stream statistic by stream media id
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **streamMediaId** | **string**| **yes**| Live stream media ID |
+
+
+### Return type
+
+Promise<[**GetLiveStreamStatisticResponse**](../model/GetLiveStreamStatisticResponse.md)>.
+
+
+
+
+---
+
+
+## **`getLiveStreamVideo()` - Get live stream video**
+
+
+Get a specific live stream video by ID
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream video ID |
+
+
+### Return type
+
+Promise<[**GetLiveStreamVideoResponse**](../model/GetLiveStreamVideoResponse.md)>.
+
+
+
+
+---
+
+
+## **`getMedias()` - Get live stream media**
+
+
+Get live stream media for a specific live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+ | **data** | [**GetLiveStreamMediasRequest**](../model/GetLiveStreamMediasRequest.md)| **yes**| data |
+
+
+### Return type
+
+Promise<[**GetLiveStreamMediasResponse**](../model/GetLiveStreamMediasResponse.md)>.
+
+
+
+
+---
+
+
+## **`getStreaming()` - Get live stream media streaming**
+
+
+Get live stream media streaming for a specific live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+ | **streamId** | **string**| **yes**| Stream ID |
+
+
+### Return type
+
+Promise<[**GetStreamingResponse**](../model/GetStreamingResponse.md)>.
+
+
+
+
+---
+
+
+## **`getStreamings()` - Get live stream media streamings**
+
+
+Get live stream media streamings for a specific live stream key
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+
+
+### Return type
+
+Promise<[**GetStreamingsResponse**](../model/GetStreamingsResponse.md)>.
+
+
+
+
+---
+
+
+## **`updateLiveStreamKey()` - Update live stream key**
+
+
+Update a live stream key by ID
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+ | **input** | [**UpdateLiveStreamKeyRequest**](../model/UpdateLiveStreamKeyRequest.md)| **yes**| UpdateLiveStreamKeyRequest |
+
+
+### Return type
+
+Promise<[**UpdateLiveStreamKeyResponse**](../model/UpdateLiveStreamKeyResponse.md)>.
+
+
+
+
+---
+
+
+## **`updateMedia()` - Update live stream media**
+
+
+Update live stream media. You can only update while live streaming.
+
+### Parameters
+
+| Name | Type | Required | Description |
+| ------------- | ------------- | ------------- | ------------- |
+ | **id** | **string**| **yes**| Live stream key ID |
+ | **data** | [**UpdateLiveStreamMediaRequest**](../model/UpdateLiveStreamMediaRequest.md)| **yes**| data |
+
+
+### Return type
+
+Promise<[**ResponseSuccess**](../model/ResponseSuccess.md)>.
+
+
+
+
+---
+
diff --git a/docs/model/CreateLiveStreamKeyRequest.md b/docs/model/CreateLiveStreamKeyRequest.md
new file mode 100644
index 0000000..90176fc
--- /dev/null
+++ b/docs/model/CreateLiveStreamKeyRequest.md
@@ -0,0 +1,13 @@
+
+# CreateLiveStreamKeyRequest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **string** | | [optional]
+**save** | **boolean** | | [optional]
+**type** | **string** | | [optional]
+
+
+
diff --git a/docs/model/CreateLiveStreamKeyResponse.md b/docs/model/CreateLiveStreamKeyResponse.md
new file mode 100644
index 0000000..b039359
--- /dev/null
+++ b/docs/model/CreateLiveStreamKeyResponse.md
@@ -0,0 +1,12 @@
+
+# CreateLiveStreamKeyResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamKeyData**](LiveStreamKeyData.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/CreateStreamingRequest.md b/docs/model/CreateStreamingRequest.md
new file mode 100644
index 0000000..d9c36ed
--- /dev/null
+++ b/docs/model/CreateStreamingRequest.md
@@ -0,0 +1,13 @@
+
+# CreateStreamingRequest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**qualities** | [**Array<QualityConfig>**](QualityConfig.md) | Qualities of the media (default: 1080p, 720p, 360p, allow:2160p, 1440p, 1080p, 720p, 360p, 240p, 144p) | [optional]
+**save** | **boolean** | | [optional]
+**title** | **string** | | [optional]
+
+
+
diff --git a/docs/model/CreateStreamingResponse.md b/docs/model/CreateStreamingResponse.md
new file mode 100644
index 0000000..e0672ee
--- /dev/null
+++ b/docs/model/CreateStreamingResponse.md
@@ -0,0 +1,12 @@
+
+# CreateStreamingResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMediaData**](LiveStreamMediaData.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamKeyData.md b/docs/model/GetLiveStreamKeyData.md
new file mode 100644
index 0000000..7263ceb
--- /dev/null
+++ b/docs/model/GetLiveStreamKeyData.md
@@ -0,0 +1,19 @@
+
+# GetLiveStreamKeyData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**createdAt** | **string** | | [optional]
+**id** | **string** | | [optional]
+**name** | **string** | | [optional]
+**rtmpUrl** | **string** | | [optional]
+**save** | **boolean** | | [optional]
+**streamKey** | **string** | | [optional]
+**type** | **string** | | [optional]
+**updatedAt** | **string** | | [optional]
+**userId** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamKeyResponse.md b/docs/model/GetLiveStreamKeyResponse.md
new file mode 100644
index 0000000..1c9d16f
--- /dev/null
+++ b/docs/model/GetLiveStreamKeyResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamKeyResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**GetLiveStreamKeyData**](GetLiveStreamKeyData.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamKeysListData.md b/docs/model/GetLiveStreamKeysListData.md
new file mode 100644
index 0000000..d0343c5
--- /dev/null
+++ b/docs/model/GetLiveStreamKeysListData.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamKeysListData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**liveStreamKeys** | [**Array<GetLiveStreamKeyData>**](GetLiveStreamKeyData.md) | | [optional]
+**total** | **number** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamKeysListResponse.md b/docs/model/GetLiveStreamKeysListResponse.md
new file mode 100644
index 0000000..fed42ad
--- /dev/null
+++ b/docs/model/GetLiveStreamKeysListResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamKeysListResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**GetLiveStreamKeysListData**](GetLiveStreamKeysListData.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamMediasRequest.md b/docs/model/GetLiveStreamMediasRequest.md
new file mode 100644
index 0000000..e44f3c2
--- /dev/null
+++ b/docs/model/GetLiveStreamMediasRequest.md
@@ -0,0 +1,18 @@
+
+# GetLiveStreamMediasRequest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**limit** | **number** | | [optional]
+**liveStreamKeyId** | **string** | | [optional]
+**mediaStatus** | **string** | | [optional]
+**offset** | **number** | | [optional]
+**orderBy** | **string** | | [optional]
+**search** | **string** | | [optional]
+**sortBy** | **string** | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamMediasResponse.md b/docs/model/GetLiveStreamMediasResponse.md
new file mode 100644
index 0000000..e9f942c
--- /dev/null
+++ b/docs/model/GetLiveStreamMediasResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamMediasResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMediasResponse**](LiveStreamMediasResponse.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamMulticastResponse.md b/docs/model/GetLiveStreamMulticastResponse.md
new file mode 100644
index 0000000..aef4667
--- /dev/null
+++ b/docs/model/GetLiveStreamMulticastResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamMulticastResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMulticast**](LiveStreamMulticast.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamStatisticResponse.md b/docs/model/GetLiveStreamStatisticResponse.md
new file mode 100644
index 0000000..5d266a0
--- /dev/null
+++ b/docs/model/GetLiveStreamStatisticResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamStatisticResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamStatisticResp**](LiveStreamStatisticResp.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamVideoPublicResponse.md b/docs/model/GetLiveStreamVideoPublicResponse.md
new file mode 100644
index 0000000..d004c49
--- /dev/null
+++ b/docs/model/GetLiveStreamVideoPublicResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamVideoPublicResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMediaResponse**](LiveStreamMediaResponse.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetLiveStreamVideoResponse.md b/docs/model/GetLiveStreamVideoResponse.md
new file mode 100644
index 0000000..7cc9074
--- /dev/null
+++ b/docs/model/GetLiveStreamVideoResponse.md
@@ -0,0 +1,12 @@
+
+# GetLiveStreamVideoResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMediaResponse**](LiveStreamMediaResponse.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetStreamingResponse.md b/docs/model/GetStreamingResponse.md
new file mode 100644
index 0000000..49c5206
--- /dev/null
+++ b/docs/model/GetStreamingResponse.md
@@ -0,0 +1,12 @@
+
+# GetStreamingResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMediaResponse**](LiveStreamMediaResponse.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/GetStreamingsResponse.md b/docs/model/GetStreamingsResponse.md
new file mode 100644
index 0000000..241f79a
--- /dev/null
+++ b/docs/model/GetStreamingsResponse.md
@@ -0,0 +1,12 @@
+
+# GetStreamingsResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**LiveStreamMediasResponse**](LiveStreamMediasResponse.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamAssets.md b/docs/model/LiveStreamAssets.md
new file mode 100644
index 0000000..473c854
--- /dev/null
+++ b/docs/model/LiveStreamAssets.md
@@ -0,0 +1,14 @@
+
+# LiveStreamAssets
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**hlsUrl** | **string** | | [optional]
+**iframe** | **string** | | [optional]
+**playerUrl** | **string** | | [optional]
+**thumbnailUrl** | **string** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamKeyData.md b/docs/model/LiveStreamKeyData.md
new file mode 100644
index 0000000..5a347f7
--- /dev/null
+++ b/docs/model/LiveStreamKeyData.md
@@ -0,0 +1,19 @@
+
+# LiveStreamKeyData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**createdAt** | **string** | | [optional]
+**id** | **string** | | [optional]
+**name** | **string** | | [optional]
+**rtmpUrl** | **string** | | [optional]
+**save** | **boolean** | | [optional]
+**streamKey** | **string** | | [optional]
+**type** | **string** | | [optional]
+**updatedAt** | **string** | | [optional]
+**userId** | **string** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamMediaData.md b/docs/model/LiveStreamMediaData.md
new file mode 100644
index 0000000..d5ee92d
--- /dev/null
+++ b/docs/model/LiveStreamMediaData.md
@@ -0,0 +1,22 @@
+
+# LiveStreamMediaData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**LiveStreamAssets**](LiveStreamAssets.md) | | [optional]
+**createdAt** | **string** | | [optional]
+**duration** | **number** | | [optional]
+**id** | **string** | | [optional]
+**liveStreamKeyId** | **string** | | [optional]
+**media** | [**Media**](Media.md) | | [optional]
+**qualities** | **Array<string>** | | [optional]
+**save** | **boolean** | | [optional]
+**status** | **string** | | [optional]
+**title** | **string** | | [optional]
+**updatedAt** | **string** | | [optional]
+**userId** | **string** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamMediaResponse.md b/docs/model/LiveStreamMediaResponse.md
new file mode 100644
index 0000000..448c6e2
--- /dev/null
+++ b/docs/model/LiveStreamMediaResponse.md
@@ -0,0 +1,27 @@
+
+# LiveStreamMediaResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**assets** | [**LiveStreamAssets**](LiveStreamAssets.md) | | [optional]
+**audioBitrate** | **number** | | [optional]
+**createdAt** | **string** | | [optional]
+**currentView** | **number** | | [optional]
+**duration** | **number** | | [optional]
+**frameRate** | **number** | | [optional]
+**id** | **string** | | [optional]
+**liveStreamKeyId** | **string** | | [optional]
+**media** | [**Media**](Media.md) | | [optional]
+**qualities** | **Array<string>** | | [optional]
+**save** | **boolean** | | [optional]
+**status** | **string** | | [optional]
+**title** | **string** | | [optional]
+**totalView** | **number** | | [optional]
+**type** | **string** | | [optional]
+**updatedAt** | **string** | | [optional]
+**userId** | **string** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamMediasResponse.md b/docs/model/LiveStreamMediasResponse.md
new file mode 100644
index 0000000..b0e07fa
--- /dev/null
+++ b/docs/model/LiveStreamMediasResponse.md
@@ -0,0 +1,12 @@
+
+# LiveStreamMediasResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**media** | [**Array<LiveStreamMediaResponse>**](LiveStreamMediaResponse.md) | | [optional]
+**total** | **number** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamMulticast.md b/docs/model/LiveStreamMulticast.md
new file mode 100644
index 0000000..afc6e05
--- /dev/null
+++ b/docs/model/LiveStreamMulticast.md
@@ -0,0 +1,14 @@
+
+# LiveStreamMulticast
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**id** | **string** | | [optional]
+**liveStreamKeyId** | **string** | | [optional]
+**liveStreamMulticastUrls** | **Array<string>** | | [optional]
+**userId** | **string** | | [optional]
+
+
+
diff --git a/docs/model/LiveStreamStatisticResp.md b/docs/model/LiveStreamStatisticResp.md
new file mode 100644
index 0000000..c6595c3
--- /dev/null
+++ b/docs/model/LiveStreamStatisticResp.md
@@ -0,0 +1,19 @@
+
+# LiveStreamStatisticResp
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**bitrateIn** | **number** | | [optional]
+**bitrateOut** | **number** | | [optional]
+**currentView** | **number** | | [optional]
+**dataTransferred** | **number** | | [optional]
+**fpsIn** | **number** | | [optional]
+**fpsOut** | **number** | | [optional]
+**id** | **string** | | [optional]
+**liveStreamMediaId** | **string** | | [optional]
+**totalView** | **number** | | [optional]
+
+
+
diff --git a/docs/model/UpdateLiveStreamKeyData.md b/docs/model/UpdateLiveStreamKeyData.md
new file mode 100644
index 0000000..620dac9
--- /dev/null
+++ b/docs/model/UpdateLiveStreamKeyData.md
@@ -0,0 +1,19 @@
+
+# UpdateLiveStreamKeyData
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**createdAt** | **string** | | [optional]
+**id** | **string** | | [optional]
+**name** | **string** | | [optional]
+**rtmpUrl** | **string** | | [optional]
+**save** | **boolean** | | [optional]
+**streamKey** | **string** | | [optional]
+**type** | **string** | | [optional]
+**updatedAt** | **string** | | [optional]
+**userId** | **string** | | [optional]
+
+
+
diff --git a/docs/model/UpdateLiveStreamKeyRequest.md b/docs/model/UpdateLiveStreamKeyRequest.md
new file mode 100644
index 0000000..d794de7
--- /dev/null
+++ b/docs/model/UpdateLiveStreamKeyRequest.md
@@ -0,0 +1,13 @@
+
+# UpdateLiveStreamKeyRequest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**name** | **string** | | [optional]
+**save** | **boolean** | | [optional]
+**type** | **boolean** | | [optional]
+
+
+
diff --git a/docs/model/UpdateLiveStreamKeyResponse.md b/docs/model/UpdateLiveStreamKeyResponse.md
new file mode 100644
index 0000000..e7fd673
--- /dev/null
+++ b/docs/model/UpdateLiveStreamKeyResponse.md
@@ -0,0 +1,12 @@
+
+# UpdateLiveStreamKeyResponse
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**data** | [**UpdateLiveStreamKeyData**](UpdateLiveStreamKeyData.md) | | [optional]
+**status** | **string** | | [optional]
+
+
+
diff --git a/docs/model/UpdateLiveStreamMediaRequest.md b/docs/model/UpdateLiveStreamMediaRequest.md
new file mode 100644
index 0000000..5e971f1
--- /dev/null
+++ b/docs/model/UpdateLiveStreamMediaRequest.md
@@ -0,0 +1,14 @@
+
+# UpdateLiveStreamMediaRequest
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**qualities** | [**Array<QualityConfig>**](QualityConfig.md) | Qualities of the media (default: 1080p, 720p, 360p, allow:2160p, 1440p, 1080p, 720p, 360p, 240p, 144p) | [optional]
+**save** | **boolean** | | [optional]
+**streamId** | **string** | | [optional]
+**title** | **string** | | [optional]
+
+
+
diff --git a/docs/model/UpsertLiveStreamMulticastInput.md b/docs/model/UpsertLiveStreamMulticastInput.md
new file mode 100644
index 0000000..005af2a
--- /dev/null
+++ b/docs/model/UpsertLiveStreamMulticastInput.md
@@ -0,0 +1,11 @@
+
+# UpsertLiveStreamMulticastInput
+
+## Properties
+
+Name | Type | Description | Notes
+------------ | ------------- | ------------- | -------------
+**multicastUrls** | **Array<string>** | | [optional]
+
+
+
diff --git a/package.json b/package.json
index 0c88643..1b9b85f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@aiozstream/nodejs-client",
- "version": "1.0.14",
+ "version": "1.0.11",
"description": "AIOZ stream nodejs API client",
"keywords": [
"aioz",
diff --git a/src/ObjectSerializer.ts b/src/ObjectSerializer.ts
index 78933f0..fcb7db5 100644
--- a/src/ObjectSerializer.ts
+++ b/src/ObjectSerializer.ts
@@ -19,6 +19,8 @@ import Controls from './model/Controls';
import CreateApiKeyData from './model/CreateApiKeyData';
import CreateApiKeyRequest from './model/CreateApiKeyRequest';
import CreateApiKeyResponse from './model/CreateApiKeyResponse';
+import CreateLiveStreamKeyRequest from './model/CreateLiveStreamKeyRequest';
+import CreateLiveStreamKeyResponse from './model/CreateLiveStreamKeyResponse';
import CreateMediaCaptionData from './model/CreateMediaCaptionData';
import CreateMediaCaptionResponse from './model/CreateMediaCaptionResponse';
import CreateMediaChapterData from './model/CreateMediaChapterData';
@@ -31,11 +33,23 @@ import CreatePlayerThemesResponse from './model/CreatePlayerThemesResponse';
import CreatePlaylistData from './model/CreatePlaylistData';
import CreatePlaylistRequest from './model/CreatePlaylistRequest';
import CreatePlaylistResponse from './model/CreatePlaylistResponse';
+import CreateStreamingRequest from './model/CreateStreamingRequest';
+import CreateStreamingResponse from './model/CreateStreamingResponse';
import CreateWebhookData from './model/CreateWebhookData';
import CreateWebhookRequest from './model/CreateWebhookRequest';
import CreateWebhookResponse from './model/CreateWebhookResponse';
import GetApiKeysData from './model/GetApiKeysData';
import GetApiKeysResponse from './model/GetApiKeysResponse';
+import GetLiveStreamKeyData from './model/GetLiveStreamKeyData';
+import GetLiveStreamKeyResponse from './model/GetLiveStreamKeyResponse';
+import GetLiveStreamKeysListData from './model/GetLiveStreamKeysListData';
+import GetLiveStreamKeysListResponse from './model/GetLiveStreamKeysListResponse';
+import GetLiveStreamMediasRequest from './model/GetLiveStreamMediasRequest';
+import GetLiveStreamMediasResponse from './model/GetLiveStreamMediasResponse';
+import GetLiveStreamMulticastResponse from './model/GetLiveStreamMulticastResponse';
+import GetLiveStreamStatisticResponse from './model/GetLiveStreamStatisticResponse';
+import GetLiveStreamVideoPublicResponse from './model/GetLiveStreamVideoPublicResponse';
+import GetLiveStreamVideoResponse from './model/GetLiveStreamVideoResponse';
import GetMediaCaptionsData from './model/GetMediaCaptionsData';
import GetMediaCaptionsResponse from './model/GetMediaCaptionsResponse';
import GetMediaChaptersData from './model/GetMediaChaptersData';
@@ -54,12 +68,21 @@ import GetPlaylistByIdResponse from './model/GetPlaylistByIdResponse';
import GetPlaylistListData from './model/GetPlaylistListData';
import GetPlaylistListRequest from './model/GetPlaylistListRequest';
import GetPlaylistListResponse from './model/GetPlaylistListResponse';
+import GetStreamingResponse from './model/GetStreamingResponse';
+import GetStreamingsResponse from './model/GetStreamingsResponse';
import GetTranscodeCostData from './model/GetTranscodeCostData';
import GetTranscodeCostResponse from './model/GetTranscodeCostResponse';
import GetUserWebhookData from './model/GetUserWebhookData';
import GetUserWebhookResponse from './model/GetUserWebhookResponse';
import GetWebhooksListData from './model/GetWebhooksListData';
import GetWebhooksListResponse from './model/GetWebhooksListResponse';
+import LiveStreamAssets from './model/LiveStreamAssets';
+import LiveStreamKeyData from './model/LiveStreamKeyData';
+import LiveStreamMediaData from './model/LiveStreamMediaData';
+import LiveStreamMediaResponse from './model/LiveStreamMediaResponse';
+import LiveStreamMediasResponse from './model/LiveStreamMediasResponse';
+import LiveStreamMulticast from './model/LiveStreamMulticast';
+import LiveStreamStatisticResp from './model/LiveStreamStatisticResp';
import Media from './model/Media';
import MediaAssets from './model/MediaAssets';
import MediaCaption from './model/MediaCaption';
@@ -80,11 +103,16 @@ import RequestCreateCaption from './model/RequestCreateCaption';
import ResponseError from './model/ResponseError';
import ResponseSuccess from './model/ResponseSuccess';
import Theme from './model/Theme';
+import UpdateLiveStreamKeyData from './model/UpdateLiveStreamKeyData';
+import UpdateLiveStreamKeyRequest from './model/UpdateLiveStreamKeyRequest';
+import UpdateLiveStreamKeyResponse from './model/UpdateLiveStreamKeyResponse';
+import UpdateLiveStreamMediaRequest from './model/UpdateLiveStreamMediaRequest';
import UpdateMediaInfoRequest from './model/UpdateMediaInfoRequest';
import UpdatePlayerThemeRequest from './model/UpdatePlayerThemeRequest';
import UpdatePlayerThemeResponse from './model/UpdatePlayerThemeResponse';
import UpdateWebhookRequest from './model/UpdateWebhookRequest';
import UploadLogoByIdResponse from './model/UploadLogoByIdResponse';
+import UpsertLiveStreamMulticastInput from './model/UpsertLiveStreamMulticastInput';
import User from './model/User';
import VideoConfig from './model/VideoConfig';
import VideoWatermark from './model/VideoWatermark';
@@ -126,6 +154,8 @@ const typeMap: { [index: string]: any } = {
CreateApiKeyData: CreateApiKeyData,
CreateApiKeyRequest: CreateApiKeyRequest,
CreateApiKeyResponse: CreateApiKeyResponse,
+ CreateLiveStreamKeyRequest: CreateLiveStreamKeyRequest,
+ CreateLiveStreamKeyResponse: CreateLiveStreamKeyResponse,
CreateMediaCaptionData: CreateMediaCaptionData,
CreateMediaCaptionResponse: CreateMediaCaptionResponse,
CreateMediaChapterData: CreateMediaChapterData,
@@ -138,11 +168,23 @@ const typeMap: { [index: string]: any } = {
CreatePlaylistData: CreatePlaylistData,
CreatePlaylistRequest: CreatePlaylistRequest,
CreatePlaylistResponse: CreatePlaylistResponse,
+ CreateStreamingRequest: CreateStreamingRequest,
+ CreateStreamingResponse: CreateStreamingResponse,
CreateWebhookData: CreateWebhookData,
CreateWebhookRequest: CreateWebhookRequest,
CreateWebhookResponse: CreateWebhookResponse,
GetApiKeysData: GetApiKeysData,
GetApiKeysResponse: GetApiKeysResponse,
+ GetLiveStreamKeyData: GetLiveStreamKeyData,
+ GetLiveStreamKeyResponse: GetLiveStreamKeyResponse,
+ GetLiveStreamKeysListData: GetLiveStreamKeysListData,
+ GetLiveStreamKeysListResponse: GetLiveStreamKeysListResponse,
+ GetLiveStreamMediasRequest: GetLiveStreamMediasRequest,
+ GetLiveStreamMediasResponse: GetLiveStreamMediasResponse,
+ GetLiveStreamMulticastResponse: GetLiveStreamMulticastResponse,
+ GetLiveStreamStatisticResponse: GetLiveStreamStatisticResponse,
+ GetLiveStreamVideoPublicResponse: GetLiveStreamVideoPublicResponse,
+ GetLiveStreamVideoResponse: GetLiveStreamVideoResponse,
GetMediaCaptionsData: GetMediaCaptionsData,
GetMediaCaptionsResponse: GetMediaCaptionsResponse,
GetMediaChaptersData: GetMediaChaptersData,
@@ -161,12 +203,21 @@ const typeMap: { [index: string]: any } = {
GetPlaylistListData: GetPlaylistListData,
GetPlaylistListRequest: GetPlaylistListRequest,
GetPlaylistListResponse: GetPlaylistListResponse,
+ GetStreamingResponse: GetStreamingResponse,
+ GetStreamingsResponse: GetStreamingsResponse,
GetTranscodeCostData: GetTranscodeCostData,
GetTranscodeCostResponse: GetTranscodeCostResponse,
GetUserWebhookData: GetUserWebhookData,
GetUserWebhookResponse: GetUserWebhookResponse,
GetWebhooksListData: GetWebhooksListData,
GetWebhooksListResponse: GetWebhooksListResponse,
+ LiveStreamAssets: LiveStreamAssets,
+ LiveStreamKeyData: LiveStreamKeyData,
+ LiveStreamMediaData: LiveStreamMediaData,
+ LiveStreamMediaResponse: LiveStreamMediaResponse,
+ LiveStreamMediasResponse: LiveStreamMediasResponse,
+ LiveStreamMulticast: LiveStreamMulticast,
+ LiveStreamStatisticResp: LiveStreamStatisticResp,
Media: Media,
MediaAssets: MediaAssets,
MediaCaption: MediaCaption,
@@ -187,11 +238,16 @@ const typeMap: { [index: string]: any } = {
ResponseError: ResponseError,
ResponseSuccess: ResponseSuccess,
Theme: Theme,
+ UpdateLiveStreamKeyData: UpdateLiveStreamKeyData,
+ UpdateLiveStreamKeyRequest: UpdateLiveStreamKeyRequest,
+ UpdateLiveStreamKeyResponse: UpdateLiveStreamKeyResponse,
+ UpdateLiveStreamMediaRequest: UpdateLiveStreamMediaRequest,
UpdateMediaInfoRequest: UpdateMediaInfoRequest,
UpdatePlayerThemeRequest: UpdatePlayerThemeRequest,
UpdatePlayerThemeResponse: UpdatePlayerThemeResponse,
UpdateWebhookRequest: UpdateWebhookRequest,
UploadLogoByIdResponse: UploadLogoByIdResponse,
+ UpsertLiveStreamMulticastInput: UpsertLiveStreamMulticastInput,
User: User,
VideoConfig: VideoConfig,
VideoWatermark: VideoWatermark,
diff --git a/src/api/LiveStreamApi.ts b/src/api/LiveStreamApi.ts
new file mode 100644
index 0000000..3d5e357
--- /dev/null
+++ b/src/api/LiveStreamApi.ts
@@ -0,0 +1,1219 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import path from 'path';
+import { createReadStream } from 'fs';
+import { URLSearchParams } from 'url';
+import FormData from 'form-data';
+import ObjectSerializer from '../ObjectSerializer';
+import HttpClient, { QueryOptions, ApiResponseHeaders } from '../HttpClient';
+import CreateLiveStreamKeyRequest from '../model/CreateLiveStreamKeyRequest';
+import CreateLiveStreamKeyResponse from '../model/CreateLiveStreamKeyResponse';
+import CreateStreamingRequest from '../model/CreateStreamingRequest';
+import CreateStreamingResponse from '../model/CreateStreamingResponse';
+import GetLiveStreamKeyResponse from '../model/GetLiveStreamKeyResponse';
+import GetLiveStreamKeysListResponse from '../model/GetLiveStreamKeysListResponse';
+import GetLiveStreamMediasRequest from '../model/GetLiveStreamMediasRequest';
+import GetLiveStreamMediasResponse from '../model/GetLiveStreamMediasResponse';
+import GetLiveStreamMulticastResponse from '../model/GetLiveStreamMulticastResponse';
+import GetLiveStreamStatisticResponse from '../model/GetLiveStreamStatisticResponse';
+import GetLiveStreamVideoPublicResponse from '../model/GetLiveStreamVideoPublicResponse';
+import GetLiveStreamVideoResponse from '../model/GetLiveStreamVideoResponse';
+import GetStreamingResponse from '../model/GetStreamingResponse';
+import GetStreamingsResponse from '../model/GetStreamingsResponse';
+import ResponseSuccess from '../model/ResponseSuccess';
+import UpdateLiveStreamKeyRequest from '../model/UpdateLiveStreamKeyRequest';
+import UpdateLiveStreamKeyResponse from '../model/UpdateLiveStreamKeyResponse';
+import UpdateLiveStreamMediaRequest from '../model/UpdateLiveStreamMediaRequest';
+import UpsertLiveStreamMulticastInput from '../model/UpsertLiveStreamMulticastInput';
+import { Readable } from 'stream';
+import { readableToBuffer } from '../HttpClient';
+
+/**
+ * no description
+ */
+export default class LiveStreamApi {
+ private httpClient: HttpClient;
+
+ constructor(httpClient: HttpClient) {
+ this.httpClient = httpClient;
+ }
+
+ /**
+ * Upload live stream media thumbnail
+ * @param id live stream media's id
+ * @param file file media to be uploaded
+ */
+ public async uploadThumbnail(
+ id: string,
+ file: string | Readable | Buffer
+ ): Promise {
+ return this.uploadThumbnailWithResponseHeaders(id, file).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Upload live stream media thumbnail
+ * @param id live stream media's id
+ * @param file file media to be uploaded
+ */
+ public async uploadThumbnailWithResponseHeaders(
+ id: string,
+ file: string | Readable | Buffer
+ ): Promise<{ headers: ApiResponseHeaders; body: ResponseSuccess }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling uploadThumbnail.'
+ );
+ }
+ let fileName = 'file';
+ let fileBuffer = file;
+ if (typeof file === 'string') {
+ fileName = path.basename(file);
+ fileBuffer = createReadStream(file);
+ }
+ if (file instanceof Readable) {
+ fileBuffer = await readableToBuffer(file);
+ }
+
+ // Path Params
+ const localVarPath = '/live_streams/{id}/thumbnail'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'POST';
+
+ const formData = new FormData();
+
+ formData.append(fileName, fileBuffer, fileName);
+
+ queryParams.body = formData;
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'ResponseSuccess',
+ ''
+ ) as ResponseSuccess,
+ };
+ });
+ }
+
+ /**
+ * Delete live stream media thumbnail
+ * @param id live stream media's id
+ */
+ public async deleteThumbnail(id: string): Promise {
+ return this.deleteThumbnailWithResponseHeaders(id).then((res) => res.body);
+ }
+
+ /**
+ * Delete live stream media thumbnail
+ * @param id live stream media's id
+ */
+ public async deleteThumbnailWithResponseHeaders(
+ id: string
+ ): Promise<{ headers: ApiResponseHeaders; body: ResponseSuccess }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling deleteThumbnail.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/thumbnail'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'DELETE';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'ResponseSuccess',
+ ''
+ ) as ResponseSuccess,
+ };
+ });
+ }
+
+ /**
+ * Add live stream multicast
+ * Add live stream multicast
+ * @param streamKey Live stream key. Use uuid
+ * @param data data
+ */
+ public async addMulticast(
+ streamKey: string,
+ data: UpsertLiveStreamMulticastInput = {}
+ ): Promise {
+ return this.addMulticastWithResponseHeaders(streamKey, data).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Add live stream multicast
+ * Add live stream multicast
+ * @param streamKey Live stream key. Use uuid
+ * @param data data
+ */
+ public async addMulticastWithResponseHeaders(
+ streamKey: string,
+ data: UpsertLiveStreamMulticastInput = {}
+ ): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamMulticastResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (streamKey === null || streamKey === undefined) {
+ throw new Error(
+ 'Required parameter streamKey was null or undefined when calling addMulticast.'
+ );
+ }
+ if (data === null || data === undefined) {
+ throw new Error(
+ 'Required parameter data was null or undefined when calling addMulticast.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/multicast/{stream_key}'
+ .substring(1)
+ .replace('{' + 'stream_key' + '}', encodeURIComponent(String(streamKey)));
+
+ // Body Params
+ const contentType = ObjectSerializer.getPreferredMediaType([
+ 'application/json',
+ ]);
+ queryParams.headers['Content-Type'] = contentType;
+
+ queryParams.body = ObjectSerializer.stringify(
+ ObjectSerializer.serialize(data, 'UpsertLiveStreamMulticastInput', ''),
+ contentType
+ );
+
+ queryParams.method = 'POST';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamMulticastResponse',
+ ''
+ ) as GetLiveStreamMulticastResponse,
+ };
+ });
+ }
+
+ /**
+ * Create live stream key
+ * Create live stream key
+ * @param input CreateLiveStreamKeyRequest
+ */
+ public async createLiveStreamKey(
+ input: CreateLiveStreamKeyRequest = {}
+ ): Promise {
+ return this.createLiveStreamKeyWithResponseHeaders(input).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Create live stream key
+ * Create live stream key
+ * @param input CreateLiveStreamKeyRequest
+ */
+ public async createLiveStreamKeyWithResponseHeaders(
+ input: CreateLiveStreamKeyRequest = {}
+ ): Promise<{
+ headers: ApiResponseHeaders;
+ body: CreateLiveStreamKeyResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (input === null || input === undefined) {
+ throw new Error(
+ 'Required parameter input was null or undefined when calling createLiveStreamKey.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams'.substring(1);
+
+ // Body Params
+ const contentType = ObjectSerializer.getPreferredMediaType([
+ 'application/json',
+ ]);
+ queryParams.headers['Content-Type'] = contentType;
+
+ queryParams.body = ObjectSerializer.stringify(
+ ObjectSerializer.serialize(input, 'CreateLiveStreamKeyRequest', ''),
+ contentType
+ );
+
+ queryParams.method = 'POST';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'CreateLiveStreamKeyResponse',
+ ''
+ ) as CreateLiveStreamKeyResponse,
+ };
+ });
+ }
+
+ /**
+ * Creates a new live stream media with the provided details
+ * Create a new live stream media
+ * @param id Live stream key ID
+ * @param input CreateStreamingRequest
+ */
+ public async createStreaming(
+ id: string,
+ input: CreateStreamingRequest = {}
+ ): Promise {
+ return this.createStreamingWithResponseHeaders(id, input).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Creates a new live stream media with the provided details
+ * Create a new live stream media
+ * @param id Live stream key ID
+ * @param input CreateStreamingRequest
+ */
+ public async createStreamingWithResponseHeaders(
+ id: string,
+ input: CreateStreamingRequest = {}
+ ): Promise<{ headers: ApiResponseHeaders; body: CreateStreamingResponse }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling createStreaming.'
+ );
+ }
+ if (input === null || input === undefined) {
+ throw new Error(
+ 'Required parameter input was null or undefined when calling createStreaming.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/streamings'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ // Body Params
+ const contentType = ObjectSerializer.getPreferredMediaType([
+ 'application/json',
+ ]);
+ queryParams.headers['Content-Type'] = contentType;
+
+ queryParams.body = ObjectSerializer.stringify(
+ ObjectSerializer.serialize(input, 'CreateStreamingRequest', ''),
+ contentType
+ );
+
+ queryParams.method = 'POST';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'CreateStreamingResponse',
+ ''
+ ) as CreateStreamingResponse,
+ };
+ });
+ }
+
+ /**
+ * Delete a live stream key by ID
+ * Delete live stream key
+ * @param id Live stream key ID
+ */
+ public async deleteLiveStreamKey(id: string): Promise {
+ return this.deleteLiveStreamKeyWithResponseHeaders(id).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Delete a live stream key by ID
+ * Delete live stream key
+ * @param id Live stream key ID
+ */
+ public async deleteLiveStreamKeyWithResponseHeaders(
+ id: string
+ ): Promise<{ headers: ApiResponseHeaders; body: ResponseSuccess }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling deleteLiveStreamKey.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'DELETE';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'ResponseSuccess',
+ ''
+ ) as ResponseSuccess,
+ };
+ });
+ }
+
+ /**
+ * Delete live stream multicast
+ * Delete live stream multicast
+ * @param streamKey Live stream key. UUID string format
+ */
+ public async deleteLiveStreamMulticast(
+ streamKey: string
+ ): Promise {
+ return this.deleteLiveStreamMulticastWithResponseHeaders(streamKey).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Delete live stream multicast
+ * Delete live stream multicast
+ * @param streamKey Live stream key. UUID string format
+ */
+ public async deleteLiveStreamMulticastWithResponseHeaders(
+ streamKey: string
+ ): Promise<{ headers: ApiResponseHeaders; body: ResponseSuccess }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (streamKey === null || streamKey === undefined) {
+ throw new Error(
+ 'Required parameter streamKey was null or undefined when calling deleteLiveStreamMulticast.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/multicast/{stream_key}'
+ .substring(1)
+ .replace('{' + 'stream_key' + '}', encodeURIComponent(String(streamKey)));
+
+ queryParams.method = 'DELETE';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'ResponseSuccess',
+ ''
+ ) as ResponseSuccess,
+ };
+ });
+ }
+
+ /**
+ * Delete live stream are created by a specific live stream key
+ * Delete live stream video
+ * @param id Live stream key ID
+ * @param streamId Streaming ID
+ */
+ public async deleteStreaming(
+ id: string,
+ streamId: string
+ ): Promise {
+ return this.deleteStreamingWithResponseHeaders(id, streamId).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Delete live stream are created by a specific live stream key
+ * Delete live stream video
+ * @param id Live stream key ID
+ * @param streamId Streaming ID
+ */
+ public async deleteStreamingWithResponseHeaders(
+ id: string,
+ streamId: string
+ ): Promise<{ headers: ApiResponseHeaders; body: ResponseSuccess }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling deleteStreaming.'
+ );
+ }
+ if (streamId === null || streamId === undefined) {
+ throw new Error(
+ 'Required parameter streamId was null or undefined when calling deleteStreaming.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/streamings/{stream_id}'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)))
+ .replace('{' + 'stream_id' + '}', encodeURIComponent(String(streamId)));
+
+ queryParams.method = 'DELETE';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'ResponseSuccess',
+ ''
+ ) as ResponseSuccess,
+ };
+ });
+ }
+
+ /**
+ * Get live stream key
+ * Get live stream key
+ * @param id ID
+ */
+ public async getLiveStreamKey(id: string): Promise {
+ return this.getLiveStreamKeyWithResponseHeaders(id).then((res) => res.body);
+ }
+
+ /**
+ * Get live stream key
+ * Get live stream key
+ * @param id ID
+ */
+ public async getLiveStreamKeyWithResponseHeaders(
+ id: string
+ ): Promise<{ headers: ApiResponseHeaders; body: GetLiveStreamKeyResponse }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling getLiveStreamKey.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamKeyResponse',
+ ''
+ ) as GetLiveStreamKeyResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream key list
+ * Get live stream key list
+ * @param {Object} searchParams
+ * @param { string } searchParams.search only support search by name
+ * @param { 'created_at' | 'name' } searchParams.sortBy sort by
+ * @param { 'asc' | 'desc' } searchParams.orderBy allowed: asc, desc. Default: asc
+ * @param { number } searchParams.offset offset, allowed values greater than or equal to 0.
+ * @param { number } searchParams.limit results per page.
+ * @param { 'audio' | 'video' } searchParams.type type of media. Enums(audio, video) default(video).
+ */
+ public async getLiveStreamKeys(
+ args: {
+ search?: string;
+ sortBy?: 'created_at' | 'name';
+ orderBy?: 'asc' | 'desc';
+ offset?: number;
+ limit?: number;
+ type?: 'audio' | 'video';
+ } = {}
+ ): Promise {
+ return this.getLiveStreamKeysWithResponseHeaders(args).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Get live stream key list
+ * Get live stream key list
+ * @param {Object} searchParams
+ * @param { string } searchParams.search only support search by name
+ * @param { 'created_at' | 'name' } searchParams.sortBy sort by
+ * @param { 'asc' | 'desc' } searchParams.orderBy allowed: asc, desc. Default: asc
+ * @param { number } searchParams.offset offset, allowed values greater than or equal to 0.
+ * @param { number } searchParams.limit results per page.
+ * @param { 'audio' | 'video' } searchParams.type type of media. Enums(audio, video) default(video).
+ */
+ public async getLiveStreamKeysWithResponseHeaders({
+ search,
+ sortBy,
+ orderBy,
+ offset,
+ limit,
+ type,
+ }: {
+ search?: string;
+ sortBy?: 'created_at' | 'name';
+ orderBy?: 'asc' | 'desc';
+ offset?: number;
+ limit?: number;
+ type?: 'audio' | 'video';
+ } = {}): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamKeysListResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ // Path Params
+ const localVarPath = '/live_streams'.substring(1);
+
+ // Query Params
+ const urlSearchParams = new URLSearchParams();
+
+ if (search !== undefined) {
+ urlSearchParams.append(
+ 'search',
+ ObjectSerializer.serialize(search, 'string', '')
+ );
+ }
+ if (sortBy !== undefined) {
+ urlSearchParams.append(
+ 'sort_by',
+ ObjectSerializer.serialize(sortBy, "'created_at' | 'name'", '')
+ );
+ }
+ if (orderBy !== undefined) {
+ urlSearchParams.append(
+ 'order_by',
+ ObjectSerializer.serialize(orderBy, "'asc' | 'desc'", '')
+ );
+ }
+ if (offset !== undefined) {
+ urlSearchParams.append(
+ 'offset',
+ ObjectSerializer.serialize(offset, 'number', '')
+ );
+ }
+ if (limit !== undefined) {
+ urlSearchParams.append(
+ 'limit',
+ ObjectSerializer.serialize(limit, 'number', '')
+ );
+ }
+ if (type !== undefined) {
+ urlSearchParams.append(
+ 'type',
+ ObjectSerializer.serialize(type, "'audio' | 'video'", '')
+ );
+ }
+
+ queryParams.searchParams = urlSearchParams;
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamKeysListResponse',
+ ''
+ ) as GetLiveStreamKeysListResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream multicast by stream key
+ * Get live stream multicast by stream key
+ * @param streamKey Live stream key. UUID string format
+ */
+ public async getLiveStreamMulticastByStreamKey(
+ streamKey: string
+ ): Promise {
+ return this.getLiveStreamMulticastByStreamKeyWithResponseHeaders(
+ streamKey
+ ).then((res) => res.body);
+ }
+
+ /**
+ * Get live stream multicast by stream key
+ * Get live stream multicast by stream key
+ * @param streamKey Live stream key. UUID string format
+ */
+ public async getLiveStreamMulticastByStreamKeyWithResponseHeaders(
+ streamKey: string
+ ): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamMulticastResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (streamKey === null || streamKey === undefined) {
+ throw new Error(
+ 'Required parameter streamKey was null or undefined when calling getLiveStreamMulticastByStreamKey.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/multicast/{stream_key}'
+ .substring(1)
+ .replace('{' + 'stream_key' + '}', encodeURIComponent(String(streamKey)));
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamMulticastResponse',
+ ''
+ ) as GetLiveStreamMulticastResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream video public for a specific live stream key
+ * Get live stream video public
+ * @param id Live stream key ID
+ */
+ public async getLiveStreamPlayerInfo(
+ id: string
+ ): Promise {
+ return this.getLiveStreamPlayerInfoWithResponseHeaders(id).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Get live stream video public for a specific live stream key
+ * Get live stream video public
+ * @param id Live stream key ID
+ */
+ public async getLiveStreamPlayerInfoWithResponseHeaders(id: string): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamVideoPublicResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling getLiveStreamPlayerInfo.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/player/{id}/media'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamVideoPublicResponse',
+ ''
+ ) as GetLiveStreamVideoPublicResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream statistic by stream media id
+ * Get live stream statistic by stream media id
+ * @param streamMediaId Live stream media ID
+ */
+ public async getLiveStreamStatisticByStreamMediaId(
+ streamMediaId: string
+ ): Promise {
+ return this.getLiveStreamStatisticByStreamMediaIdWithResponseHeaders(
+ streamMediaId
+ ).then((res) => res.body);
+ }
+
+ /**
+ * Get live stream statistic by stream media id
+ * Get live stream statistic by stream media id
+ * @param streamMediaId Live stream media ID
+ */
+ public async getLiveStreamStatisticByStreamMediaIdWithResponseHeaders(
+ streamMediaId: string
+ ): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamStatisticResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (streamMediaId === null || streamMediaId === undefined) {
+ throw new Error(
+ 'Required parameter streamMediaId was null or undefined when calling getLiveStreamStatisticByStreamMediaId.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/statistic/{stream_media_id}'
+ .substring(1)
+ .replace(
+ '{' + 'stream_media_id' + '}',
+ encodeURIComponent(String(streamMediaId))
+ );
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamStatisticResponse',
+ ''
+ ) as GetLiveStreamStatisticResponse,
+ };
+ });
+ }
+
+ /**
+ * Get a specific live stream video by ID
+ * Get live stream video
+ * @param id Live stream video ID
+ */
+ public async getLiveStreamVideo(
+ id: string
+ ): Promise {
+ return this.getLiveStreamVideoWithResponseHeaders(id).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Get a specific live stream video by ID
+ * Get live stream video
+ * @param id Live stream video ID
+ */
+ public async getLiveStreamVideoWithResponseHeaders(id: string): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamVideoResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling getLiveStreamVideo.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/video'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamVideoResponse',
+ ''
+ ) as GetLiveStreamVideoResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream media for a specific live stream key
+ * Get live stream media
+ * @param id Live stream key ID
+ * @param data data
+ */
+ public async getMedias(
+ id: string,
+ data: GetLiveStreamMediasRequest = {}
+ ): Promise {
+ return this.getMediasWithResponseHeaders(id, data).then((res) => res.body);
+ }
+
+ /**
+ * Get live stream media for a specific live stream key
+ * Get live stream media
+ * @param id Live stream key ID
+ * @param data data
+ */
+ public async getMediasWithResponseHeaders(
+ id: string,
+ data: GetLiveStreamMediasRequest = {}
+ ): Promise<{
+ headers: ApiResponseHeaders;
+ body: GetLiveStreamMediasResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling getMedias.'
+ );
+ }
+ if (data === null || data === undefined) {
+ throw new Error(
+ 'Required parameter data was null or undefined when calling getMedias.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/media'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ // Body Params
+ const contentType = ObjectSerializer.getPreferredMediaType([
+ 'application/json',
+ ]);
+ queryParams.headers['Content-Type'] = contentType;
+
+ queryParams.body = ObjectSerializer.stringify(
+ ObjectSerializer.serialize(data, 'GetLiveStreamMediasRequest', ''),
+ contentType
+ );
+
+ queryParams.method = 'POST';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetLiveStreamMediasResponse',
+ ''
+ ) as GetLiveStreamMediasResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream media streaming for a specific live stream key
+ * Get live stream media streaming
+ * @param id Live stream key ID
+ * @param streamId Stream ID
+ */
+ public async getStreaming(
+ id: string,
+ streamId: string
+ ): Promise {
+ return this.getStreamingWithResponseHeaders(id, streamId).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Get live stream media streaming for a specific live stream key
+ * Get live stream media streaming
+ * @param id Live stream key ID
+ * @param streamId Stream ID
+ */
+ public async getStreamingWithResponseHeaders(
+ id: string,
+ streamId: string
+ ): Promise<{ headers: ApiResponseHeaders; body: GetStreamingResponse }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling getStreaming.'
+ );
+ }
+ if (streamId === null || streamId === undefined) {
+ throw new Error(
+ 'Required parameter streamId was null or undefined when calling getStreaming.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/streamings/{stream_id}'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)))
+ .replace('{' + 'stream_id' + '}', encodeURIComponent(String(streamId)));
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetStreamingResponse',
+ ''
+ ) as GetStreamingResponse,
+ };
+ });
+ }
+
+ /**
+ * Get live stream media streamings for a specific live stream key
+ * Get live stream media streamings
+ * @param id Live stream key ID
+ */
+ public async getStreamings(id: string): Promise {
+ return this.getStreamingsWithResponseHeaders(id).then((res) => res.body);
+ }
+
+ /**
+ * Get live stream media streamings for a specific live stream key
+ * Get live stream media streamings
+ * @param id Live stream key ID
+ */
+ public async getStreamingsWithResponseHeaders(
+ id: string
+ ): Promise<{ headers: ApiResponseHeaders; body: GetStreamingsResponse }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling getStreamings.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/streamings'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ queryParams.method = 'GET';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'GetStreamingsResponse',
+ ''
+ ) as GetStreamingsResponse,
+ };
+ });
+ }
+
+ /**
+ * Update a live stream key by ID
+ * Update live stream key
+ * @param id Live stream key ID
+ * @param input UpdateLiveStreamKeyRequest
+ */
+ public async updateLiveStreamKey(
+ id: string,
+ input: UpdateLiveStreamKeyRequest = {}
+ ): Promise {
+ return this.updateLiveStreamKeyWithResponseHeaders(id, input).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Update a live stream key by ID
+ * Update live stream key
+ * @param id Live stream key ID
+ * @param input UpdateLiveStreamKeyRequest
+ */
+ public async updateLiveStreamKeyWithResponseHeaders(
+ id: string,
+ input: UpdateLiveStreamKeyRequest = {}
+ ): Promise<{
+ headers: ApiResponseHeaders;
+ body: UpdateLiveStreamKeyResponse;
+ }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling updateLiveStreamKey.'
+ );
+ }
+ if (input === null || input === undefined) {
+ throw new Error(
+ 'Required parameter input was null or undefined when calling updateLiveStreamKey.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ // Body Params
+ const contentType = ObjectSerializer.getPreferredMediaType([
+ 'application/json',
+ ]);
+ queryParams.headers['Content-Type'] = contentType;
+
+ queryParams.body = ObjectSerializer.stringify(
+ ObjectSerializer.serialize(input, 'UpdateLiveStreamKeyRequest', ''),
+ contentType
+ );
+
+ queryParams.method = 'PUT';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'UpdateLiveStreamKeyResponse',
+ ''
+ ) as UpdateLiveStreamKeyResponse,
+ };
+ });
+ }
+
+ /**
+ * Update live stream media. You can only update while live streaming.
+ * Update live stream media
+ * @param id Live stream key ID
+ * @param data data
+ */
+ public async updateMedia(
+ id: string,
+ data: UpdateLiveStreamMediaRequest = {}
+ ): Promise {
+ return this.updateMediaWithResponseHeaders(id, data).then(
+ (res) => res.body
+ );
+ }
+
+ /**
+ * Update live stream media. You can only update while live streaming.
+ * Update live stream media
+ * @param id Live stream key ID
+ * @param data data
+ */
+ public async updateMediaWithResponseHeaders(
+ id: string,
+ data: UpdateLiveStreamMediaRequest = {}
+ ): Promise<{ headers: ApiResponseHeaders; body: ResponseSuccess }> {
+ const queryParams: QueryOptions = {};
+ queryParams.headers = {};
+ if (id === null || id === undefined) {
+ throw new Error(
+ 'Required parameter id was null or undefined when calling updateMedia.'
+ );
+ }
+ if (data === null || data === undefined) {
+ throw new Error(
+ 'Required parameter data was null or undefined when calling updateMedia.'
+ );
+ }
+ // Path Params
+ const localVarPath = '/live_streams/{id}/streamings'
+ .substring(1)
+ .replace('{' + 'id' + '}', encodeURIComponent(String(id)));
+
+ // Body Params
+ const contentType = ObjectSerializer.getPreferredMediaType([
+ 'application/json',
+ ]);
+ queryParams.headers['Content-Type'] = contentType;
+
+ queryParams.body = ObjectSerializer.stringify(
+ ObjectSerializer.serialize(data, 'UpdateLiveStreamMediaRequest', ''),
+ contentType
+ );
+
+ queryParams.method = 'PUT';
+
+ return this.httpClient.call(localVarPath, queryParams).then((response) => {
+ return {
+ headers: response.headers,
+ body: ObjectSerializer.deserialize(
+ ObjectSerializer.parse(
+ response.body,
+ response.headers['content-type']
+ ),
+ 'ResponseSuccess',
+ ''
+ ) as ResponseSuccess,
+ };
+ });
+ }
+}
diff --git a/src/index.ts b/src/index.ts
index 8d413a4..14e7117 100644
--- a/src/index.ts
+++ b/src/index.ts
@@ -12,6 +12,7 @@
import HttpClient from './HttpClient';
import ApiKeyApi from './api/ApiKeyApi';
+import LiveStreamApi from './api/LiveStreamApi';
import MediaApi from './api/MediaApi';
import MediaChapterApi from './api/MediaChapterApi';
import PlayersApi from './api/PlayersApi';
@@ -32,6 +33,7 @@ const MAX_CHUNK_SIZE = 128 * 1024 * 1024;
class StreamClient {
private httpClient: HttpClient;
private _apiKey: ApiKeyApi;
+ private _liveStream: LiveStreamApi;
private _media: MediaApi;
private _mediaChapter: MediaChapterApi;
private _players: PlayersApi;
@@ -77,6 +79,7 @@ class StreamClient {
});
this._apiKey = new ApiKeyApi(this.httpClient);
+ this._liveStream = new LiveStreamApi(this.httpClient);
this._media = new MediaApi(this.httpClient);
this._mediaChapter = new MediaChapterApi(this.httpClient);
this._players = new PlayersApi(this.httpClient);
@@ -92,6 +95,14 @@ class StreamClient {
return this._apiKey;
}
+ /**
+ * Get an LiveStreamApi instance
+ * @return LiveStreamApi
+ */
+ public get liveStream(): LiveStreamApi {
+ return this._liveStream;
+ }
+
/**
* Get an MediaApi instance
* @return MediaApi
diff --git a/src/model/CreateLiveStreamKeyRequest.ts b/src/model/CreateLiveStreamKeyRequest.ts
new file mode 100644
index 0000000..d9ce049
--- /dev/null
+++ b/src/model/CreateLiveStreamKeyRequest.ts
@@ -0,0 +1,45 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class CreateLiveStreamKeyRequest {
+ 'name'?: string;
+ 'save'?: boolean;
+ 'type'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'name',
+ baseName: 'name',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'type',
+ baseName: 'type',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return CreateLiveStreamKeyRequest.attributeTypeMap;
+ }
+}
diff --git a/src/model/CreateLiveStreamKeyResponse.ts b/src/model/CreateLiveStreamKeyResponse.ts
new file mode 100644
index 0000000..314e200
--- /dev/null
+++ b/src/model/CreateLiveStreamKeyResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamKeyData from './LiveStreamKeyData.js';
+
+export default class CreateLiveStreamKeyResponse {
+ 'data'?: LiveStreamKeyData;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamKeyData',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return CreateLiveStreamKeyResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/CreateStreamingRequest.ts b/src/model/CreateStreamingRequest.ts
new file mode 100644
index 0000000..67c7711
--- /dev/null
+++ b/src/model/CreateStreamingRequest.ts
@@ -0,0 +1,49 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import QualityConfig from './QualityConfig.js';
+
+export default class CreateStreamingRequest {
+ /**
+ * Qualities of the media (default: 1080p, 720p, 360p, allow:2160p, 1440p, 1080p, 720p, 360p, 240p, 144p)
+ */
+ 'qualities'?: Array;
+ 'save'?: boolean;
+ 'title'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'qualities',
+ baseName: 'qualities',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'title',
+ baseName: 'title',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return CreateStreamingRequest.attributeTypeMap;
+ }
+}
diff --git a/src/model/CreateStreamingResponse.ts b/src/model/CreateStreamingResponse.ts
new file mode 100644
index 0000000..b5a8cfe
--- /dev/null
+++ b/src/model/CreateStreamingResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediaData from './LiveStreamMediaData.js';
+
+export default class CreateStreamingResponse {
+ 'data'?: LiveStreamMediaData;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMediaData',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return CreateStreamingResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamKeyData.ts b/src/model/GetLiveStreamKeyData.ts
new file mode 100644
index 0000000..a18ab06
--- /dev/null
+++ b/src/model/GetLiveStreamKeyData.ts
@@ -0,0 +1,87 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class GetLiveStreamKeyData {
+ 'createdAt'?: string;
+ 'id'?: string;
+ 'name'?: string;
+ 'rtmpUrl'?: string;
+ 'save'?: boolean;
+ 'streamKey'?: string;
+ 'type'?: string;
+ 'updatedAt'?: string;
+ 'userId'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'createdAt',
+ baseName: 'created_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'name',
+ baseName: 'name',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'rtmpUrl',
+ baseName: 'rtmp_url',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'streamKey',
+ baseName: 'stream_key',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'type',
+ baseName: 'type',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'updatedAt',
+ baseName: 'updated_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'userId',
+ baseName: 'user_id',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamKeyData.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamKeyResponse.ts b/src/model/GetLiveStreamKeyResponse.ts
new file mode 100644
index 0000000..906e6e5
--- /dev/null
+++ b/src/model/GetLiveStreamKeyResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import GetLiveStreamKeyData from './GetLiveStreamKeyData.js';
+
+export default class GetLiveStreamKeyResponse {
+ 'data'?: GetLiveStreamKeyData;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'GetLiveStreamKeyData',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamKeyResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamKeysListData.ts b/src/model/GetLiveStreamKeysListData.ts
new file mode 100644
index 0000000..2158792
--- /dev/null
+++ b/src/model/GetLiveStreamKeysListData.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import GetLiveStreamKeyData from './GetLiveStreamKeyData.js';
+
+export default class GetLiveStreamKeysListData {
+ 'liveStreamKeys'?: Array;
+ 'total'?: number;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'liveStreamKeys',
+ baseName: 'live_stream_keys',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'total',
+ baseName: 'total',
+ type: 'number',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamKeysListData.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamKeysListResponse.ts b/src/model/GetLiveStreamKeysListResponse.ts
new file mode 100644
index 0000000..565d0c7
--- /dev/null
+++ b/src/model/GetLiveStreamKeysListResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import GetLiveStreamKeysListData from './GetLiveStreamKeysListData.js';
+
+export default class GetLiveStreamKeysListResponse {
+ 'data'?: GetLiveStreamKeysListData;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'GetLiveStreamKeysListData',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamKeysListResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamMediasRequest.ts b/src/model/GetLiveStreamMediasRequest.ts
new file mode 100644
index 0000000..0421a9b
--- /dev/null
+++ b/src/model/GetLiveStreamMediasRequest.ts
@@ -0,0 +1,80 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class GetLiveStreamMediasRequest {
+ 'limit'?: number;
+ 'liveStreamKeyId'?: string;
+ 'mediaStatus'?: string;
+ 'offset'?: number;
+ 'orderBy'?: string;
+ 'search'?: string;
+ 'sortBy'?: string;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'limit',
+ baseName: 'limit',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'liveStreamKeyId',
+ baseName: 'live_stream_key_id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'mediaStatus',
+ baseName: 'media_status',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'offset',
+ baseName: 'offset',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'orderBy',
+ baseName: 'order_by',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'search',
+ baseName: 'search',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'sortBy',
+ baseName: 'sort_by',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamMediasRequest.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamMediasResponse.ts b/src/model/GetLiveStreamMediasResponse.ts
new file mode 100644
index 0000000..b6cd1a1
--- /dev/null
+++ b/src/model/GetLiveStreamMediasResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediasResponse from './LiveStreamMediasResponse.js';
+
+export default class GetLiveStreamMediasResponse {
+ 'data'?: LiveStreamMediasResponse;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMediasResponse',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamMediasResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamMulticastResponse.ts b/src/model/GetLiveStreamMulticastResponse.ts
new file mode 100644
index 0000000..a5b3a6f
--- /dev/null
+++ b/src/model/GetLiveStreamMulticastResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMulticast from './LiveStreamMulticast.js';
+
+export default class GetLiveStreamMulticastResponse {
+ 'data'?: LiveStreamMulticast;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMulticast',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamMulticastResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamStatisticResponse.ts b/src/model/GetLiveStreamStatisticResponse.ts
new file mode 100644
index 0000000..84d58e8
--- /dev/null
+++ b/src/model/GetLiveStreamStatisticResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamStatisticResp from './LiveStreamStatisticResp.js';
+
+export default class GetLiveStreamStatisticResponse {
+ 'data'?: LiveStreamStatisticResp;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamStatisticResp',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamStatisticResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamVideoPublicResponse.ts b/src/model/GetLiveStreamVideoPublicResponse.ts
new file mode 100644
index 0000000..4ff3bc0
--- /dev/null
+++ b/src/model/GetLiveStreamVideoPublicResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediaResponse from './LiveStreamMediaResponse.js';
+
+export default class GetLiveStreamVideoPublicResponse {
+ 'data'?: LiveStreamMediaResponse;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMediaResponse',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamVideoPublicResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetLiveStreamVideoResponse.ts b/src/model/GetLiveStreamVideoResponse.ts
new file mode 100644
index 0000000..bc6829a
--- /dev/null
+++ b/src/model/GetLiveStreamVideoResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediaResponse from './LiveStreamMediaResponse.js';
+
+export default class GetLiveStreamVideoResponse {
+ 'data'?: LiveStreamMediaResponse;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMediaResponse',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetLiveStreamVideoResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetStreamingResponse.ts b/src/model/GetStreamingResponse.ts
new file mode 100644
index 0000000..b919878
--- /dev/null
+++ b/src/model/GetStreamingResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediaResponse from './LiveStreamMediaResponse.js';
+
+export default class GetStreamingResponse {
+ 'data'?: LiveStreamMediaResponse;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMediaResponse',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetStreamingResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/GetStreamingsResponse.ts b/src/model/GetStreamingsResponse.ts
new file mode 100644
index 0000000..6c50bd4
--- /dev/null
+++ b/src/model/GetStreamingsResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediasResponse from './LiveStreamMediasResponse.js';
+
+export default class GetStreamingsResponse {
+ 'data'?: LiveStreamMediasResponse;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'LiveStreamMediasResponse',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return GetStreamingsResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamAssets.ts b/src/model/LiveStreamAssets.ts
new file mode 100644
index 0000000..4093ca5
--- /dev/null
+++ b/src/model/LiveStreamAssets.ts
@@ -0,0 +1,52 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class LiveStreamAssets {
+ 'hlsUrl'?: string;
+ 'iframe'?: string;
+ 'playerUrl'?: string;
+ 'thumbnailUrl'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'hlsUrl',
+ baseName: 'hls_url',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'iframe',
+ baseName: 'iframe',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'playerUrl',
+ baseName: 'player_url',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'thumbnailUrl',
+ baseName: 'thumbnail_url',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamAssets.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamKeyData.ts b/src/model/LiveStreamKeyData.ts
new file mode 100644
index 0000000..a546f2a
--- /dev/null
+++ b/src/model/LiveStreamKeyData.ts
@@ -0,0 +1,87 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class LiveStreamKeyData {
+ 'createdAt'?: string;
+ 'id'?: string;
+ 'name'?: string;
+ 'rtmpUrl'?: string;
+ 'save'?: boolean;
+ 'streamKey'?: string;
+ 'type'?: string;
+ 'updatedAt'?: string;
+ 'userId'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'createdAt',
+ baseName: 'created_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'name',
+ baseName: 'name',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'rtmpUrl',
+ baseName: 'rtmp_url',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'streamKey',
+ baseName: 'stream_key',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'type',
+ baseName: 'type',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'updatedAt',
+ baseName: 'updated_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'userId',
+ baseName: 'user_id',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamKeyData.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamMediaData.ts b/src/model/LiveStreamMediaData.ts
new file mode 100644
index 0000000..22b9b98
--- /dev/null
+++ b/src/model/LiveStreamMediaData.ts
@@ -0,0 +1,110 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamAssets from './LiveStreamAssets.js';
+import Media from './Media.js';
+
+export default class LiveStreamMediaData {
+ 'assets'?: LiveStreamAssets;
+ 'createdAt'?: string;
+ 'duration'?: number;
+ 'id'?: string;
+ 'liveStreamKeyId'?: string;
+ 'media'?: Media;
+ 'qualities'?: Array;
+ 'save'?: boolean;
+ 'status'?: string;
+ 'title'?: string;
+ 'updatedAt'?: string;
+ 'userId'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'assets',
+ baseName: 'assets',
+ type: 'LiveStreamAssets',
+ format: '',
+ },
+ {
+ name: 'createdAt',
+ baseName: 'created_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'duration',
+ baseName: 'duration',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'liveStreamKeyId',
+ baseName: 'live_stream_key_id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'media',
+ baseName: 'media',
+ type: 'Media',
+ format: '',
+ },
+ {
+ name: 'qualities',
+ baseName: 'qualities',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'title',
+ baseName: 'title',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'updatedAt',
+ baseName: 'updated_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'userId',
+ baseName: 'user_id',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamMediaData.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamMediaResponse.ts b/src/model/LiveStreamMediaResponse.ts
new file mode 100644
index 0000000..43de905
--- /dev/null
+++ b/src/model/LiveStreamMediaResponse.ts
@@ -0,0 +1,145 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamAssets from './LiveStreamAssets.js';
+import Media from './Media.js';
+
+export default class LiveStreamMediaResponse {
+ 'assets'?: LiveStreamAssets;
+ 'audioBitrate'?: number;
+ 'createdAt'?: string;
+ 'currentView'?: number;
+ 'duration'?: number;
+ 'frameRate'?: number;
+ 'id'?: string;
+ 'liveStreamKeyId'?: string;
+ 'media'?: Media;
+ 'qualities'?: Array;
+ 'save'?: boolean;
+ 'status'?: string;
+ 'title'?: string;
+ 'totalView'?: number;
+ 'type'?: string;
+ 'updatedAt'?: string;
+ 'userId'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'assets',
+ baseName: 'assets',
+ type: 'LiveStreamAssets',
+ format: '',
+ },
+ {
+ name: 'audioBitrate',
+ baseName: 'audio_bitrate',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'createdAt',
+ baseName: 'created_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'currentView',
+ baseName: 'current_view',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'duration',
+ baseName: 'duration',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'frameRate',
+ baseName: 'frame_rate',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'liveStreamKeyId',
+ baseName: 'live_stream_key_id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'media',
+ baseName: 'media',
+ type: 'Media',
+ format: '',
+ },
+ {
+ name: 'qualities',
+ baseName: 'qualities',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'title',
+ baseName: 'title',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'totalView',
+ baseName: 'total_view',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'type',
+ baseName: 'type',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'updatedAt',
+ baseName: 'updated_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'userId',
+ baseName: 'user_id',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamMediaResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamMediasResponse.ts b/src/model/LiveStreamMediasResponse.ts
new file mode 100644
index 0000000..6d8fa40
--- /dev/null
+++ b/src/model/LiveStreamMediasResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import LiveStreamMediaResponse from './LiveStreamMediaResponse.js';
+
+export default class LiveStreamMediasResponse {
+ 'media'?: Array;
+ 'total'?: number;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'media',
+ baseName: 'media',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'total',
+ baseName: 'total',
+ type: 'number',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamMediasResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamMulticast.ts b/src/model/LiveStreamMulticast.ts
new file mode 100644
index 0000000..46f5460
--- /dev/null
+++ b/src/model/LiveStreamMulticast.ts
@@ -0,0 +1,52 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class LiveStreamMulticast {
+ 'id'?: string;
+ 'liveStreamKeyId'?: string;
+ 'liveStreamMulticastUrls'?: Array;
+ 'userId'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'liveStreamKeyId',
+ baseName: 'live_stream_key_id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'liveStreamMulticastUrls',
+ baseName: 'live_stream_multicast_urls',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'userId',
+ baseName: 'user_id',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamMulticast.attributeTypeMap;
+ }
+}
diff --git a/src/model/LiveStreamStatisticResp.ts b/src/model/LiveStreamStatisticResp.ts
new file mode 100644
index 0000000..67e8ec2
--- /dev/null
+++ b/src/model/LiveStreamStatisticResp.ts
@@ -0,0 +1,87 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class LiveStreamStatisticResp {
+ 'bitrateIn'?: number;
+ 'bitrateOut'?: number;
+ 'currentView'?: number;
+ 'dataTransferred'?: number;
+ 'fpsIn'?: number;
+ 'fpsOut'?: number;
+ 'id'?: string;
+ 'liveStreamMediaId'?: string;
+ 'totalView'?: number;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'bitrateIn',
+ baseName: 'bitrate_in',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'bitrateOut',
+ baseName: 'bitrate_out',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'currentView',
+ baseName: 'current_view',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'dataTransferred',
+ baseName: 'data_transferred',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'fpsIn',
+ baseName: 'fps_in',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'fpsOut',
+ baseName: 'fps_out',
+ type: 'number',
+ format: '',
+ },
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'liveStreamMediaId',
+ baseName: 'live_stream_media_id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'totalView',
+ baseName: 'total_view',
+ type: 'number',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return LiveStreamStatisticResp.attributeTypeMap;
+ }
+}
diff --git a/src/model/UpdateLiveStreamKeyData.ts b/src/model/UpdateLiveStreamKeyData.ts
new file mode 100644
index 0000000..caad63d
--- /dev/null
+++ b/src/model/UpdateLiveStreamKeyData.ts
@@ -0,0 +1,87 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class UpdateLiveStreamKeyData {
+ 'createdAt'?: string;
+ 'id'?: string;
+ 'name'?: string;
+ 'rtmpUrl'?: string;
+ 'save'?: boolean;
+ 'streamKey'?: string;
+ 'type'?: string;
+ 'updatedAt'?: string;
+ 'userId'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'createdAt',
+ baseName: 'created_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'id',
+ baseName: 'id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'name',
+ baseName: 'name',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'rtmpUrl',
+ baseName: 'rtmp_url',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'streamKey',
+ baseName: 'stream_key',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'type',
+ baseName: 'type',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'updatedAt',
+ baseName: 'updated_at',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'userId',
+ baseName: 'user_id',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return UpdateLiveStreamKeyData.attributeTypeMap;
+ }
+}
diff --git a/src/model/UpdateLiveStreamKeyRequest.ts b/src/model/UpdateLiveStreamKeyRequest.ts
new file mode 100644
index 0000000..c34d0cf
--- /dev/null
+++ b/src/model/UpdateLiveStreamKeyRequest.ts
@@ -0,0 +1,45 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class UpdateLiveStreamKeyRequest {
+ 'name'?: string;
+ 'save'?: boolean;
+ 'type'?: boolean;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'name',
+ baseName: 'name',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'type',
+ baseName: 'type',
+ type: 'boolean',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return UpdateLiveStreamKeyRequest.attributeTypeMap;
+ }
+}
diff --git a/src/model/UpdateLiveStreamKeyResponse.ts b/src/model/UpdateLiveStreamKeyResponse.ts
new file mode 100644
index 0000000..9d2dc0a
--- /dev/null
+++ b/src/model/UpdateLiveStreamKeyResponse.ts
@@ -0,0 +1,39 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import UpdateLiveStreamKeyData from './UpdateLiveStreamKeyData.js';
+
+export default class UpdateLiveStreamKeyResponse {
+ 'data'?: UpdateLiveStreamKeyData;
+ 'status'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'data',
+ baseName: 'data',
+ type: 'UpdateLiveStreamKeyData',
+ format: '',
+ },
+ {
+ name: 'status',
+ baseName: 'status',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return UpdateLiveStreamKeyResponse.attributeTypeMap;
+ }
+}
diff --git a/src/model/UpdateLiveStreamMediaRequest.ts b/src/model/UpdateLiveStreamMediaRequest.ts
new file mode 100644
index 0000000..7271a22
--- /dev/null
+++ b/src/model/UpdateLiveStreamMediaRequest.ts
@@ -0,0 +1,56 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+import QualityConfig from './QualityConfig.js';
+
+export default class UpdateLiveStreamMediaRequest {
+ /**
+ * Qualities of the media (default: 1080p, 720p, 360p, allow:2160p, 1440p, 1080p, 720p, 360p, 240p, 144p)
+ */
+ 'qualities'?: Array;
+ 'save'?: boolean;
+ 'streamId'?: string;
+ 'title'?: string;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'qualities',
+ baseName: 'qualities',
+ type: 'Array',
+ format: '',
+ },
+ {
+ name: 'save',
+ baseName: 'save',
+ type: 'boolean',
+ format: '',
+ },
+ {
+ name: 'streamId',
+ baseName: 'stream_id',
+ type: 'string',
+ format: '',
+ },
+ {
+ name: 'title',
+ baseName: 'title',
+ type: 'string',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return UpdateLiveStreamMediaRequest.attributeTypeMap;
+ }
+}
diff --git a/src/model/UpsertLiveStreamMulticastInput.ts b/src/model/UpsertLiveStreamMulticastInput.ts
new file mode 100644
index 0000000..fa6877c
--- /dev/null
+++ b/src/model/UpsertLiveStreamMulticastInput.ts
@@ -0,0 +1,31 @@
+/**
+ * @aiozstream/nodejs-client
+ * Aioz Stream Service
+ *
+ * The version of the OpenAPI document: 1.0
+ *
+ *
+ * NOTE: This class is auto generated.
+ * Do not edit the class manually.
+ */
+
+import AttributeType from './AttributeType.js';
+
+export default class UpsertLiveStreamMulticastInput {
+ 'multicastUrls'?: Array;
+
+ static readonly discriminator?: string = undefined;
+
+ static readonly attributeTypeMap: Array = [
+ {
+ name: 'multicastUrls',
+ baseName: 'multicast_urls',
+ type: 'Array',
+ format: '',
+ },
+ ];
+
+ static getAttributeTypeMap(): Array {
+ return UpsertLiveStreamMulticastInput.attributeTypeMap;
+ }
+}
diff --git a/test/LiveStream.spec.ts b/test/LiveStream.spec.ts
new file mode 100644
index 0000000..dd0905e
--- /dev/null
+++ b/test/LiveStream.spec.ts
@@ -0,0 +1,356 @@
+import { expect } from '@jest/globals';
+import StreamError from '../src/StreamError';
+import { anonymousMockTestClient, mockTestClient } from './src/mockTestClient';
+import { v4 as uuidv4 } from 'uuid';
+let liveStreamKeyID: string;
+let streamId: string;
+const liveStreamKeyName = 'name';
+const streamingTitle = 'title';
+const qualities = [
+ {
+ type: 'hls',
+ containerType: 'mpegts',
+ resolution: '240p',
+ },
+];
+
+const testClient = mockTestClient();
+const anonymousTestClient = anonymousMockTestClient();
+
+// eslint-disable-next-line prefer-const
+let deletedLiveStreamLater: string[] = [];
+describe('LiveStream Service', () => {
+ describe('createLiveStreamKey', () => {
+ it('Valid Create Live Stream Key', async () => {
+ const resp = await testClient.liveStream.createLiveStreamKey({
+ name: liveStreamKeyName,
+ save: true,
+ });
+ expect(resp).toBeDefined();
+ expect(resp.data?.id).toBeDefined();
+ liveStreamKeyID = resp.data?.id as string;
+ });
+
+ it('Invalid Create Live Stream Key with Name is nil', async () => {
+ await expect(
+ testClient.liveStream.createLiveStreamKey({
+ name: undefined,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Valid Create Live Stream Key with Save is nil', async () => {
+ const resp = await testClient.liveStream.createLiveStreamKey({
+ name: liveStreamKeyName,
+ save: undefined,
+ });
+ expect(resp).toBeDefined();
+ if (resp.data?.id) {
+ deletedLiveStreamLater.push(resp.data?.id as string);
+ }
+ });
+ });
+
+ describe('getLiveStreamKey', () => {
+ it('Get other', async () => {
+ await expect(
+ anonymousTestClient.liveStream.getLiveStreamKey(liveStreamKeyID)
+ ).rejects.toThrow(Error);
+ });
+ it('Valid Get Live Stream Key', async () => {
+ const resp = await testClient.liveStream.getLiveStreamKey(
+ liveStreamKeyID
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Get Live Stream Key', async () => {
+ await expect(
+ testClient.liveStream.getLiveStreamKey('invalid-id')
+ ).rejects.toThrow(StreamError);
+ });
+ it('Not exist ID', async () => {
+ const newId = uuidv4();
+ await expect(
+ testClient.liveStream.getLiveStreamKey(newId)
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('getLiveStreamKeys', () => {
+ it('Valid Get Live Stream Keys with Limit, Offset, OrderBy, SortBy', async () => {
+ const resp = await testClient.liveStream.getLiveStreamKeys({
+ limit: 10,
+ offset: 0,
+ orderBy: 'desc',
+ sortBy: 'created_at',
+ });
+ expect(resp).toBeDefined();
+ });
+ it('Valid Get Live Stream Keys with Search', async () => {
+ const resp = await testClient.liveStream.getLiveStreamKeys({
+ search: liveStreamKeyName,
+ });
+ expect(resp).toBeDefined();
+ });
+ it('Valid Get Live Stream Keys with no fields', async () => {
+ const resp = await testClient.liveStream.getLiveStreamKeys({});
+ expect(resp).toBeDefined();
+ });
+ });
+
+ describe('updateLiveStreamKey', () => {
+ it('Update other', async () => {
+ await expect(
+ anonymousTestClient.liveStream.updateLiveStreamKey(liveStreamKeyID, {
+ name: liveStreamKeyName,
+ save: true,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+ it('Valid Update Live Stream Key', async () => {
+ const resp = await testClient.liveStream.updateLiveStreamKey(
+ liveStreamKeyID,
+ {
+ name: liveStreamKeyName,
+ save: true,
+ }
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Update Live Stream Key with Name is nil', async () => {
+ const resp = await testClient.liveStream.updateLiveStreamKey(
+ liveStreamKeyID,
+ {
+ name: undefined,
+ }
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Valid Update Live Stream Key with Save is nil', async () => {
+ const resp = await testClient.liveStream.updateLiveStreamKey(
+ liveStreamKeyID,
+ {
+ name: liveStreamKeyName,
+ save: undefined,
+ }
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Update Live Stream Key with ID is empty', async () => {
+ await expect(
+ testClient.liveStream.updateLiveStreamKey('', {
+ name: liveStreamKeyName,
+ save: true,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+ it('Not exist ID', async () => {
+ const newId = uuidv4();
+ await expect(
+ testClient.liveStream.updateLiveStreamKey(newId, {
+ name: liveStreamKeyName,
+ save: true,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('getLiveStreamVideo', () => {
+ it('Valid Get Live Stream Videos', async () => {
+ const resp = await testClient.liveStream.getMedias(liveStreamKeyID, {
+ limit: 10,
+ offset: 0,
+ sortBy: 'created_at',
+ orderBy: 'desc',
+ });
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Get Live Stream Videos', async () => {
+ await expect(
+ testClient.liveStream.getMedias('invalid-id', {})
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Invalid Get Live Stream Videos with Offset is -1', async () => {
+ await expect(
+ testClient.liveStream.getMedias(liveStreamKeyID, {
+ offset: -1,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Invalid Get Live Stream Videos with SortBy is empty', async () => {
+ await expect(
+ testClient.liveStream.getMedias(liveStreamKeyID, {
+ sortBy: '',
+ })
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Invalid Get Live Stream Videos with OrderBy is empty', async () => {
+ await expect(
+ testClient.liveStream.getMedias(liveStreamKeyID, {
+ orderBy: '',
+ })
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Invalid Get Live Stream Videos with Search is empty', async () => {
+ await expect(
+ testClient.liveStream.getMedias(liveStreamKeyID, {
+ search: '',
+ })
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('createStreaming', () => {
+ it('Valid Create Streaming', async () => {
+ const resp = await testClient.liveStream.createStreaming(
+ liveStreamKeyID,
+ {
+ title: streamingTitle,
+ qualities: qualities,
+ save: false,
+ }
+ );
+ expect(resp).toBeDefined();
+ expect(resp.data?.id).toBeDefined();
+ streamId = resp.data?.id as string;
+ });
+
+ it('Invalid Create Streaming with Invalid ID', async () => {
+ await expect(
+ testClient.liveStream.createStreaming('invalid-id', {
+ title: streamingTitle,
+ qualities: qualities,
+ save: true,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Invalid Create Streaming with Title is nil', async () => {
+ await expect(
+ testClient.liveStream.createStreaming(liveStreamKeyID, {
+ title: undefined,
+ qualities: qualities,
+ save: true,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Invalid Create Streaming with invalid qualities', async () => {
+ await expect(
+ testClient.liveStream.createStreaming(liveStreamKeyID, {
+ title: streamingTitle,
+ qualities: [
+ {
+ type: 'invalid-quality',
+ containerType: 'mpegts',
+ resolution: '240p',
+ },
+ ],
+ save: true,
+ })
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('getStreaming', () => {
+ it('Valid Get Streaming', async () => {
+ const resp = await testClient.liveStream.getStreaming(
+ liveStreamKeyID,
+ streamId
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Get Streaming', async () => {
+ await expect(
+ testClient.liveStream.getStreaming('invalid-id', 'invalid-stream-id')
+ ).rejects.toThrow(StreamError);
+ });
+
+ it('Not exist ID', async () => {
+ const newId = uuidv4();
+ await expect(
+ testClient.liveStream.getStreaming(newId, newId)
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('getStreamings', () => {
+ it('Valid Get Streamings', async () => {
+ const resp = await testClient.liveStream.getStreamings(liveStreamKeyID);
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Get Streamings', async () => {
+ await expect(
+ testClient.liveStream.getStreamings('invalid-id')
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('deleteLiveStreamVideo', () => {
+ it('Valid Delete Live Stream Video', async () => {
+ const resp = await testClient.liveStream.deleteStreaming(
+ streamId,
+ liveStreamKeyID
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Delete Live Stream Video', async () => {
+ await expect(
+ testClient.liveStream.deleteStreaming('invalid-id', 'invalid-stream-id')
+ ).rejects.toThrow(StreamError);
+ });
+ it('Not exist ID', async () => {
+ const newId = uuidv4();
+ await expect(
+ testClient.liveStream.deleteStreaming(newId, newId)
+ ).rejects.toThrow(StreamError);
+ });
+ });
+
+ describe('deleteLiveStreamKey', () => {
+ it('Delete other', async () => {
+ await expect(
+ anonymousTestClient.liveStream.deleteLiveStreamKey(liveStreamKeyID)
+ ).rejects.toThrow(StreamError);
+ });
+ it('Valid Delete Live Stream Key with ID', async () => {
+ const resp = await testClient.liveStream.deleteLiveStreamKey(
+ liveStreamKeyID
+ );
+ expect(resp).toBeDefined();
+ });
+
+ it('Invalid Delete Live Stream Key with Invalid ID', async () => {
+ await expect(
+ testClient.liveStream.deleteLiveStreamKey('invalid-id')
+ ).rejects.toThrow(StreamError);
+ });
+ it('Not exist ID', async () => {
+ const newId = uuidv4();
+ await expect(
+ testClient.liveStream.deleteLiveStreamKey(newId)
+ ).rejects.toThrow(StreamError);
+ });
+ });
+ afterAll(async () => {
+ for (const id of deletedLiveStreamLater) {
+ try {
+ await testClient.liveStream.deleteLiveStreamKey(id);
+ } catch (error) {
+ console.error(`Failed to delete Live Stream Key with ID ${id}:`, error);
+ }
+ }
+ });
+});