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); + } + } + }); +});