From 1c3da35f19043872454afe694e3f32fe22c2b1b2 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Wed, 7 May 2025 15:24:52 +0200 Subject: [PATCH 01/39] refactor: generated code format slightly changed --- src/{BaseApi.ts => ApiClient.ts} | 10 +- src/StreamCall.ts | 4 +- src/StreamClient.ts | 29 +- src/StreamVideoClient.ts | 15 +- src/gen-imports.ts | 4 + src/gen/chat/ChannelApi.ts | 138 ++- src/gen/chat/ChatApi.ts | 827 +++++++------ src/gen/common/CommonApi.ts | 469 ++++---- src/gen/common/_CommonApiInterface.ts | 256 ++++ .../model-decoders/{index.ts => decoders.ts} | 1056 ++++++++++++++++- src/gen/models/index.ts | 138 ++- src/gen/moderation/ModerationApi.ts | 206 ++-- src/gen/video/CallApi.ts | 205 ++-- src/gen/video/VideoApi.ts | 419 +++---- 14 files changed, 2523 insertions(+), 1253 deletions(-) rename src/{BaseApi.ts => ApiClient.ts} (96%) create mode 100644 src/gen-imports.ts create mode 100644 src/gen/common/_CommonApiInterface.ts rename src/gen/model-decoders/{index.ts => decoders.ts} (69%) diff --git a/src/BaseApi.ts b/src/ApiClient.ts similarity index 96% rename from src/BaseApi.ts rename to src/ApiClient.ts index 6206507..7a23333 100644 --- a/src/BaseApi.ts +++ b/src/ApiClient.ts @@ -3,14 +3,18 @@ import { ApiConfig, RequestMetadata, StreamError } from './types'; import { APIError } from './gen/models'; import { getRateLimitFromResponseHeader } from './utils/rate-limit'; -export class BaseApi { +export class ApiClient { private readonly dispatcher?: RequestInit['dispatcher']; - constructor(protected readonly apiConfig: ApiConfig) { + constructor(public readonly apiConfig: ApiConfig) { this.dispatcher = this.apiConfig.agent; } - protected sendRequest = async ( + /** + * + * @internal + */ + sendRequest = async ( method: string, url: string, pathParams?: Record, diff --git a/src/StreamCall.ts b/src/StreamCall.ts index d7b16f6..f66c035 100644 --- a/src/StreamCall.ts +++ b/src/StreamCall.ts @@ -1,4 +1,4 @@ -import { QueryCallMembersRequest } from './gen/models'; +import { GetOrCreateCallRequest, QueryCallMembersRequest } from './gen/models'; import { CallApi } from './gen/video/CallApi'; import { OmitTypeId } from './types'; @@ -7,7 +7,7 @@ export class StreamCall extends CallApi { return `${this.type}:${this.id}`; } - create = this.getOrCreate; + create = (request?: GetOrCreateCallRequest) => this.getOrCreate(request); queryMembers = (request?: OmitTypeId) => { return this.videoApi.queryCallMembers({ diff --git a/src/StreamClient.ts b/src/StreamClient.ts index 8600ebb..c82ba2e 100644 --- a/src/StreamClient.ts +++ b/src/StreamClient.ts @@ -6,6 +6,7 @@ import { StreamChatClient } from './StreamChatClient'; import { CallTokenPayload, UserTokenPayload } from './types'; import { QueryBannedUsersPayload, UserRequest } from './gen/models'; import { StreamModerationClient } from './StreamModerationClient'; +import { ApiClient } from './ApiClient'; export interface StreamClientOptions { timeout?: number; @@ -38,36 +39,30 @@ export class StreamClient extends CommonApi { const timeout = config?.timeout ?? StreamClient.DEFAULT_TIMEOUT; const chatBaseUrl = config?.basePath ?? 'https://chat.stream-io-api.com'; const videoBaseUrl = config?.basePath ?? 'https://video.stream-io-api.com'; - super({ + const chatApiClient = new ApiClient({ apiKey, token, - timeout, baseUrl: chatBaseUrl, + timeout, agent: config?.agent as RequestInit['dispatcher'], }); - this.video = new StreamVideoClient({ - streamClient: this, + const videoApiClient = new ApiClient({ apiKey, token, - timeout, baseUrl: videoBaseUrl, - agent: config?.agent as RequestInit['dispatcher'], - }); - this.chat = new StreamChatClient({ - apiKey, - token, timeout, - baseUrl: chatBaseUrl, agent: config?.agent as RequestInit['dispatcher'], }); - this.moderation = new StreamModerationClient({ - apiKey, - token, - timeout, - baseUrl: chatBaseUrl, - agent: config?.agent as RequestInit['dispatcher'], + + super(chatApiClient); + + this.video = new StreamVideoClient({ + streamClient: this, + apiClient: videoApiClient, }); + this.chat = new StreamChatClient(this.apiClient); + this.moderation = new StreamModerationClient(chatApiClient); } upsertUsers = (users: UserRequest[]) => { diff --git a/src/StreamVideoClient.ts b/src/StreamVideoClient.ts index 900bb72..ac1e6c4 100644 --- a/src/StreamVideoClient.ts +++ b/src/StreamVideoClient.ts @@ -1,7 +1,7 @@ +import { ApiClient } from './ApiClient'; import { VideoApi } from './gen/video/VideoApi'; import { StreamCall } from './StreamCall'; import type { StreamClient } from './StreamClient'; -import type { ApiConfig } from './types'; // eslint-disable-next-line @typescript-eslint/prefer-ts-expect-error /** @ts-ignore Optional dependency */ import type { @@ -15,9 +15,12 @@ export class StreamVideoClient extends VideoApi { constructor({ streamClient, - ...apiConfig - }: ApiConfig & { streamClient: StreamClient }) { - super(apiConfig); + apiClient, + }: { + streamClient: StreamClient; + apiClient: ApiClient; + }) { + super(apiClient); this.streamClient = streamClient; } @@ -54,9 +57,9 @@ export class StreamVideoClient extends VideoApi { }); const realtimeClient = doCreateRealtimeClient({ - baseUrl: this.apiConfig.baseUrl, + baseUrl: this.streamClient.apiClient.apiConfig.baseUrl, call: options.call, - streamApiKey: this.apiConfig.apiKey, + streamApiKey: this.streamClient.apiClient.apiConfig.apiKey, streamUserToken: token, openAiApiKey: options.openAiApiKey, model: options.model, diff --git a/src/gen-imports.ts b/src/gen-imports.ts new file mode 100644 index 0000000..a4d9547 --- /dev/null +++ b/src/gen-imports.ts @@ -0,0 +1,4 @@ +export * from './ApiClient'; +export * from './gen/chat/ChatApi'; +export * from './gen/video/VideoApi'; +export * from './types'; diff --git a/src/gen/chat/ChannelApi.ts b/src/gen/chat/ChannelApi.ts index 763d59e..c3ad843 100644 --- a/src/gen/chat/ChannelApi.ts +++ b/src/gen/chat/ChannelApi.ts @@ -1,5 +1,4 @@ -import { ChatApi } from './ChatApi'; -import { StreamResponse } from '../../types'; +import { StreamResponse, ChatApi } from '../../gen-imports'; import { ChannelGetOrCreateRequest, ChannelStateResponse, @@ -36,281 +35,292 @@ export class ChannelApi { constructor( protected chatApi: ChatApi, public readonly type: string, - public id?: string, + public id: string | undefined, ) {} - delete = (request?: { + delete(request?: { hard_delete?: boolean; - }): Promise> => { + }): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.deleteChannel({ id: this.id, type: this.type, ...request, }); - }; + } - updateChannelPartial = ( + updateChannelPartial( request?: UpdateChannelPartialRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.updateChannelPartial({ id: this.id, type: this.type, ...request, }); - }; + } - update = ( + update( request?: UpdateChannelRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.updateChannel({ id: this.id, type: this.type, ...request, }); - }; + } - deleteDraft = (request?: { + deleteDraft(request?: { parent_id?: string; user_id?: string; - }): Promise> => { + }): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.deleteDraft({ id: this.id, type: this.type, ...request, }); - }; + } - getDraft = (request?: { + getDraft(request?: { parent_id?: string; user_id?: string; - }): Promise> => { + }): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.getDraft({ id: this.id, type: this.type, ...request }); - }; + } - sendEvent = ( - request: SendEventRequest, - ): Promise> => { + sendEvent(request: SendEventRequest): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.sendEvent({ id: this.id, type: this.type, ...request }); - }; + } - deleteFile = (request?: { - url?: string; - }): Promise> => { + deleteFile(request?: { url?: string }): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.deleteFile({ id: this.id, type: this.type, ...request, }); - }; + } - uploadFile = ( + uploadFile( request?: FileUploadRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.uploadFile({ id: this.id, type: this.type, ...request, }); - }; + } - hide = ( + hide( request?: HideChannelRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.hideChannel({ id: this.id, type: this.type, ...request, }); - }; + } - deleteImage = (request?: { - url?: string; - }): Promise> => { + deleteImage(request?: { url?: string }): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.deleteImage({ id: this.id, type: this.type, ...request, }); - }; + } - uploadImage = ( + uploadImage( request?: ImageUploadRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.uploadImage({ id: this.id, type: this.type, ...request, }); - }; + } - updateMemberPartial = ( + updateMemberPartial( request?: UpdateMemberPartialRequest & { user_id?: string }, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.updateMemberPartial({ id: this.id, type: this.type, ...request, }); - }; + } - sendMessage = ( + sendMessage( request: SendMessageRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.sendMessage({ id: this.id, type: this.type, ...request, }); - }; + } - getManyMessages = (request: { + getManyMessages(request: { ids: string[]; - }): Promise> => { + }): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.getManyMessages({ id: this.id, type: this.type, ...request, }); - }; + } - getOrCreate = ( + getOrCreate( request?: ChannelGetOrCreateRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.getOrCreateChannel({ id: this.id, type: this.type, ...request, }); - }; + } - markRead = ( + markRead( request?: MarkReadRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.markRead({ id: this.id, type: this.type, ...request }); - }; + } - show = ( + show( request?: ShowChannelRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.showChannel({ id: this.id, type: this.type, ...request, }); - }; + } - truncate = ( + truncate( request?: TruncateChannelRequest, - ): Promise> => { + ): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.truncateChannel({ id: this.id, type: this.type, ...request, }); - }; + } - markUnread = ( - request?: MarkUnreadRequest, - ): Promise> => { + markUnread(request?: MarkUnreadRequest): Promise> { if (!this.id) { throw new Error( `Channel isn't yet created, call getOrCreateDistinctChannel() before this operation`, ); } + return this.chatApi.markUnread({ id: this.id, type: this.type, ...request, }); - }; + } } diff --git a/src/gen/chat/ChatApi.ts b/src/gen/chat/ChatApi.ts index 19d80ab..66406a5 100644 --- a/src/gen/chat/ChatApi.ts +++ b/src/gen/chat/ChatApi.ts @@ -1,5 +1,4 @@ -import { BaseApi } from '../../BaseApi'; -import { StreamResponse } from '../../types'; +import { ApiClient, StreamResponse } from '../../gen-imports'; import { CampaignResponse, CastPollVoteRequest, @@ -122,12 +121,14 @@ import { UpsertPushPreferencesResponse, WrappedUnreadCountsResponse, } from '../models'; -import { decoders } from '../model-decoders'; +import { decoders } from '../model-decoders/decoders'; -export class ChatApi extends BaseApi { - queryCampaigns = async ( +export class ChatApi { + constructor(public readonly apiClient: ApiClient) {} + + async queryCampaigns( request?: QueryCampaignsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, next: request?.next, @@ -137,21 +138,21 @@ export class ChatApi extends BaseApi { filter: request?.filter, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/campaigns/query', undefined, undefined, body); decoders.QueryCampaignsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getCampaign = async (request: { + async getCampaign(request: { id: string; prev?: string; next?: string; limit?: number; - }): Promise> => { + }): Promise> { const queryParams = { prev: request?.prev, next: request?.next, @@ -161,18 +162,18 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/campaigns/{id}', pathParams, queryParams); decoders.GetCampaignResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startCampaign = async ( + async startCampaign( request: StartCampaignRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -181,39 +182,35 @@ export class ChatApi extends BaseApi { stop_at: request?.stop_at, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/campaigns/{id}/start', pathParams, undefined, body); decoders.StartCampaignResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - scheduleCampaign = async ( + async scheduleCampaign( request: StopCampaignRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; const body = {}; - const response = await this.sendRequest>( - 'POST', - '/api/v2/chat/campaigns/{id}/stop', - pathParams, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/chat/campaigns/{id}/stop', pathParams, undefined, body); decoders.CampaignResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryChannels = async ( + async queryChannels( request?: QueryChannelsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, member_limit: request?.member_limit, @@ -226,57 +223,53 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/channels', undefined, undefined, body); decoders.QueryChannelsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteChannels = async ( + async deleteChannels( request: DeleteChannelsRequest, - ): Promise> => { + ): Promise> { const body = { cids: request?.cids, hard_delete: request?.hard_delete, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/channels/delete', undefined, undefined, body); decoders.DeleteChannelsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - markChannelsRead = async ( + async markChannelsRead( request?: MarkChannelsReadRequest, - ): Promise> => { + ): Promise> { const body = { user_id: request?.user_id, read_by_channel: request?.read_by_channel, user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/chat/channels/read', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/chat/channels/read', undefined, undefined, body); decoders.MarkReadResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getOrCreateDistinctChannel = async ( + async getOrCreateDistinctChannel( request: ChannelGetOrCreateRequest & { type: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, }; @@ -290,7 +283,7 @@ export class ChatApi extends BaseApi { watchers: request?.watchers, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -303,13 +296,13 @@ export class ChatApi extends BaseApi { decoders.ChannelStateResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteChannel = async (request: { + async deleteChannel(request: { type: string; id: string; hard_delete?: boolean; - }): Promise> => { + }): Promise> { const queryParams = { hard_delete: request?.hard_delete, }; @@ -318,18 +311,18 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('DELETE', '/api/v2/chat/channels/{type}/{id}', pathParams, queryParams); decoders.DeleteChannelResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateChannelPartial = async ( + async updateChannelPartial( request: UpdateChannelPartialRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -341,7 +334,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'PATCH', @@ -354,11 +347,11 @@ export class ChatApi extends BaseApi { decoders.UpdateChannelPartialResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateChannel = async ( + async updateChannel( request: UpdateChannelRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -381,21 +374,21 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/channels/{type}/{id}', pathParams, undefined, body); decoders.UpdateChannelResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteDraft = async (request: { + async deleteDraft(request: { type: string; id: string; parent_id?: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { parent_id: request?.parent_id, user_id: request?.user_id, @@ -405,7 +398,7 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/channels/{type}/{id}/draft', pathParams, @@ -415,14 +408,14 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getDraft = async (request: { + async getDraft(request: { type: string; id: string; parent_id?: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { parent_id: request?.parent_id, user_id: request?.user_id, @@ -432,7 +425,9 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'GET', '/api/v2/chat/channels/{type}/{id}/draft', pathParams, @@ -442,11 +437,11 @@ export class ChatApi extends BaseApi { decoders.GetDraftResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - sendEvent = async ( + async sendEvent( request: SendEventRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -455,7 +450,9 @@ export class ChatApi extends BaseApi { event: request?.event, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/channels/{type}/{id}/event', pathParams, @@ -466,13 +463,13 @@ export class ChatApi extends BaseApi { decoders.EventResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteFile = async (request: { + async deleteFile(request: { type: string; id: string; url?: string; - }): Promise> => { + }): Promise> { const queryParams = { url: request?.url, }; @@ -481,7 +478,7 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/channels/{type}/{id}/file', pathParams, @@ -491,11 +488,11 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - uploadFile = async ( + async uploadFile( request: FileUploadRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -505,7 +502,9 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/channels/{type}/{id}/file', pathParams, @@ -516,11 +515,11 @@ export class ChatApi extends BaseApi { decoders.FileUploadResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - hideChannel = async ( + async hideChannel( request: HideChannelRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -531,7 +530,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -544,13 +543,13 @@ export class ChatApi extends BaseApi { decoders.HideChannelResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteImage = async (request: { + async deleteImage(request: { type: string; id: string; url?: string; - }): Promise> => { + }): Promise> { const queryParams = { url: request?.url, }; @@ -559,7 +558,7 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/channels/{type}/{id}/image', pathParams, @@ -569,11 +568,11 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - uploadImage = async ( + async uploadImage( request: ImageUploadRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -584,7 +583,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -597,15 +596,15 @@ export class ChatApi extends BaseApi { decoders.ImageUploadResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateMemberPartial = async ( + async updateMemberPartial( request: UpdateMemberPartialRequest & { type: string; id: string; user_id?: string; }, - ): Promise> => { + ): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -618,7 +617,7 @@ export class ChatApi extends BaseApi { set: request?.set, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'PATCH', @@ -631,11 +630,11 @@ export class ChatApi extends BaseApi { decoders.UpdateMemberPartialResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - sendMessage = async ( + async sendMessage( request: SendMessageRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -650,7 +649,7 @@ export class ChatApi extends BaseApi { pending_message_metadata: request?.pending_message_metadata, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -663,13 +662,13 @@ export class ChatApi extends BaseApi { decoders.SendMessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getManyMessages = async (request: { + async getManyMessages(request: { type: string; id: string; ids: string[]; - }): Promise> => { + }): Promise> { const queryParams = { ids: request?.ids, }; @@ -678,7 +677,7 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'GET', @@ -690,11 +689,11 @@ export class ChatApi extends BaseApi { decoders.GetManyMessagesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getOrCreateChannel = async ( + async getOrCreateChannel( request: ChannelGetOrCreateRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -709,7 +708,7 @@ export class ChatApi extends BaseApi { watchers: request?.watchers, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -722,11 +721,11 @@ export class ChatApi extends BaseApi { decoders.ChannelStateResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - markRead = async ( + async markRead( request: MarkReadRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -738,7 +737,9 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/channels/{type}/{id}/read', pathParams, @@ -749,11 +750,11 @@ export class ChatApi extends BaseApi { decoders.MarkReadResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - showChannel = async ( + async showChannel( request: ShowChannelRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -763,7 +764,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -776,11 +777,11 @@ export class ChatApi extends BaseApi { decoders.ShowChannelResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - truncateChannel = async ( + async truncateChannel( request: TruncateChannelRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -790,11 +791,12 @@ export class ChatApi extends BaseApi { skip_push: request?.skip_push, truncated_at: request?.truncated_at, user_id: request?.user_id, + member_ids: request?.member_ids, message: request?.message, user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -807,11 +809,11 @@ export class ChatApi extends BaseApi { decoders.TruncateChannelResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - markUnread = async ( + async markUnread( request: MarkUnreadRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -823,7 +825,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'POST', '/api/v2/chat/channels/{type}/{id}/unread', pathParams, @@ -834,23 +836,21 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listChannelTypes = async (): Promise< - StreamResponse - > => { - const response = await this.sendRequest< + async listChannelTypes(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/channeltypes', undefined, undefined); decoders.ListChannelTypesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createChannelType = async ( + async createChannelType( request: CreateChannelTypeRequest, - ): Promise> => { + ): Promise> { const body = { automod: request?.automod, automod_behavior: request?.automod_behavior, @@ -882,23 +882,23 @@ export class ChatApi extends BaseApi { grants: request?.grants, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/channeltypes', undefined, undefined, body); decoders.CreateChannelTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteChannelType = async (request: { + async deleteChannelType(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/channeltypes/{name}', pathParams, @@ -908,27 +908,27 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getChannelType = async (request: { + async getChannelType(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/channeltypes/{name}', pathParams, undefined); decoders.GetChannelTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateChannelType = async ( + async updateChannelType( request: UpdateChannelTypeRequest & { name: string }, - ): Promise> => { + ): Promise> { const pathParams = { name: request?.name, }; @@ -965,28 +965,28 @@ export class ChatApi extends BaseApi { grants: request?.grants, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PUT', '/api/v2/chat/channeltypes/{name}', pathParams, undefined, body); decoders.UpdateChannelTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listCommands = async (): Promise> => { - const response = await this.sendRequest< + async listCommands(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/commands', undefined, undefined); decoders.ListCommandsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createCommand = async ( + async createCommand( request: CreateCommandRequest, - ): Promise> => { + ): Promise> { const body = { description: request?.description, name: request?.name, @@ -994,53 +994,50 @@ export class ChatApi extends BaseApi { set: request?.set, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/commands', undefined, undefined, body); decoders.CreateCommandResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteCommand = async (request: { + async deleteCommand(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('DELETE', '/api/v2/chat/commands/{name}', pathParams, undefined); decoders.DeleteCommandResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getCommand = async (request: { + async getCommand(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/commands/{name}', - pathParams, - undefined, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/commands/{name}', pathParams, undefined); decoders.GetCommandResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateCommand = async ( + async updateCommand( request: UpdateCommandRequest & { name: string }, - ): Promise> => { + ): Promise> { const pathParams = { name: request?.name, }; @@ -1050,18 +1047,18 @@ export class ChatApi extends BaseApi { set: request?.set, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PUT', '/api/v2/chat/commands/{name}', pathParams, undefined, body); decoders.UpdateCommandResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryDrafts = async ( + async queryDrafts( request?: QueryDraftsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, next: request?.next, @@ -1072,18 +1069,18 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/drafts/query', undefined, undefined, body); decoders.QueryDraftsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - exportChannels = async ( + async exportChannels( request: ExportChannelsRequest, - ): Promise> => { + ): Promise> { const body = { channels: request?.channels, clear_deleted_message_text: request?.clear_deleted_message_text, @@ -1093,37 +1090,34 @@ export class ChatApi extends BaseApi { version: request?.version, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/export_channels', undefined, undefined, body); decoders.ExportChannelsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryMembers = async (request?: { + async queryMembers(request?: { payload?: QueryMembersPayload; - }): Promise> => { + }): Promise> { const queryParams = { payload: request?.payload, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/members', - undefined, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/members', undefined, queryParams); decoders.MembersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryMessageHistory = async ( + async queryMessageHistory( request: QueryMessageHistoryRequest, - ): Promise> => { + ): Promise> { const body = { filter: request?.filter, limit: request?.limit, @@ -1132,20 +1126,20 @@ export class ChatApi extends BaseApi { sort: request?.sort, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/messages/history', undefined, undefined, body); decoders.QueryMessageHistoryResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteMessage = async (request: { + async deleteMessage(request: { id: string; hard?: boolean; deleted_by?: string; - }): Promise> => { + }): Promise> { const queryParams = { hard: request?.hard, deleted_by: request?.deleted_by, @@ -1154,19 +1148,19 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('DELETE', '/api/v2/chat/messages/{id}', pathParams, queryParams); decoders.DeleteMessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getMessage = async (request: { + async getMessage(request: { id: string; show_deleted_message?: boolean; - }): Promise> => { + }): Promise> { const queryParams = { show_deleted_message: request?.show_deleted_message, }; @@ -1174,21 +1168,18 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/messages/{id}', - pathParams, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/messages/{id}', pathParams, queryParams); decoders.GetMessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateMessage = async ( + async updateMessage( request: UpdateMessageRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1197,18 +1188,18 @@ export class ChatApi extends BaseApi { skip_enrich_url: request?.skip_enrich_url, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/messages/{id}', pathParams, undefined, body); decoders.UpdateMessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateMessagePartial = async ( + async updateMessagePartial( request: UpdateMessagePartialRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1220,18 +1211,18 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PUT', '/api/v2/chat/messages/{id}', pathParams, undefined, body); decoders.UpdateMessagePartialResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - runMessageAction = async ( + async runMessageAction( request: MessageActionRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1241,43 +1232,35 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/chat/messages/{id}/action', - pathParams, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/chat/messages/{id}/action', pathParams, undefined, body); decoders.MessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - commitMessage = async ( + async commitMessage( request: CommitMessageRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; const body = {}; - const response = await this.sendRequest>( - 'POST', - '/api/v2/chat/messages/{id}/commit', - pathParams, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/chat/messages/{id}/commit', pathParams, undefined, body); decoders.MessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - sendReaction = async ( + async sendReaction( request: SendReactionRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1287,7 +1270,7 @@ export class ChatApi extends BaseApi { skip_push: request?.skip_push, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -1300,13 +1283,13 @@ export class ChatApi extends BaseApi { decoders.SendReactionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteReaction = async (request: { + async deleteReaction(request: { id: string; type: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1315,7 +1298,7 @@ export class ChatApi extends BaseApi { type: request?.type, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'DELETE', @@ -1327,13 +1310,13 @@ export class ChatApi extends BaseApi { decoders.DeleteReactionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getReactions = async (request: { + async getReactions(request: { id: string; limit?: number; offset?: number; - }): Promise> => { + }): Promise> { const queryParams = { limit: request?.limit, offset: request?.offset, @@ -1342,18 +1325,18 @@ export class ChatApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/messages/{id}/reactions', pathParams, queryParams); decoders.GetReactionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryReactions = async ( + async queryReactions( request: QueryReactionsRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1367,7 +1350,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -1380,11 +1363,11 @@ export class ChatApi extends BaseApi { decoders.QueryReactionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - translateMessage = async ( + async translateMessage( request: TranslateMessageRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1392,7 +1375,9 @@ export class ChatApi extends BaseApi { language: request?.language, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/messages/{id}/translate', pathParams, @@ -1403,11 +1388,11 @@ export class ChatApi extends BaseApi { decoders.MessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - undeleteMessage = async ( + async undeleteMessage( request: UpdateMessageRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -1416,7 +1401,7 @@ export class ChatApi extends BaseApi { skip_enrich_url: request?.skip_enrich_url, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -1429,11 +1414,11 @@ export class ChatApi extends BaseApi { decoders.UpdateMessageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - castPollVote = async ( + async castPollVote( request: CastPollVoteRequest & { message_id: string; poll_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { message_id: request?.message_id, poll_id: request?.poll_id, @@ -1444,7 +1429,9 @@ export class ChatApi extends BaseApi { vote: request?.vote, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/messages/{message_id}/polls/{poll_id}/vote', pathParams, @@ -1455,14 +1442,14 @@ export class ChatApi extends BaseApi { decoders.PollVoteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - removePollVote = async (request: { + async removePollVote(request: { message_id: string; poll_id: string; vote_id: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1472,7 +1459,9 @@ export class ChatApi extends BaseApi { vote_id: request?.vote_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'DELETE', '/api/v2/chat/messages/{message_id}/polls/{poll_id}/vote/{vote_id}', pathParams, @@ -1482,9 +1471,9 @@ export class ChatApi extends BaseApi { decoders.PollVoteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getReplies = async (request: { + async getReplies(request: { parent_id: string; limit?: number; offset?: number; @@ -1499,7 +1488,7 @@ export class ChatApi extends BaseApi { id_around?: string; created_at_around?: Date; sort?: SortParamRequest[]; - }): Promise> => { + }): Promise> { const queryParams = { limit: request?.limit, offset: request?.offset, @@ -1519,7 +1508,9 @@ export class ChatApi extends BaseApi { parent_id: request?.parent_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'GET', '/api/v2/chat/messages/{parent_id}/replies', pathParams, @@ -1529,27 +1520,27 @@ export class ChatApi extends BaseApi { decoders.GetRepliesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryMessageFlags = async (request?: { + async queryMessageFlags(request?: { payload?: QueryMessageFlagsPayload; - }): Promise> => { + }): Promise> { const queryParams = { payload: request?.payload, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/moderation/flags/message', undefined, queryParams); decoders.QueryMessageFlagsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - muteChannel = async ( + async muteChannel( request?: MuteChannelRequest, - ): Promise> => { + ): Promise> { const body = { expiration: request?.expiration, user_id: request?.user_id, @@ -1557,7 +1548,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -1570,11 +1561,11 @@ export class ChatApi extends BaseApi { decoders.MuteChannelResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unmuteChannel = async ( + async unmuteChannel( request?: UnmuteChannelRequest, - ): Promise> => { + ): Promise> { const body = { expiration: request?.expiration, user_id: request?.user_id, @@ -1582,7 +1573,9 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/moderation/unmute/channel', undefined, @@ -1593,11 +1586,11 @@ export class ChatApi extends BaseApi { decoders.UnmuteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createPoll = async ( + async createPoll( request: CreatePollRequest, - ): Promise> => { + ): Promise> { const body = { name: request?.name, allow_answers: request?.allow_answers, @@ -1614,22 +1607,18 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/chat/polls', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/chat/polls', undefined, undefined, body); decoders.PollResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updatePoll = async ( + async updatePoll( request: UpdatePollRequest, - ): Promise> => { + ): Promise> { const body = { id: request?.id, name: request?.name, @@ -1646,22 +1635,18 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'PUT', - '/api/v2/chat/polls', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('PUT', '/api/v2/chat/polls', undefined, undefined, body); decoders.PollResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryPolls = async ( + async queryPolls( request?: QueryPollsRequest & { user_id?: string }, - ): Promise> => { + ): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1673,23 +1658,19 @@ export class ChatApi extends BaseApi { filter: request?.filter, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/chat/polls/query', - undefined, - queryParams, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/chat/polls/query', undefined, queryParams, body); decoders.QueryPollsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deletePoll = async (request: { + async deletePoll(request: { poll_id: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1697,7 +1678,7 @@ export class ChatApi extends BaseApi { poll_id: request?.poll_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/polls/{poll_id}', pathParams, @@ -1707,12 +1688,12 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getPoll = async (request: { + async getPoll(request: { poll_id: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1720,21 +1701,18 @@ export class ChatApi extends BaseApi { poll_id: request?.poll_id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/polls/{poll_id}', - pathParams, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/polls/{poll_id}', pathParams, queryParams); decoders.PollResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updatePollPartial = async ( + async updatePollPartial( request: UpdatePollPartialRequest & { poll_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { poll_id: request?.poll_id, }; @@ -1745,22 +1723,18 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'PATCH', - '/api/v2/chat/polls/{poll_id}', - pathParams, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('PATCH', '/api/v2/chat/polls/{poll_id}', pathParams, undefined, body); decoders.PollResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createPollOption = async ( + async createPollOption( request: CreatePollOptionRequest & { poll_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { poll_id: request?.poll_id, }; @@ -1772,7 +1746,9 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/polls/{poll_id}/options', pathParams, @@ -1783,11 +1759,11 @@ export class ChatApi extends BaseApi { decoders.PollOptionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updatePollOption = async ( + async updatePollOption( request: UpdatePollOptionRequest & { poll_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { poll_id: request?.poll_id, }; @@ -1799,7 +1775,9 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'PUT', '/api/v2/chat/polls/{poll_id}/options', pathParams, @@ -1810,13 +1788,13 @@ export class ChatApi extends BaseApi { decoders.PollOptionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deletePollOption = async (request: { + async deletePollOption(request: { poll_id: string; option_id: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1825,7 +1803,7 @@ export class ChatApi extends BaseApi { option_id: request?.option_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/polls/{poll_id}/options/{option_id}', pathParams, @@ -1835,13 +1813,13 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getPollOption = async (request: { + async getPollOption(request: { poll_id: string; option_id: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1850,7 +1828,9 @@ export class ChatApi extends BaseApi { option_id: request?.option_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'GET', '/api/v2/chat/polls/{poll_id}/options/{option_id}', pathParams, @@ -1860,11 +1840,11 @@ export class ChatApi extends BaseApi { decoders.PollOptionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryPollVotes = async ( + async queryPollVotes( request: QueryPollVotesRequest & { poll_id: string; user_id?: string }, - ): Promise> => { + ): Promise> { const queryParams = { user_id: request?.user_id, }; @@ -1879,7 +1859,9 @@ export class ChatApi extends BaseApi { filter: request?.filter, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/chat/polls/{poll_id}/votes', pathParams, @@ -1890,62 +1872,59 @@ export class ChatApi extends BaseApi { decoders.PollVotesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updatePushNotificationPreferences = async ( + async updatePushNotificationPreferences( request: UpsertPushPreferencesRequest, - ): Promise> => { + ): Promise> { const body = { preferences: request?.preferences, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/push_preferences', undefined, undefined, body); decoders.UpsertPushPreferencesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryBannedUsers = async (request?: { + async queryBannedUsers(request?: { payload?: QueryBannedUsersPayload; - }): Promise> => { + }): Promise> { const queryParams = { payload: request?.payload, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/query_banned_users', undefined, queryParams); decoders.QueryBannedUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - search = async (request?: { + async search(request?: { payload?: SearchPayload; - }): Promise> => { + }): Promise> { const queryParams = { payload: request?.payload, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/search', - undefined, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/search', undefined, queryParams); decoders.SearchResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - querySegments = async ( + async querySegments( request: QuerySegmentsRequest, - ): Promise> => { + ): Promise> { const body = { filter: request?.filter, limit: request?.limit, @@ -1954,23 +1933,23 @@ export class ChatApi extends BaseApi { sort: request?.sort, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/segments/query', undefined, undefined, body); decoders.QuerySegmentsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteSegment = async (request: { + async deleteSegment(request: { id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/chat/segments/{id}', pathParams, @@ -1980,30 +1959,27 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getSegment = async (request: { + async getSegment(request: { id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/segments/{id}', - pathParams, - undefined, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/segments/{id}', pathParams, undefined); decoders.GetSegmentResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteSegmentTargets = async ( + async deleteSegmentTargets( request: DeleteSegmentTargetsRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -2011,7 +1987,7 @@ export class ChatApi extends BaseApi { target_ids: request?.target_ids, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'POST', '/api/v2/chat/segments/{id}/deletetargets', pathParams, @@ -2022,18 +1998,18 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - segmentTargetExists = async (request: { + async segmentTargetExists(request: { id: string; target_id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, target_id: request?.target_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'GET', '/api/v2/chat/segments/{id}/target/{target_id}', pathParams, @@ -2043,11 +2019,11 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - querySegmentTargets = async ( + async querySegmentTargets( request: QuerySegmentTargetsRequest & { id: string }, - ): Promise> => { + ): Promise> { const pathParams = { id: request?.id, }; @@ -2059,7 +2035,7 @@ export class ChatApi extends BaseApi { filter: request?.filter, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -2072,11 +2048,11 @@ export class ChatApi extends BaseApi { decoders.QuerySegmentTargetsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryThreads = async ( + async queryThreads( request?: QueryThreadsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, member_limit: request?.member_limit, @@ -2090,21 +2066,21 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/threads', undefined, undefined, body); decoders.QueryThreadsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getThread = async (request: { + async getThread(request: { message_id: string; reply_limit?: number; participant_limit?: number; member_limit?: number; - }): Promise> => { + }): Promise> { const queryParams = { reply_limit: request?.reply_limit, participant_limit: request?.participant_limit, @@ -2114,21 +2090,18 @@ export class ChatApi extends BaseApi { message_id: request?.message_id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/chat/threads/{message_id}', - pathParams, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/chat/threads/{message_id}', pathParams, queryParams); decoders.GetThreadResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateThreadPartial = async ( + async updateThreadPartial( request: UpdateThreadPartialRequest & { message_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { message_id: request?.message_id, }; @@ -2139,7 +2112,7 @@ export class ChatApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'PATCH', @@ -2152,39 +2125,37 @@ export class ChatApi extends BaseApi { decoders.UpdateThreadPartialResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unreadCounts = async (): Promise< - StreamResponse - > => { - const response = await this.sendRequest< + async unreadCounts(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/chat/unread', undefined, undefined); decoders.WrappedUnreadCountsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unreadCountsBatch = async ( + async unreadCountsBatch( request: UnreadCountsBatchRequest, - ): Promise> => { + ): Promise> { const body = { user_ids: request?.user_ids, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/unread_batch', undefined, undefined, body); decoders.UnreadCountsBatchResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - sendUserCustomEvent = async ( + async sendUserCustomEvent( request: SendUserCustomEventRequest & { user_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { user_id: request?.user_id, }; @@ -2192,7 +2163,7 @@ export class ChatApi extends BaseApi { event: request?.event, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'POST', '/api/v2/chat/users/{user_id}/event', pathParams, @@ -2203,5 +2174,5 @@ export class ChatApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } } diff --git a/src/gen/common/CommonApi.ts b/src/gen/common/CommonApi.ts index 5d574a4..30af76f 100644 --- a/src/gen/common/CommonApi.ts +++ b/src/gen/common/CommonApi.ts @@ -1,5 +1,4 @@ -import { BaseApi } from '../../BaseApi'; -import { StreamResponse } from '../../types'; +import { ApiClient, StreamResponse } from '../../gen-imports'; import { BlockUsersRequest, BlockUsersResponse, @@ -69,22 +68,24 @@ import { UpsertPushProviderRequest, UpsertPushProviderResponse, } from '../models'; -import { decoders } from '../model-decoders'; +import { decoders } from '../model-decoders/decoders'; -export class CommonApi extends BaseApi { - getApp = async (): Promise> => { - const response = await this.sendRequest< +export class CommonApi { + constructor(public readonly apiClient: ApiClient) {} + + async getApp(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/app', undefined, undefined); decoders.GetApplicationResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateApp = async ( + async updateApp( request?: UpdateAppRequest, - ): Promise> => { + ): Promise> { const body = { async_url_enrich_enabled: request?.async_url_enrich_enabled, auto_translation_enabled: request?.auto_translation_enabled, @@ -131,7 +132,7 @@ export class CommonApi extends BaseApi { xiaomi_config: request?.xiaomi_config, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'PATCH', '/api/v2/app', undefined, @@ -142,27 +143,27 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listBlockLists = async (request?: { + async listBlockLists(request?: { team?: string; - }): Promise> => { + }): Promise> { const queryParams = { team: request?.team, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/blocklists', undefined, queryParams); decoders.ListBlockListResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createBlockList = async ( + async createBlockList( request: CreateBlockListRequest, - ): Promise> => { + ): Promise> { const body = { name: request?.name, words: request?.words, @@ -170,19 +171,19 @@ export class CommonApi extends BaseApi { type: request?.type, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/blocklists', undefined, undefined, body); decoders.CreateBlockListResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteBlockList = async (request: { + async deleteBlockList(request: { name: string; team?: string; - }): Promise> => { + }): Promise> { const queryParams = { team: request?.team, }; @@ -190,7 +191,7 @@ export class CommonApi extends BaseApi { name: request?.name, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/blocklists/{name}', pathParams, @@ -200,12 +201,12 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getBlockList = async (request: { + async getBlockList(request: { name: string; team?: string; - }): Promise> => { + }): Promise> { const queryParams = { team: request?.team, }; @@ -213,18 +214,18 @@ export class CommonApi extends BaseApi { name: request?.name, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/blocklists/{name}', pathParams, queryParams); decoders.GetBlockListResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateBlockList = async ( + async updateBlockList( request: UpdateBlockListRequest & { name: string }, - ): Promise> => { + ): Promise> { const pathParams = { name: request?.name, }; @@ -233,18 +234,18 @@ export class CommonApi extends BaseApi { words: request?.words, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PUT', '/api/v2/blocklists/{name}', pathParams, undefined, body); decoders.UpdateBlockListResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - checkPush = async ( + async checkPush( request?: CheckPushRequest, - ): Promise> => { + ): Promise> { const body = { apn_template: request?.apn_template, firebase_data_template: request?.firebase_data_template, @@ -257,73 +258,61 @@ export class CommonApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/check_push', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/check_push', undefined, undefined, body); decoders.CheckPushResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - checkSNS = async ( + async checkSNS( request?: CheckSNSRequest, - ): Promise> => { + ): Promise> { const body = { sns_key: request?.sns_key, sns_secret: request?.sns_secret, sns_topic_arn: request?.sns_topic_arn, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/check_sns', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/check_sns', undefined, undefined, body); decoders.CheckSNSResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - checkSQS = async ( + async checkSQS( request?: CheckSQSRequest, - ): Promise> => { + ): Promise> { const body = { sqs_key: request?.sqs_key, sqs_secret: request?.sqs_secret, sqs_url: request?.sqs_url, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/check_sqs', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/check_sqs', undefined, undefined, body); decoders.CheckSQSResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteDevice = async (request: { + async deleteDevice(request: { id: string; user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { id: request?.id, user_id: request?.user_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/devices', undefined, @@ -333,27 +322,27 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listDevices = async (request?: { + async listDevices(request?: { user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/devices', undefined, queryParams); decoders.ListDevicesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createDevice = async ( + async createDevice( request: CreateDeviceRequest, - ): Promise> => { + ): Promise> { const body = { id: request?.id, push_provider: request?.push_provider, @@ -363,7 +352,7 @@ export class CommonApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'POST', '/api/v2/devices', undefined, @@ -374,39 +363,39 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - exportUsers = async ( + async exportUsers( request: ExportUsersRequest, - ): Promise> => { + ): Promise> { const body = { user_ids: request?.user_ids, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/export/users', undefined, undefined, body); decoders.ExportUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listExternalStorage = async (): Promise< + async listExternalStorage(): Promise< StreamResponse - > => { - const response = await this.sendRequest< + > { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/external_storage', undefined, undefined); decoders.ListExternalStorageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createExternalStorage = async ( + async createExternalStorage( request: CreateExternalStorageRequest, - ): Promise> => { + ): Promise> { const body = { bucket: request?.bucket, name: request?.name, @@ -417,34 +406,34 @@ export class CommonApi extends BaseApi { azure_blob: request?.azure_blob, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/external_storage', undefined, undefined, body); decoders.CreateExternalStorageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteExternalStorage = async (request: { + async deleteExternalStorage(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('DELETE', '/api/v2/external_storage/{name}', pathParams, undefined); decoders.DeleteExternalStorageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateExternalStorage = async ( + async updateExternalStorage( request: UpdateExternalStorageRequest & { name: string }, - ): Promise> => { + ): Promise> { const pathParams = { name: request?.name, }; @@ -457,194 +446,186 @@ export class CommonApi extends BaseApi { azure_blob: request?.azure_blob, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PUT', '/api/v2/external_storage/{name}', pathParams, undefined, body); decoders.UpdateExternalStorageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - checkExternalStorage = async (request: { + async checkExternalStorage(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/external_storage/{name}/check', pathParams, undefined); decoders.CheckExternalStorageResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createGuest = async ( + async createGuest( request: CreateGuestRequest, - ): Promise> => { + ): Promise> { const body = { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/guest', undefined, undefined, body); decoders.CreateGuestResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createImportURL = async ( + async createImportURL( request?: CreateImportURLRequest, - ): Promise> => { + ): Promise> { const body = { filename: request?.filename, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/import_urls', undefined, undefined, body); decoders.CreateImportURLResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listImports = async (): Promise> => { - const response = await this.sendRequest< + async listImports(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/imports', undefined, undefined); decoders.ListImportsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createImport = async ( + async createImport( request: CreateImportRequest, - ): Promise> => { + ): Promise> { const body = { mode: request?.mode, path: request?.path, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/imports', undefined, undefined, body); decoders.CreateImportResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getImport = async (request: { + async getImport(request: { id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/imports/{id}', - pathParams, - undefined, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/imports/{id}', pathParams, undefined); decoders.GetImportResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getOG = async (request: { + async getOG(request: { url: string; - }): Promise> => { + }): Promise> { const queryParams = { url: request?.url, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/og', - undefined, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/og', undefined, queryParams); decoders.GetOGResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listPermissions = async (): Promise< - StreamResponse - > => { - const response = await this.sendRequest< + async listPermissions(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/permissions', undefined, undefined); decoders.ListPermissionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getPermission = async (request: { + async getPermission(request: { id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/permissions/{id}', pathParams, undefined); decoders.GetCustomPermissionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listPushProviders = async (): Promise< + async listPushProviders(): Promise< StreamResponse - > => { - const response = await this.sendRequest< + > { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/push_providers', undefined, undefined); decoders.ListPushProvidersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - upsertPushProvider = async ( + async upsertPushProvider( request?: UpsertPushProviderRequest, - ): Promise> => { + ): Promise> { const body = { push_provider: request?.push_provider, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/push_providers', undefined, undefined, body); decoders.UpsertPushProviderResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deletePushProvider = async (request: { + async deletePushProvider(request: { type: string; name: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, name: request?.name, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/push_providers/{type}/{name}', pathParams, @@ -654,15 +635,15 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getRateLimits = async (request?: { + async getRateLimits(request?: { server_side?: boolean; android?: boolean; ios?: boolean; web?: boolean; endpoints?: string; - }): Promise> => { + }): Promise> { const queryParams = { server_side: request?.server_side, android: request?.android, @@ -671,56 +652,49 @@ export class CommonApi extends BaseApi { endpoints: request?.endpoints, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/rate_limits', undefined, queryParams); decoders.GetRateLimitsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listRoles = async (): Promise> => { - const response = await this.sendRequest>( - 'GET', - '/api/v2/roles', - undefined, - undefined, - ); + async listRoles(): Promise> { + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/roles', undefined, undefined); decoders.ListRolesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createRole = async ( + async createRole( request: CreateRoleRequest, - ): Promise> => { + ): Promise> { const body = { name: request?.name, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/roles', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/roles', undefined, undefined, body); decoders.CreateRoleResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteRole = async (request: { + async deleteRole(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/roles/{name}', pathParams, @@ -730,119 +704,109 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getTask = async (request: { + async getTask(request: { id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/tasks/{id}', - pathParams, - undefined, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/tasks/{id}', pathParams, undefined); decoders.GetTaskResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryUsers = async (request?: { + async queryUsers(request?: { payload?: QueryUsersPayload; - }): Promise> => { + }): Promise> { const queryParams = { payload: request?.payload, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/users', - undefined, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/users', undefined, queryParams); decoders.QueryUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateUsersPartial = async ( + async updateUsersPartial( request: UpdateUsersPartialRequest, - ): Promise> => { + ): Promise> { const body = { users: request?.users, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PATCH', '/api/v2/users', undefined, undefined, body); decoders.UpdateUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateUsers = async ( + async updateUsers( request: UpdateUsersRequest, - ): Promise> => { + ): Promise> { const body = { users: request?.users, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/users', undefined, undefined, body); decoders.UpdateUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getBlockedUsers = async (request?: { + async getBlockedUsers(request?: { user_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { user_id: request?.user_id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/users/block', undefined, queryParams); decoders.GetBlockedUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - blockUsers = async ( + async blockUsers( request: BlockUsersRequest, - ): Promise> => { + ): Promise> { const body = { blocked_user_id: request?.blocked_user_id, user_id: request?.user_id, user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/users/block', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/users/block', undefined, undefined, body); decoders.BlockUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deactivateUsers = async ( + async deactivateUsers( request: DeactivateUsersRequest, - ): Promise> => { + ): Promise> { const body = { user_ids: request?.user_ids, created_by_id: request?.created_by_id, @@ -850,18 +814,18 @@ export class CommonApi extends BaseApi { mark_messages_deleted: request?.mark_messages_deleted, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/users/deactivate', undefined, undefined, body); decoders.DeactivateUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteUsers = async ( + async deleteUsers( request: DeleteUsersRequest, - ): Promise> => { + ): Promise> { const body = { user_ids: request?.user_ids, calls: request?.calls, @@ -872,18 +836,18 @@ export class CommonApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/users/delete', undefined, undefined, body); decoders.DeleteUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - reactivateUsers = async ( + async reactivateUsers( request: ReactivateUsersRequest, - ): Promise> => { + ): Promise> { const body = { user_ids: request?.user_ids, created_by_id: request?.created_by_id, @@ -891,23 +855,23 @@ export class CommonApi extends BaseApi { restore_messages: request?.restore_messages, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/users/reactivate', undefined, undefined, body); decoders.ReactivateUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - restoreUsers = async ( + async restoreUsers( request: RestoreUsersRequest, - ): Promise> => { + ): Promise> { const body = { user_ids: request?.user_ids, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'POST', '/api/v2/users/restore', undefined, @@ -918,29 +882,29 @@ export class CommonApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unblockUsers = async ( + async unblockUsers( request: UnblockUsersRequest, - ): Promise> => { + ): Promise> { const body = { blocked_user_id: request?.blocked_user_id, user_id: request?.user_id, user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/users/unblock', undefined, undefined, body); decoders.UnblockUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deactivateUser = async ( + async deactivateUser( request: DeactivateUserRequest & { user_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { user_id: request?.user_id, }; @@ -949,7 +913,7 @@ export class CommonApi extends BaseApi { mark_messages_deleted: request?.mark_messages_deleted, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -962,30 +926,27 @@ export class CommonApi extends BaseApi { decoders.DeactivateUserResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - exportUser = async (request: { + async exportUser(request: { user_id: string; - }): Promise> => { + }): Promise> { const pathParams = { user_id: request?.user_id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/users/{user_id}/export', - pathParams, - undefined, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/users/{user_id}/export', pathParams, undefined); decoders.ExportUserResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - reactivateUser = async ( + async reactivateUser( request: ReactivateUserRequest & { user_id: string }, - ): Promise> => { + ): Promise> { const pathParams = { user_id: request?.user_id, }; @@ -995,7 +956,7 @@ export class CommonApi extends BaseApi { restore_messages: request?.restore_messages, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -1008,5 +969,5 @@ export class CommonApi extends BaseApi { decoders.ReactivateUserResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } } diff --git a/src/gen/common/_CommonApiInterface.ts b/src/gen/common/_CommonApiInterface.ts new file mode 100644 index 0000000..6a41487 --- /dev/null +++ b/src/gen/common/_CommonApiInterface.ts @@ -0,0 +1,256 @@ +import { StreamResponse } from '../../gen-imports'; +import { + BlockUsersRequest, + BlockUsersResponse, + CheckExternalStorageResponse, + CheckPushRequest, + CheckPushResponse, + CheckSNSRequest, + CheckSNSResponse, + CheckSQSRequest, + CheckSQSResponse, + CreateBlockListRequest, + CreateBlockListResponse, + CreateDeviceRequest, + CreateExternalStorageRequest, + CreateExternalStorageResponse, + CreateGuestRequest, + CreateGuestResponse, + CreateImportRequest, + CreateImportResponse, + CreateImportURLRequest, + CreateImportURLResponse, + CreateRoleRequest, + CreateRoleResponse, + DeactivateUserRequest, + DeactivateUserResponse, + DeactivateUsersRequest, + DeactivateUsersResponse, + DeleteExternalStorageResponse, + DeleteUsersRequest, + DeleteUsersResponse, + ExportUserResponse, + ExportUsersRequest, + ExportUsersResponse, + GetApplicationResponse, + GetBlockListResponse, + GetBlockedUsersResponse, + GetCustomPermissionResponse, + GetImportResponse, + GetOGResponse, + GetRateLimitsResponse, + GetTaskResponse, + ListBlockListResponse, + ListDevicesResponse, + ListExternalStorageResponse, + ListImportsResponse, + ListPermissionsResponse, + ListPushProvidersResponse, + ListRolesResponse, + QueryUsersPayload, + QueryUsersResponse, + ReactivateUserRequest, + ReactivateUserResponse, + ReactivateUsersRequest, + ReactivateUsersResponse, + Response, + RestoreUsersRequest, + UnblockUsersRequest, + UnblockUsersResponse, + UpdateAppRequest, + UpdateBlockListRequest, + UpdateBlockListResponse, + UpdateExternalStorageRequest, + UpdateExternalStorageResponse, + UpdateUsersPartialRequest, + UpdateUsersRequest, + UpdateUsersResponse, + UpsertPushProviderRequest, + UpsertPushProviderResponse, +} from '../models'; + +export interface _CommonApiInterface { + getApp: () => Promise>; + + updateApp: (request?: UpdateAppRequest) => Promise>; + + listBlockLists: (request?: { + team?: string; + }) => Promise>; + + createBlockList: ( + request: CreateBlockListRequest, + ) => Promise>; + + deleteBlockList: (request: { + name: string; + team?: string; + }) => Promise>; + + getBlockList: (request: { + name: string; + team?: string; + }) => Promise>; + + updateBlockList: ( + request: UpdateBlockListRequest & { name: string }, + ) => Promise>; + + checkPush: ( + request?: CheckPushRequest, + ) => Promise>; + + checkSNS: ( + request?: CheckSNSRequest, + ) => Promise>; + + checkSQS: ( + request?: CheckSQSRequest, + ) => Promise>; + + deleteDevice: (request: { + id: string; + user_id?: string; + }) => Promise>; + + listDevices: (request?: { + user_id?: string; + }) => Promise>; + + createDevice: ( + request: CreateDeviceRequest, + ) => Promise>; + + exportUsers: ( + request: ExportUsersRequest, + ) => Promise>; + + listExternalStorage: () => Promise< + StreamResponse + >; + + createExternalStorage: ( + request: CreateExternalStorageRequest, + ) => Promise>; + + deleteExternalStorage: (request: { + name: string; + }) => Promise>; + + updateExternalStorage: ( + request: UpdateExternalStorageRequest & { name: string }, + ) => Promise>; + + checkExternalStorage: (request: { + name: string; + }) => Promise>; + + createGuest: ( + request: CreateGuestRequest, + ) => Promise>; + + createImportURL: ( + request?: CreateImportURLRequest, + ) => Promise>; + + listImports: () => Promise>; + + createImport: ( + request: CreateImportRequest, + ) => Promise>; + + getImport: (request: { + id: string; + }) => Promise>; + + getOG: (request: { url: string }) => Promise>; + + listPermissions: () => Promise>; + + getPermission: (request: { + id: string; + }) => Promise>; + + listPushProviders: () => Promise>; + + upsertPushProvider: ( + request?: UpsertPushProviderRequest, + ) => Promise>; + + deletePushProvider: (request: { + type: string; + name: string; + }) => Promise>; + + getRateLimits: (request?: { + server_side?: boolean; + android?: boolean; + ios?: boolean; + web?: boolean; + endpoints?: string; + }) => Promise>; + + listRoles: () => Promise>; + + createRole: ( + request: CreateRoleRequest, + ) => Promise>; + + deleteRole: (request: { name: string }) => Promise>; + + getTask: (request: { + id: string; + }) => Promise>; + + queryUsers: (request?: { + payload?: QueryUsersPayload; + }) => Promise>; + + updateUsersPartial: ( + request: UpdateUsersPartialRequest, + ) => Promise>; + + updateUsers: ( + request: UpdateUsersRequest, + ) => Promise>; + + getBlockedUsers: (request?: { + user_id?: string; + }) => Promise>; + + blockUsers: ( + request: BlockUsersRequest, + ) => Promise>; + + deactivateUsers: ( + request: DeactivateUsersRequest, + ) => Promise>; + + deleteUsers: ( + request: DeleteUsersRequest, + ) => Promise>; + + reactivateUsers: ( + request: ReactivateUsersRequest, + ) => Promise>; + + restoreUsers: ( + request: RestoreUsersRequest, + ) => Promise>; + + unblockUsers: ( + request: UnblockUsersRequest, + ) => Promise>; + + deactivateUser: ( + request: DeactivateUserRequest & { user_id: string }, + ) => Promise>; + + exportUser: (request: { + user_id: string; + }) => Promise>; + + reactivateUser: ( + request: ReactivateUserRequest & { user_id: string }, + ) => Promise>; +} diff --git a/src/gen/model-decoders/index.ts b/src/gen/model-decoders/decoders.ts similarity index 69% rename from src/gen/model-decoders/index.ts rename to src/gen/model-decoders/decoders.ts index 435e8b8..d3830de 100644 --- a/src/gen/model-decoders/index.ts +++ b/src/gen/model-decoders/decoders.ts @@ -4,8 +4,10 @@ type TypeMapping = Record; export const decoders: Record = {}; -const decodeDatetimeType = (input: number) => - new Date(Math.floor(input / 1000000)); +const decodeDatetimeType = (input: number | string) => + typeof input === 'number' + ? new Date(Math.floor(input / 1000000)) + : new Date(input); decoders.DatetimeType = decodeDatetimeType; @@ -58,6 +60,20 @@ decoders.ActionLogResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ActivityMarkedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AnyEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.AppResponseFields = (input?: Record) => { const typeMappings: TypeMapping = { call_types: { type: 'CallType', isSingle: false }, @@ -71,6 +87,58 @@ decoders.AppResponseFields = (input?: Record) => { return decode(typeMappings, input); }; +decoders.AsyncExportChannelsEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AsyncExportErrorEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AsyncExportModerationLogsEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AsyncExportUsersEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.AutomodDetails = (input?: Record) => { const typeMappings: TypeMapping = { result: { type: 'MessageModerationResult', isSingle: true }, @@ -124,6 +192,17 @@ decoders.BlockUsersResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.BlockedUserEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + blocked_by_user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.BlockedUserResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -135,6 +214,207 @@ decoders.BlockedUserResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallAcceptedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallClosedCaptionsFailedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallClosedCaptionsStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallClosedCaptionsStoppedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallCreatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallEndedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallFrameRecordingFailedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallFrameRecordingFrameReadyEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + captured_at: { type: 'DatetimeType', isSingle: true }, + + created_at: { type: 'DatetimeType', isSingle: true }, + + users: { type: 'UserResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.CallFrameRecordingStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallFrameRecordingStoppedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallHLSBroadcastingFailedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallHLSBroadcastingStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallHLSBroadcastingStoppedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallLiveStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallMemberAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallMemberRemovedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallMemberUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallMemberUpdatedPermissionEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallMissedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallNotificationEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallParticipantResponse = (input?: Record) => { const typeMappings: TypeMapping = { joined_at: { type: 'DatetimeType', isSingle: true }, @@ -144,6 +424,15 @@ decoders.CallParticipantResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallReactionEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + reaction: { type: 'ReactionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallRecording = (input?: Record) => { const typeMappings: TypeMapping = { end_time: { type: 'DatetimeType', isSingle: true }, @@ -153,6 +442,47 @@ decoders.CallRecording = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallRecordingFailedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRecordingReadyEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call_recording: { type: 'CallRecording', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRecordingStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRecordingStoppedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRejectedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallReportResponse = (input?: Record) => { const typeMappings: TypeMapping = { ended_at: { type: 'DatetimeType', isSingle: true }, @@ -179,6 +509,67 @@ decoders.CallResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallRingEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRtmpBroadcastFailedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRtmpBroadcastStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallRtmpBroadcastStoppedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallSessionEndedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallSessionParticipantJoinedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + participant: { type: 'CallParticipantResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallSessionParticipantLeftEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + participant: { type: 'CallParticipantResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallSessionResponse = (input?: Record) => { const typeMappings: TypeMapping = { participants: { type: 'CallParticipantResponse', isSingle: false }, @@ -202,6 +593,15 @@ decoders.CallSessionResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallSessionStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallStateResponseFields = (input?: Record) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, @@ -211,6 +611,13 @@ decoders.CallStateResponseFields = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallStatsReportReadyEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallStatsReportSummaryResponse = (input?: Record) => { const typeMappings: TypeMapping = { first_stats_time: { type: 'DatetimeType', isSingle: true }, @@ -229,6 +636,36 @@ decoders.CallTranscription = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallTranscriptionFailedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallTranscriptionReadyEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call_transcription: { type: 'CallTranscription', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallTranscriptionStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallTranscriptionStoppedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CallType = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -247,6 +684,42 @@ decoders.CallTypeResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CallUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallUserFeedbackSubmittedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CallUserMutedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CampaignCompletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + campaign: { type: 'CampaignResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.CampaignResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -259,11 +732,22 @@ decoders.CampaignResponse = (input?: Record) => { stats: { type: 'CampaignStatsResponse', isSingle: true }, - scheduled_for: { type: 'DatetimeType', isSingle: true }, + scheduled_for: { type: 'DatetimeType', isSingle: true }, + + stop_at: { type: 'DatetimeType', isSingle: true }, + + sender: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CampaignStartedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, - stop_at: { type: 'DatetimeType', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, - sender: { type: 'UserResponse', isSingle: true }, + campaign: { type: 'CampaignResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -320,6 +804,40 @@ decoders.ChannelConfigWithInfo = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ChannelCreatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ChannelDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ChannelFrozenEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ChannelHiddenEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ChannelMember = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -381,6 +899,13 @@ decoders.ChannelMute = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ChannelMutedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ChannelPushPreferences = (input?: Record) => { const typeMappings: TypeMapping = { disabled_until: { type: 'DatetimeType', isSingle: true }, @@ -473,6 +998,15 @@ decoders.ChannelStateResponseFields = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ChannelTruncatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ChannelTypeConfig = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -484,6 +1018,42 @@ decoders.ChannelTypeConfig = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ChannelUnFrozenEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ChannelUnmutedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ChannelUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ChannelVisibleEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ChatActivityStatsResponse = (input?: Record) => { const typeMappings: TypeMapping = { messages: { type: 'MessageStatsResponse', isSingle: true }, @@ -498,6 +1068,13 @@ decoders.CheckResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ClosedCaptionEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.Command = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -583,6 +1160,15 @@ decoders.CustomCheckResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CustomVideoEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.DeactivateUserResponse = (input?: Record) => { const typeMappings: TypeMapping = { user: { type: 'UserResponse', isSingle: true }, @@ -753,6 +1339,21 @@ decoders.FlagFeedback = (input?: Record) => { return decode(typeMappings, input); }; +decoders.FlagUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'UserResponse', isSingle: true }, + + message: { type: 'MessageResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.FullUserResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1034,6 +1635,28 @@ decoders.MarkReadResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.MemberAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'ChannelMember', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.MemberRemovedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'ChannelMember', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.MemberResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1047,6 +1670,17 @@ decoders.MemberResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.MemberUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'ChannelMember', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.MembersResponse = (input?: Record) => { const typeMappings: TypeMapping = { members: { type: 'ChannelMember', isSingle: false }, @@ -1089,6 +1723,19 @@ decoders.Message = (input?: Record) => { return decode(typeMappings, input); }; +decoders.MessageDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'User', isSingle: false }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.MessageFlagResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1116,36 +1763,147 @@ decoders.MessageFlagResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageHistoryEntryResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - message_updated_at: { type: 'DatetimeType', isSingle: true }, +decoders.MessageFlaggedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'User', isSingle: false }, + + flag: { type: 'Flag', isSingle: true }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageHistoryEntryResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + message_updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageModerationResult = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageNewEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'User', isSingle: false }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageReadEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + channel_last_message_at: { type: 'DatetimeType', isSingle: true }, + + thread: { type: 'ThreadResponse', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + latest_reactions: { type: 'ReactionResponse', isSingle: false }, + + mentioned_users: { type: 'UserResponse', isSingle: false }, + + own_reactions: { type: 'ReactionResponse', isSingle: false }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + message_text_updated_at: { type: 'DatetimeType', isSingle: true }, + + pin_expires: { type: 'DatetimeType', isSingle: true }, + + pinned_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'UserResponse', isSingle: false }, + + draft: { type: 'DraftResponse', isSingle: true }, + + pinned_by: { type: 'UserResponse', isSingle: true }, + + poll: { type: 'PollResponseData', isSingle: true }, + + quoted_message: { type: 'MessageResponse', isSingle: true }, + + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageStatsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + count_over_time: { type: 'CountByMinuteResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.MessageUnblockedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'User', isSingle: false }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageModerationResult = (input?: Record) => { +decoders.MessageUndeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, + thread_participants: { type: 'User', isSingle: false }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageReadEvent = (input?: Record) => { +decoders.MessageUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - channel_last_message_at: { type: 'DatetimeType', isSingle: true }, + thread_participants: { type: 'User', isSingle: false }, - thread: { type: 'ThreadResponse', isSingle: true }, + message: { type: 'Message', isSingle: true }, - user: { type: 'UserResponseCommonFields', isSingle: true }, + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageResponse = (input?: Record) => { +decoders.MessageWithChannelResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1157,6 +1915,8 @@ decoders.MessageResponse = (input?: Record) => { own_reactions: { type: 'ReactionResponse', isSingle: false }, + channel: { type: 'ChannelResponse', isSingle: true }, + user: { type: 'UserResponse', isSingle: true }, deleted_at: { type: 'DatetimeType', isSingle: true }, @@ -1182,48 +1942,46 @@ decoders.MessageResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageStatsResponse = (input?: Record) => { +decoders.ModerationCheckCompletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { - count_over_time: { type: 'CountByMinuteResponse', isSingle: false }, + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageWithChannelResponse = (input?: Record) => { +decoders.ModerationCustomActionEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, - - latest_reactions: { type: 'ReactionResponse', isSingle: false }, - - mentioned_users: { type: 'UserResponse', isSingle: false }, - - own_reactions: { type: 'ReactionResponse', isSingle: false }, - - channel: { type: 'ChannelResponse', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - message_text_updated_at: { type: 'DatetimeType', isSingle: true }, + item: { type: 'ReviewQueueItem', isSingle: true }, - pin_expires: { type: 'DatetimeType', isSingle: true }, + message: { type: 'Message', isSingle: true }, - pinned_at: { type: 'DatetimeType', isSingle: true }, + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; - thread_participants: { type: 'UserResponse', isSingle: false }, +decoders.ModerationFlaggedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, - draft: { type: 'DraftResponse', isSingle: true }, + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; - pinned_by: { type: 'UserResponse', isSingle: true }, +decoders.ModerationMarkReviewedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, - poll: { type: 'PollResponseData', isSingle: true }, + item: { type: 'ReviewQueueItem', isSingle: true }, - quoted_message: { type: 'MessageResponse', isSingle: true }, + message: { type: 'Message', isSingle: true }, - reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; @@ -1248,6 +2006,19 @@ decoders.MuteResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.NotificationMarkUnreadEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + last_read_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.OwnUser = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1323,6 +2094,15 @@ decoders.PendingMessageResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.PermissionRequestEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.Poll = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1605,6 +2385,21 @@ decoders.Reaction = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ReactionDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'User', isSingle: false }, + + message: { type: 'Message', isSingle: true }, + + reaction: { type: 'Reaction', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ReactionGroupResponse = (input?: Record) => { const typeMappings: TypeMapping = { first_reaction_at: { type: 'DatetimeType', isSingle: true }, @@ -1614,6 +2409,21 @@ decoders.ReactionGroupResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ReactionNewEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread_participants: { type: 'User', isSingle: false }, + + message: { type: 'Message', isSingle: true }, + + reaction: { type: 'Reaction', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1625,6 +2435,19 @@ decoders.ReactionResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ReactionUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + message: { type: 'Message', isSingle: true }, + + reaction: { type: 'Reaction', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ReactivateUserResponse = (input?: Record) => { const typeMappings: TypeMapping = { user: { type: 'UserResponse', isSingle: true }, @@ -1666,6 +2489,19 @@ decoders.ReviewQueueItem = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ReviewQueueItemNewEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + action: { type: 'ActionLogResponse', isSingle: true }, + + review_queue_item: { type: 'ReviewQueueItemResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ReviewQueueItemResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1693,6 +2529,19 @@ decoders.ReviewQueueItemResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ReviewQueueItemUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + action: { type: 'ActionLogResponse', isSingle: true }, + + review_queue_item: { type: 'ReviewQueueItemResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.Role = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1870,6 +2719,17 @@ decoders.ThreadStateResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ThreadUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + thread: { type: 'ThreadResponse', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.TruncateChannelResponse = (input?: Record) => { const typeMappings: TypeMapping = { channel: { type: 'ChannelResponse', isSingle: true }, @@ -1879,6 +2739,15 @@ decoders.TruncateChannelResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UnblockedUserEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UnreadCountsBatchResponse = (input?: Record) => { const typeMappings: TypeMapping = { counts_by_user: { type: 'UnreadCountsResponse', isSingle: false }, @@ -2012,6 +2881,15 @@ decoders.UpdateUsersResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UpdatedCallPermissionsEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UpsertConfigResponse = (input?: Record) => { const typeMappings: TypeMapping = { config: { type: 'ConfigResponse', isSingle: true }, @@ -2063,6 +2941,48 @@ decoders.User = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UserBannedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'User', isSingle: true }, + + expiration: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserDeactivatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'User', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserFlaggedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UserMute = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2093,6 +3013,24 @@ decoders.UserMuteResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UserMutedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserReactivatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UserResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2136,6 +3074,42 @@ decoders.UserResponseCommonFields = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UserUnbannedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserUnmutedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserUnreadReminderEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.WSEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 638c86d..40f8ebd 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -168,6 +168,24 @@ export interface ActionLogResponse { user?: UserResponse; } +export interface ActivityMarkedEvent { + all_read: boolean; + + all_seen: boolean; + + created_at: Date; + + feed_id: string; + + user_id: string; + + type: string; + + marked_read?: string[]; + + marked_watched?: string[]; +} + export interface AnyEvent { created_at: Date; @@ -8100,6 +8118,8 @@ export interface TruncateChannelRequest { user_id?: string; + member_ids?: string[]; + message?: MessageRequest; user?: UserRequest; @@ -9406,9 +9426,121 @@ export interface WSEvent { user?: UserResponse; } -export interface WebhookEvent { - type: string; -} +export type WebhookEvent = + | ({ type: '*' } & AnyEvent) + | ({ type: 'activity.marked' } & ActivityMarkedEvent) + | ({ type: 'call.accepted' } & CallAcceptedEvent) + | ({ type: 'call.blocked_user' } & BlockedUserEvent) + | ({ type: 'call.closed_caption' } & ClosedCaptionEvent) + | ({ type: 'call.closed_captions_failed' } & CallClosedCaptionsFailedEvent) + | ({ type: 'call.closed_captions_started' } & CallClosedCaptionsStartedEvent) + | ({ type: 'call.closed_captions_stopped' } & CallClosedCaptionsStoppedEvent) + | ({ type: 'call.created' } & CallCreatedEvent) + | ({ type: 'call.deleted' } & CallDeletedEvent) + | ({ type: 'call.ended' } & CallEndedEvent) + | ({ type: 'call.frame_recording_failed' } & CallFrameRecordingFailedEvent) + | ({ type: 'call.frame_recording_ready' } & CallFrameRecordingFrameReadyEvent) + | ({ type: 'call.frame_recording_started' } & CallFrameRecordingStartedEvent) + | ({ type: 'call.frame_recording_stopped' } & CallFrameRecordingStoppedEvent) + | ({ type: 'call.hls_broadcasting_failed' } & CallHLSBroadcastingFailedEvent) + | ({ + type: 'call.hls_broadcasting_started'; + } & CallHLSBroadcastingStartedEvent) + | ({ + type: 'call.hls_broadcasting_stopped'; + } & CallHLSBroadcastingStoppedEvent) + | ({ type: 'call.live_started' } & CallLiveStartedEvent) + | ({ type: 'call.member_added' } & CallMemberAddedEvent) + | ({ type: 'call.member_removed' } & CallMemberRemovedEvent) + | ({ type: 'call.member_updated' } & CallMemberUpdatedEvent) + | ({ + type: 'call.member_updated_permission'; + } & CallMemberUpdatedPermissionEvent) + | ({ type: 'call.missed' } & CallMissedEvent) + | ({ type: 'call.notification' } & CallNotificationEvent) + | ({ type: 'call.permission_request' } & PermissionRequestEvent) + | ({ type: 'call.permissions_updated' } & UpdatedCallPermissionsEvent) + | ({ type: 'call.reaction_new' } & CallReactionEvent) + | ({ type: 'call.recording_failed' } & CallRecordingFailedEvent) + | ({ type: 'call.recording_ready' } & CallRecordingReadyEvent) + | ({ type: 'call.recording_started' } & CallRecordingStartedEvent) + | ({ type: 'call.recording_stopped' } & CallRecordingStoppedEvent) + | ({ type: 'call.rejected' } & CallRejectedEvent) + | ({ type: 'call.ring' } & CallRingEvent) + | ({ type: 'call.rtmp_broadcast_failed' } & CallRtmpBroadcastFailedEvent) + | ({ type: 'call.rtmp_broadcast_started' } & CallRtmpBroadcastStartedEvent) + | ({ type: 'call.rtmp_broadcast_stopped' } & CallRtmpBroadcastStoppedEvent) + | ({ type: 'call.session_ended' } & CallSessionEndedEvent) + | ({ + type: 'call.session_participant_joined'; + } & CallSessionParticipantJoinedEvent) + | ({ + type: 'call.session_participant_left'; + } & CallSessionParticipantLeftEvent) + | ({ type: 'call.session_started' } & CallSessionStartedEvent) + | ({ type: 'call.stats_report_ready' } & CallStatsReportReadyEvent) + | ({ type: 'call.transcription_failed' } & CallTranscriptionFailedEvent) + | ({ type: 'call.transcription_ready' } & CallTranscriptionReadyEvent) + | ({ type: 'call.transcription_started' } & CallTranscriptionStartedEvent) + | ({ type: 'call.transcription_stopped' } & CallTranscriptionStoppedEvent) + | ({ type: 'call.unblocked_user' } & UnblockedUserEvent) + | ({ type: 'call.updated' } & CallUpdatedEvent) + | ({ type: 'call.user_feedback_submitted' } & CallUserFeedbackSubmittedEvent) + | ({ type: 'call.user_muted' } & CallUserMutedEvent) + | ({ type: 'campaign.completed' } & CampaignCompletedEvent) + | ({ type: 'campaign.started' } & CampaignStartedEvent) + | ({ type: 'channel.created' } & ChannelCreatedEvent) + | ({ type: 'channel.deleted' } & ChannelDeletedEvent) + | ({ type: 'channel.frozen' } & ChannelFrozenEvent) + | ({ type: 'channel.hidden' } & ChannelHiddenEvent) + | ({ type: 'channel.muted' } & ChannelMutedEvent) + | ({ type: 'channel.truncated' } & ChannelTruncatedEvent) + | ({ type: 'channel.unfrozen' } & ChannelUnFrozenEvent) + | ({ type: 'channel.unmuted' } & ChannelUnmutedEvent) + | ({ type: 'channel.updated' } & ChannelUpdatedEvent) + | ({ type: 'channel.visible' } & ChannelVisibleEvent) + | ({ type: 'custom' } & CustomVideoEvent) + | ({ type: 'export.channels.error' } & AsyncExportErrorEvent) + | ({ type: 'export.channels.success' } & AsyncExportChannelsEvent) + | ({ type: 'export.moderation_logs.error' } & AsyncExportErrorEvent) + | ({ + type: 'export.moderation_logs.success'; + } & AsyncExportModerationLogsEvent) + | ({ type: 'export.users.error' } & AsyncExportErrorEvent) + | ({ type: 'export.users.success' } & AsyncExportUsersEvent) + | ({ type: 'flag.updated' } & FlagUpdatedEvent) + | ({ type: 'member.added' } & MemberAddedEvent) + | ({ type: 'member.removed' } & MemberRemovedEvent) + | ({ type: 'member.updated' } & MemberUpdatedEvent) + | ({ type: 'message.deleted' } & MessageDeletedEvent) + | ({ type: 'message.flagged' } & MessageFlaggedEvent) + | ({ type: 'message.new' } & MessageNewEvent) + | ({ type: 'message.read' } & MessageReadEvent) + | ({ type: 'message.unblocked' } & MessageUnblockedEvent) + | ({ type: 'message.undeleted' } & MessageUndeletedEvent) + | ({ type: 'message.updated' } & MessageUpdatedEvent) + | ({ type: 'moderation.custom_action' } & ModerationCustomActionEvent) + | ({ type: 'moderation.flagged' } & ModerationFlaggedEvent) + | ({ type: 'moderation.mark_reviewed' } & ModerationMarkReviewedEvent) + | ({ type: 'moderation_check.completed' } & ModerationCheckCompletedEvent) + | ({ type: 'notification.mark_unread' } & NotificationMarkUnreadEvent) + | ({ type: 'notification.thread_message_new' } & MessageNewEvent) + | ({ type: 'reaction.deleted' } & ReactionDeletedEvent) + | ({ type: 'reaction.new' } & ReactionNewEvent) + | ({ type: 'reaction.updated' } & ReactionUpdatedEvent) + | ({ type: 'review_queue_item.new' } & ReviewQueueItemNewEvent) + | ({ type: 'review_queue_item.updated' } & ReviewQueueItemUpdatedEvent) + | ({ type: 'thread.updated' } & ThreadUpdatedEvent) + | ({ type: 'user.banned' } & UserBannedEvent) + | ({ type: 'user.deactivated' } & UserDeactivatedEvent) + | ({ type: 'user.deleted' } & UserDeletedEvent) + | ({ type: 'user.flagged' } & UserFlaggedEvent) + | ({ type: 'user.muted' } & UserMutedEvent) + | ({ type: 'user.reactivated' } & UserReactivatedEvent) + | ({ type: 'user.unbanned' } & UserUnbannedEvent) + | ({ type: 'user.unmuted' } & UserUnmutedEvent) + | ({ type: 'user.unread_message_reminder' } & UserUnreadReminderEvent) + | ({ type: 'user.updated' } & UserUpdatedEvent); export interface WrappedUnreadCountsResponse { duration: string; diff --git a/src/gen/moderation/ModerationApi.ts b/src/gen/moderation/ModerationApi.ts index 6627aac..272b2d4 100644 --- a/src/gen/moderation/ModerationApi.ts +++ b/src/gen/moderation/ModerationApi.ts @@ -1,5 +1,4 @@ -import { BaseApi } from '../../BaseApi'; -import { StreamResponse } from '../../types'; +import { ApiClient, StreamResponse } from '../../gen-imports'; import { BanRequest, BanResponse, @@ -33,10 +32,12 @@ import { UpsertModerationTemplateRequest, UpsertModerationTemplateResponse, } from '../models'; -import { decoders } from '../model-decoders'; +import { decoders } from '../model-decoders/decoders'; -export class ModerationApi extends BaseApi { - ban = async (request: BanRequest): Promise> => { +export class ModerationApi { + constructor(public readonly apiClient: ApiClient) {} + + async ban(request: BanRequest): Promise> { const body = { target_user_id: request?.target_user_id, banned_by_id: request?.banned_by_id, @@ -48,22 +49,16 @@ export class ModerationApi extends BaseApi { banned_by: request?.banned_by, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/moderation/ban', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/moderation/ban', undefined, undefined, body); decoders.BanResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - check = async ( - request: CheckRequest, - ): Promise> => { + async check(request: CheckRequest): Promise> { const body = { config_key: request?.config_key, entity_creator_id: request?.entity_creator_id, @@ -77,22 +72,18 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/moderation/check', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/moderation/check', undefined, undefined, body); decoders.CheckResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - upsertConfig = async ( + async upsertConfig( request: UpsertConfigRequest, - ): Promise> => { + ): Promise> { const body = { key: request?.key, async: request?.async, @@ -114,19 +105,19 @@ export class ModerationApi extends BaseApi { velocity_filter_config: request?.velocity_filter_config, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/moderation/config', undefined, undefined, body); decoders.UpsertConfigResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteConfig = async (request: { + async deleteConfig(request: { key: string; team?: string; - }): Promise> => { + }): Promise> { const queryParams = { team: request?.team, }; @@ -134,19 +125,19 @@ export class ModerationApi extends BaseApi { key: request?.key, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('DELETE', '/api/v2/moderation/config/{key}', pathParams, queryParams); decoders.DeleteModerationConfigResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getConfig = async (request: { + async getConfig(request: { key: string; team?: string; - }): Promise> => { + }): Promise> { const queryParams = { team: request?.team, }; @@ -154,21 +145,18 @@ export class ModerationApi extends BaseApi { key: request?.key, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/moderation/config/{key}', - pathParams, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/moderation/config/{key}', pathParams, queryParams); decoders.GetConfigResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryModerationConfigs = async ( + async queryModerationConfigs( request?: QueryModerationConfigsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, next: request?.next, @@ -179,18 +167,18 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/moderation/configs', undefined, undefined, body); decoders.QueryModerationConfigsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - customCheck = async ( + async customCheck( request: CustomCheckRequest, - ): Promise> => { + ): Promise> { const body = { entity_id: request?.entity_id, entity_type: request?.entity_type, @@ -201,19 +189,19 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/moderation/custom_check', undefined, undefined, body); decoders.CustomCheckResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - v2DeleteTemplate = async (): Promise< + async v2DeleteTemplate(): Promise< StreamResponse - > => { - const response = await this.sendRequest< + > { + const response = await this.apiClient.sendRequest< StreamResponse >( 'DELETE', @@ -225,12 +213,12 @@ export class ModerationApi extends BaseApi { decoders.DeleteModerationTemplateResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - v2QueryTemplates = async (): Promise< + async v2QueryTemplates(): Promise< StreamResponse - > => { - const response = await this.sendRequest< + > { + const response = await this.apiClient.sendRequest< StreamResponse >( 'GET', @@ -242,17 +230,17 @@ export class ModerationApi extends BaseApi { decoders.QueryFeedModerationTemplatesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - v2UpsertTemplate = async ( + async v2UpsertTemplate( request: UpsertModerationTemplateRequest, - ): Promise> => { + ): Promise> { const body = { name: request?.name, config: request?.config, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -265,11 +253,9 @@ export class ModerationApi extends BaseApi { decoders.UpsertModerationTemplateResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - flag = async ( - request: FlagRequest, - ): Promise> => { + async flag(request: FlagRequest): Promise> { const body = { entity_id: request?.entity_id, entity_type: request?.entity_type, @@ -281,22 +267,18 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/moderation/flag', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/moderation/flag', undefined, undefined, body); decoders.FlagResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryModerationLogs = async ( + async queryModerationLogs( request?: QueryModerationLogsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, next: request?.next, @@ -307,18 +289,16 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/moderation/logs', undefined, undefined, body); decoders.QueryModerationLogsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - mute = async ( - request: MuteRequest, - ): Promise> => { + async mute(request: MuteRequest): Promise> { const body = { target_ids: request?.target_ids, timeout: request?.timeout, @@ -326,22 +306,18 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/moderation/mute', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/moderation/mute', undefined, undefined, body); decoders.MuteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryReviewQueue = async ( + async queryReviewQueue( request?: QueryReviewQueueRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, lock_count: request?.lock_count, @@ -356,34 +332,34 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/moderation/review_queue', undefined, undefined, body); decoders.QueryReviewQueueResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getReviewQueueItem = async (request: { + async getReviewQueueItem(request: { id: string; - }): Promise> => { + }): Promise> { const pathParams = { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/moderation/review_queue/{id}', pathParams, undefined); decoders.GetReviewQueueItemResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - submitAction = async ( + async submitAction( request: SubmitActionRequest, - ): Promise> => { + ): Promise> { const body = { action_type: request?.action_type, item_id: request?.item_id, @@ -399,22 +375,22 @@ export class ModerationApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/moderation/submit_action', undefined, undefined, body); decoders.SubmitActionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unban = async ( + async unban( request: UnbanRequest & { target_user_id: string; channel_cid?: string; created_by?: string; }, - ): Promise> => { + ): Promise> { const queryParams = { target_user_id: request?.target_user_id, channel_cid: request?.channel_cid, @@ -425,38 +401,30 @@ export class ModerationApi extends BaseApi { unbanned_by: request?.unbanned_by, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/moderation/unban', - undefined, - queryParams, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/moderation/unban', undefined, queryParams, body); decoders.UnbanResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unmute = async ( + async unmute( request: UnmuteRequest, - ): Promise> => { + ): Promise> { const body = { target_ids: request?.target_ids, user_id: request?.user_id, user: request?.user, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/moderation/unmute', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/moderation/unmute', undefined, undefined, body); decoders.UnmuteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } } diff --git a/src/gen/video/CallApi.ts b/src/gen/video/CallApi.ts index 0a7960e..d1f3943 100644 --- a/src/gen/video/CallApi.ts +++ b/src/gen/video/CallApi.ts @@ -1,5 +1,4 @@ -import { VideoApi } from './VideoApi'; -import { StreamResponse } from '../../types'; +import { StreamResponse, VideoApi } from '../../gen-imports'; import { BlockUserRequest, BlockUserResponse, @@ -68,305 +67,295 @@ export class CallApi { public readonly id: string, ) {} - get = (request?: { + get(request?: { members_limit?: number; ring?: boolean; notify?: boolean; video?: boolean; - }): Promise> => { + }): Promise> { return this.videoApi.getCall({ id: this.id, type: this.type, ...request }); - }; + } - update = ( + update( request?: UpdateCallRequest, - ): Promise> => { + ): Promise> { return this.videoApi.updateCall({ id: this.id, type: this.type, ...request, }); - }; + } - getOrCreate = ( + getOrCreate( request?: GetOrCreateCallRequest, - ): Promise> => { + ): Promise> { return this.videoApi.getOrCreateCall({ id: this.id, type: this.type, ...request, }); - }; + } - blockUser = ( + blockUser( request: BlockUserRequest, - ): Promise> => { + ): Promise> { return this.videoApi.blockUser({ id: this.id, type: this.type, ...request, }); - }; + } - delete = ( + delete( request?: DeleteCallRequest, - ): Promise> => { + ): Promise> { return this.videoApi.deleteCall({ id: this.id, type: this.type, ...request, }); - }; + } - sendCallEvent = ( + sendCallEvent( request?: SendCallEventRequest, - ): Promise> => { + ): Promise> { return this.videoApi.sendCallEvent({ id: this.id, type: this.type, ...request, }); - }; + } - collectUserFeedback = ( + collectUserFeedback( request: CollectUserFeedbackRequest, - ): Promise> => { + ): Promise> { return this.videoApi.collectUserFeedback({ id: this.id, type: this.type, ...request, }); - }; + } - goLive = ( - request?: GoLiveRequest, - ): Promise> => { + goLive(request?: GoLiveRequest): Promise> { return this.videoApi.goLive({ id: this.id, type: this.type, ...request }); - }; + } - end = (): Promise> => { + end(): Promise> { return this.videoApi.endCall({ id: this.id, type: this.type }); - }; + } - updateCallMembers = ( + updateCallMembers( request?: UpdateCallMembersRequest, - ): Promise> => { + ): Promise> { return this.videoApi.updateCallMembers({ id: this.id, type: this.type, ...request, }); - }; + } - muteUsers = ( + muteUsers( request?: MuteUsersRequest, - ): Promise> => { + ): Promise> { return this.videoApi.muteUsers({ id: this.id, type: this.type, ...request, }); - }; + } - queryCallParticipants = ( + queryCallParticipants( request?: QueryCallParticipantsRequest & { limit?: number }, - ): Promise> => { + ): Promise> { return this.videoApi.queryCallParticipants({ id: this.id, type: this.type, ...request, }); - }; + } - videoPin = (request: PinRequest): Promise> => { + videoPin(request: PinRequest): Promise> { return this.videoApi.videoPin({ id: this.id, type: this.type, ...request }); - }; + } - listRecordings = (): Promise> => { + listRecordings(): Promise> { return this.videoApi.listRecordings({ id: this.id, type: this.type }); - }; + } - getCallReport = (request?: { + getCallReport(request?: { session_id?: string; - }): Promise> => { + }): Promise> { return this.videoApi.getCallReport({ id: this.id, type: this.type, ...request, }); - }; + } - startRTMPBroadcasts = ( + startRTMPBroadcasts( request: StartRTMPBroadcastsRequest, - ): Promise> => { + ): Promise> { return this.videoApi.startRTMPBroadcasts({ id: this.id, type: this.type, ...request, }); - }; + } - stopAllRTMPBroadcasts = (): Promise< + stopAllRTMPBroadcasts(): Promise< StreamResponse - > => { + > { return this.videoApi.stopAllRTMPBroadcasts({ id: this.id, type: this.type, }); - }; + } - stopRTMPBroadcast = ( + stopRTMPBroadcast( request: StopRTMPBroadcastsRequest & { name: string }, - ): Promise> => { + ): Promise> { return this.videoApi.stopRTMPBroadcast({ id: this.id, type: this.type, ...request, }); - }; + } - startHLSBroadcasting = (): Promise< + startHLSBroadcasting(): Promise< StreamResponse - > => { + > { return this.videoApi.startHLSBroadcasting({ id: this.id, type: this.type }); - }; + } - startClosedCaptions = ( + startClosedCaptions( request?: StartClosedCaptionsRequest, - ): Promise> => { + ): Promise> { return this.videoApi.startClosedCaptions({ id: this.id, type: this.type, ...request, }); - }; + } - startFrameRecording = ( + startFrameRecording( request?: StartFrameRecordingRequest, - ): Promise> => { + ): Promise> { return this.videoApi.startFrameRecording({ id: this.id, type: this.type, ...request, }); - }; + } - startRecording = ( + startRecording( request?: StartRecordingRequest, - ): Promise> => { + ): Promise> { return this.videoApi.startRecording({ id: this.id, type: this.type, ...request, }); - }; + } - startTranscription = ( + startTranscription( request?: StartTranscriptionRequest, - ): Promise> => { + ): Promise> { return this.videoApi.startTranscription({ id: this.id, type: this.type, ...request, }); - }; + } - stopHLSBroadcasting = (): Promise< - StreamResponse - > => { + stopHLSBroadcasting(): Promise> { return this.videoApi.stopHLSBroadcasting({ id: this.id, type: this.type }); - }; + } - stopClosedCaptions = ( + stopClosedCaptions( request?: StopClosedCaptionsRequest, - ): Promise> => { + ): Promise> { return this.videoApi.stopClosedCaptions({ id: this.id, type: this.type, ...request, }); - }; + } - stopFrameRecording = (): Promise< - StreamResponse - > => { + stopFrameRecording(): Promise> { return this.videoApi.stopFrameRecording({ id: this.id, type: this.type }); - }; + } - stopLive = ( + stopLive( request?: StopLiveRequest, - ): Promise> => { + ): Promise> { return this.videoApi.stopLive({ id: this.id, type: this.type, ...request }); - }; + } - stopRecording = (): Promise> => { + stopRecording(): Promise> { return this.videoApi.stopRecording({ id: this.id, type: this.type }); - }; + } - stopTranscription = ( + stopTranscription( request?: StopTranscriptionRequest, - ): Promise> => { + ): Promise> { return this.videoApi.stopTranscription({ id: this.id, type: this.type, ...request, }); - }; + } - listTranscriptions = (): Promise< - StreamResponse - > => { + listTranscriptions(): Promise> { return this.videoApi.listTranscriptions({ id: this.id, type: this.type }); - }; + } - unblockUser = ( + unblockUser( request: UnblockUserRequest, - ): Promise> => { + ): Promise> { return this.videoApi.unblockUser({ id: this.id, type: this.type, ...request, }); - }; + } - videoUnpin = ( - request: UnpinRequest, - ): Promise> => { + videoUnpin(request: UnpinRequest): Promise> { return this.videoApi.videoUnpin({ id: this.id, type: this.type, ...request, }); - }; + } - updateUserPermissions = ( + updateUserPermissions( request: UpdateUserPermissionsRequest, - ): Promise> => { + ): Promise> { return this.videoApi.updateUserPermissions({ id: this.id, type: this.type, ...request, }); - }; + } - deleteRecording = (request: { + deleteRecording(request: { session: string; filename: string; - }): Promise> => { + }): Promise> { return this.videoApi.deleteRecording({ id: this.id, type: this.type, ...request, }); - }; + } - deleteTranscription = (request: { + deleteTranscription(request: { session: string; filename: string; - }): Promise> => { + }): Promise> { return this.videoApi.deleteTranscription({ id: this.id, type: this.type, ...request, }); - }; + } } diff --git a/src/gen/video/VideoApi.ts b/src/gen/video/VideoApi.ts index 1beca82..c27e2a4 100644 --- a/src/gen/video/VideoApi.ts +++ b/src/gen/video/VideoApi.ts @@ -1,5 +1,4 @@ -import { BaseApi } from '../../BaseApi'; -import { StreamResponse } from '../../types'; +import { ApiClient, StreamResponse } from '../../gen-imports'; import { BlockUserRequest, BlockUserResponse, @@ -78,12 +77,14 @@ import { UpdateUserPermissionsRequest, UpdateUserPermissionsResponse, } from '../models'; -import { decoders } from '../model-decoders'; +import { decoders } from '../model-decoders/decoders'; -export class VideoApi extends BaseApi { - queryUserFeedback = async ( +export class VideoApi { + constructor(public readonly apiClient: ApiClient) {} + + async queryUserFeedback( request?: QueryUserFeedbackRequest & { full?: boolean }, - ): Promise> => { + ): Promise> { const queryParams = { full: request?.full, }; @@ -95,18 +96,18 @@ export class VideoApi extends BaseApi { filter_conditions: request?.filter_conditions, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/video/call/feedback', undefined, queryParams, body); decoders.QueryUserFeedbackResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryCallMembers = async ( + async queryCallMembers( request: QueryCallMembersRequest, - ): Promise> => { + ): Promise> { const body = { id: request?.id, type: request?.type, @@ -117,18 +118,18 @@ export class VideoApi extends BaseApi { filter_conditions: request?.filter_conditions, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/video/call/members', undefined, undefined, body); decoders.QueryCallMembersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryCallStats = async ( + async queryCallStats( request?: QueryCallStatsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, next: request?.next, @@ -137,23 +138,23 @@ export class VideoApi extends BaseApi { filter_conditions: request?.filter_conditions, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/video/call/stats', undefined, undefined, body); decoders.QueryCallStatsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getCall = async (request: { + async getCall(request: { type: string; id: string; members_limit?: number; ring?: boolean; notify?: boolean; video?: boolean; - }): Promise> => { + }): Promise> { const queryParams = { members_limit: request?.members_limit, ring: request?.ring, @@ -165,21 +166,18 @@ export class VideoApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest>( - 'GET', - '/api/v2/video/call/{type}/{id}', - pathParams, - queryParams, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/video/call/{type}/{id}', pathParams, queryParams); decoders.GetCallResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateCall = async ( + async updateCall( request: UpdateCallRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -190,22 +188,18 @@ export class VideoApi extends BaseApi { settings_override: request?.settings_override, }; - const response = await this.sendRequest>( - 'PATCH', - '/api/v2/video/call/{type}/{id}', - pathParams, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('PATCH', '/api/v2/video/call/{type}/{id}', pathParams, undefined, body); decoders.UpdateCallResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getOrCreateCall = async ( + async getOrCreateCall( request: GetOrCreateCallRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -218,18 +212,18 @@ export class VideoApi extends BaseApi { data: request?.data, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/video/call/{type}/{id}', pathParams, undefined, body); decoders.GetOrCreateCallResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - blockUser = async ( + async blockUser( request: BlockUserRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -238,7 +232,9 @@ export class VideoApi extends BaseApi { user_id: request?.user_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/block', pathParams, @@ -249,11 +245,11 @@ export class VideoApi extends BaseApi { decoders.BlockUserResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteCall = async ( + async deleteCall( request: DeleteCallRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -262,7 +258,9 @@ export class VideoApi extends BaseApi { hard: request?.hard, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/delete', pathParams, @@ -273,11 +271,11 @@ export class VideoApi extends BaseApi { decoders.DeleteCallResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - sendCallEvent = async ( + async sendCallEvent( request: SendCallEventRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -288,7 +286,7 @@ export class VideoApi extends BaseApi { user: request?.user, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -301,11 +299,11 @@ export class VideoApi extends BaseApi { decoders.SendCallEventResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - collectUserFeedback = async ( + async collectUserFeedback( request: CollectUserFeedbackRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -319,7 +317,7 @@ export class VideoApi extends BaseApi { custom: request?.custom, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -332,11 +330,11 @@ export class VideoApi extends BaseApi { decoders.CollectUserFeedbackResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - goLive = async ( + async goLive( request: GoLiveRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -350,7 +348,9 @@ export class VideoApi extends BaseApi { transcription_storage_name: request?.transcription_storage_name, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/go_live', pathParams, @@ -361,18 +361,20 @@ export class VideoApi extends BaseApi { decoders.GoLiveResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - endCall = async (request: { + async endCall(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/mark_ended', pathParams, @@ -382,11 +384,11 @@ export class VideoApi extends BaseApi { decoders.EndCallResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateCallMembers = async ( + async updateCallMembers( request: UpdateCallMembersRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -396,7 +398,7 @@ export class VideoApi extends BaseApi { update_members: request?.update_members, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -409,11 +411,11 @@ export class VideoApi extends BaseApi { decoders.UpdateCallMembersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - muteUsers = async ( + async muteUsers( request: MuteUsersRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -429,7 +431,9 @@ export class VideoApi extends BaseApi { muted_by: request?.muted_by, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/mute_users', pathParams, @@ -440,15 +444,15 @@ export class VideoApi extends BaseApi { decoders.MuteUsersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryCallParticipants = async ( + async queryCallParticipants( request: QueryCallParticipantsRequest & { id: string; type: string; limit?: number; }, - ): Promise> => { + ): Promise> { const queryParams = { limit: request?.limit, }; @@ -460,7 +464,7 @@ export class VideoApi extends BaseApi { filter_conditions: request?.filter_conditions, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -473,11 +477,11 @@ export class VideoApi extends BaseApi { decoders.QueryCallParticipantsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - videoPin = async ( + async videoPin( request: PinRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -487,7 +491,9 @@ export class VideoApi extends BaseApi { user_id: request?.user_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/pin', pathParams, @@ -498,18 +504,18 @@ export class VideoApi extends BaseApi { decoders.PinResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listRecordings = async (request: { + async listRecordings(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'GET', @@ -521,13 +527,13 @@ export class VideoApi extends BaseApi { decoders.ListRecordingsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getCallReport = async (request: { + async getCallReport(request: { type: string; id: string; session_id?: string; - }): Promise> => { + }): Promise> { const queryParams = { session_id: request?.session_id, }; @@ -536,18 +542,18 @@ export class VideoApi extends BaseApi { id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/video/call/{type}/{id}/report', pathParams, queryParams); decoders.GetCallReportResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startRTMPBroadcasts = async ( + async startRTMPBroadcasts( request: StartRTMPBroadcastsRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -556,7 +562,7 @@ export class VideoApi extends BaseApi { broadcasts: request?.broadcasts, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -569,18 +575,18 @@ export class VideoApi extends BaseApi { decoders.StartRTMPBroadcastsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopAllRTMPBroadcasts = async (request: { + async stopAllRTMPBroadcasts(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -592,15 +598,15 @@ export class VideoApi extends BaseApi { decoders.StopAllRTMPBroadcastsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopRTMPBroadcast = async ( + async stopRTMPBroadcast( request: StopRTMPBroadcastsRequest & { type: string; id: string; name: string; }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -608,7 +614,7 @@ export class VideoApi extends BaseApi { }; const body = {}; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -621,18 +627,18 @@ export class VideoApi extends BaseApi { decoders.StopRTMPBroadcastsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startHLSBroadcasting = async (request: { + async startHLSBroadcasting(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -644,11 +650,11 @@ export class VideoApi extends BaseApi { decoders.StartHLSBroadcastingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startClosedCaptions = async ( + async startClosedCaptions( request: StartClosedCaptionsRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -659,7 +665,7 @@ export class VideoApi extends BaseApi { language: request?.language, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -672,11 +678,11 @@ export class VideoApi extends BaseApi { decoders.StartClosedCaptionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startFrameRecording = async ( + async startFrameRecording( request: StartFrameRecordingRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -685,7 +691,7 @@ export class VideoApi extends BaseApi { recording_external_storage: request?.recording_external_storage, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -698,11 +704,11 @@ export class VideoApi extends BaseApi { decoders.StartFrameRecordingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startRecording = async ( + async startRecording( request: StartRecordingRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -711,7 +717,7 @@ export class VideoApi extends BaseApi { recording_external_storage: request?.recording_external_storage, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -724,11 +730,11 @@ export class VideoApi extends BaseApi { decoders.StartRecordingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - startTranscription = async ( + async startTranscription( request: StartTranscriptionRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -739,7 +745,7 @@ export class VideoApi extends BaseApi { transcription_external_storage: request?.transcription_external_storage, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -752,18 +758,18 @@ export class VideoApi extends BaseApi { decoders.StartTranscriptionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopHLSBroadcasting = async (request: { + async stopHLSBroadcasting(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -775,11 +781,11 @@ export class VideoApi extends BaseApi { decoders.StopHLSBroadcastingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopClosedCaptions = async ( + async stopClosedCaptions( request: StopClosedCaptionsRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -788,7 +794,7 @@ export class VideoApi extends BaseApi { stop_transcription: request?.stop_transcription, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -801,18 +807,18 @@ export class VideoApi extends BaseApi { decoders.StopClosedCaptionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopFrameRecording = async (request: { + async stopFrameRecording(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -824,11 +830,11 @@ export class VideoApi extends BaseApi { decoders.StopFrameRecordingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopLive = async ( + async stopLive( request: StopLiveRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -841,7 +847,9 @@ export class VideoApi extends BaseApi { continue_transcription: request?.continue_transcription, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/stop_live', pathParams, @@ -852,18 +860,18 @@ export class VideoApi extends BaseApi { decoders.StopLiveResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopRecording = async (request: { + async stopRecording(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -875,11 +883,11 @@ export class VideoApi extends BaseApi { decoders.StopRecordingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - stopTranscription = async ( + async stopTranscription( request: StopTranscriptionRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -888,7 +896,7 @@ export class VideoApi extends BaseApi { stop_closed_captions: request?.stop_closed_captions, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -901,18 +909,18 @@ export class VideoApi extends BaseApi { decoders.StopTranscriptionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listTranscriptions = async (request: { + async listTranscriptions(request: { type: string; id: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'GET', @@ -924,11 +932,11 @@ export class VideoApi extends BaseApi { decoders.ListTranscriptionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - unblockUser = async ( + async unblockUser( request: UnblockUserRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -937,7 +945,7 @@ export class VideoApi extends BaseApi { user_id: request?.user_id, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -950,11 +958,11 @@ export class VideoApi extends BaseApi { decoders.UnblockUserResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - videoUnpin = async ( + async videoUnpin( request: UnpinRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -964,7 +972,9 @@ export class VideoApi extends BaseApi { user_id: request?.user_id, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'POST', '/api/v2/video/call/{type}/{id}/unpin', pathParams, @@ -975,11 +985,11 @@ export class VideoApi extends BaseApi { decoders.UnpinResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateUserPermissions = async ( + async updateUserPermissions( request: UpdateUserPermissionsRequest & { type: string; id: string }, - ): Promise> => { + ): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -990,7 +1000,7 @@ export class VideoApi extends BaseApi { revoke_permissions: request?.revoke_permissions, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'POST', @@ -1003,14 +1013,14 @@ export class VideoApi extends BaseApi { decoders.UpdateUserPermissionsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteRecording = async (request: { + async deleteRecording(request: { type: string; id: string; session: string; filename: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -1018,7 +1028,7 @@ export class VideoApi extends BaseApi { filename: request?.filename, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'DELETE', @@ -1030,14 +1040,14 @@ export class VideoApi extends BaseApi { decoders.DeleteRecordingResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteTranscription = async (request: { + async deleteTranscription(request: { type: string; id: string; session: string; filename: string; - }): Promise> => { + }): Promise> { const pathParams = { type: request?.type, id: request?.id, @@ -1045,7 +1055,7 @@ export class VideoApi extends BaseApi { filename: request?.filename, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >( 'DELETE', @@ -1057,11 +1067,11 @@ export class VideoApi extends BaseApi { decoders.DeleteTranscriptionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryCalls = async ( + async queryCalls( request?: QueryCallsRequest, - ): Promise> => { + ): Promise> { const body = { limit: request?.limit, next: request?.next, @@ -1070,32 +1080,28 @@ export class VideoApi extends BaseApi { filter_conditions: request?.filter_conditions, }; - const response = await this.sendRequest>( - 'POST', - '/api/v2/video/calls', - undefined, - undefined, - body, - ); + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/video/calls', undefined, undefined, body); decoders.QueryCallsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - listCallTypes = async (): Promise> => { - const response = await this.sendRequest< + async listCallTypes(): Promise> { + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/video/calltypes', undefined, undefined); decoders.ListCallTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - createCallType = async ( + async createCallType( request: CreateCallTypeRequest, - ): Promise> => { + ): Promise> { const body = { name: request?.name, external_storage: request?.external_storage, @@ -1104,23 +1110,23 @@ export class VideoApi extends BaseApi { settings: request?.settings, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/video/calltypes', undefined, undefined, body); decoders.CreateCallTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - deleteCallType = async (request: { + async deleteCallType(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest>( + const response = await this.apiClient.sendRequest>( 'DELETE', '/api/v2/video/calltypes/{name}', pathParams, @@ -1130,27 +1136,27 @@ export class VideoApi extends BaseApi { decoders.Response?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getCallType = async (request: { + async getCallType(request: { name: string; - }): Promise> => { + }): Promise> { const pathParams = { name: request?.name, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('GET', '/api/v2/video/calltypes/{name}', pathParams, undefined); decoders.GetCallTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - updateCallType = async ( + async updateCallType( request: UpdateCallTypeRequest & { name: string }, - ): Promise> => { + ): Promise> { const pathParams = { name: request?.name, }; @@ -1161,43 +1167,40 @@ export class VideoApi extends BaseApi { settings: request?.settings, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('PUT', '/api/v2/video/calltypes/{name}', pathParams, undefined, body); decoders.UpdateCallTypeResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - getEdges = async (): Promise> => { - const response = await this.sendRequest>( - 'GET', - '/api/v2/video/edges', - undefined, - undefined, - ); + async getEdges(): Promise> { + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/video/edges', undefined, undefined); decoders.GetEdgesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } - queryAggregateCallStats = async ( + async queryAggregateCallStats( request?: QueryAggregateCallStatsRequest, - ): Promise> => { + ): Promise> { const body = { from: request?.from, to: request?.to, report_types: request?.report_types, }; - const response = await this.sendRequest< + const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/video/stats', undefined, undefined, body); decoders.QueryAggregateCallStatsResponse?.(response.body); return { ...response.body, metadata: response.metadata }; - }; + } } From 6685849679e2d1e1d828956b2057515ef480fa55 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Fri, 16 May 2025 11:15:33 +0200 Subject: [PATCH 02/39] Add feeds-api --- generate-openapi.sh | 4 +- index.ts | 3 +- package.json | 2 +- src/ApiClient.ts | 2 +- src/StreamClient.ts | 15 +- src/StreamFeed.ts | 3 + src/StreamFeedsClient.ts | 8 + src/gen-feeds/feeds/FeedApi.ts | 128 ++ src/gen-feeds/feeds/FeedsApi.ts | 1086 ++++++++++++++ src/gen-feeds/model-decoders/decoders.ts | 747 ++++++++++ src/gen-feeds/models/index.ts | 1673 ++++++++++++++++++++++ src/gen-imports.ts | 1 + src/gen/chat/ChannelApi.ts | 1 - src/gen/chat/ChatApi.ts | 3 +- src/gen/common/CommonApi.ts | 1 - src/gen/common/_CommonApiInterface.ts | 256 ---- src/gen/models/index.ts | 305 +--- src/gen/video/VideoApi.ts | 1 - 18 files changed, 3678 insertions(+), 561 deletions(-) create mode 100644 src/StreamFeed.ts create mode 100644 src/StreamFeedsClient.ts create mode 100644 src/gen-feeds/feeds/FeedApi.ts create mode 100644 src/gen-feeds/feeds/FeedsApi.ts create mode 100644 src/gen-feeds/model-decoders/decoders.ts create mode 100644 src/gen-feeds/models/index.ts delete mode 100644 src/gen/common/_CommonApiInterface.ts diff --git a/generate-openapi.sh b/generate-openapi.sh index e790a11..5a62eca 100755 --- a/generate-openapi.sh +++ b/generate-openapi.sh @@ -1,11 +1,11 @@ #!/bin/bash set -euo pipefail -OUTPUT_DIR="../stream-node/src/gen" +OUTPUT_DIR="../stream-node/src/gen-feeds" CHAT_DIR="../chat" rm -rf $OUTPUT_DIR -( cd $CHAT_DIR ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language ts --spec ./releases/v2/serverside-api.yaml --output $OUTPUT_DIR ) +( cd $CHAT_DIR ; make openapi ; go run ./cmd/chat-manager openapi generate-client --language ts --spec ./releases/v2/feeds-serverside-api.yaml --output $OUTPUT_DIR ) yarn lint:gen \ No newline at end of file diff --git a/index.ts b/index.ts index 9950667..9cc497c 100644 --- a/index.ts +++ b/index.ts @@ -1,6 +1,7 @@ -export * from './src/gen/models'; export * from './src/StreamClient'; export * from './src/StreamCall'; export * from './src/StreamChatClient'; export * from './src/StreamChannel'; export * from './src/StreamVideoClient'; +export * from './src/gen-feeds/models'; +export * from './src/gen/models'; diff --git a/package.json b/package.json index 01eae7d..d482981 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "lint": "eslint **/*.ts", "lint:fix": "eslint --fix **/*.ts", "prettier:fix": "prettier . --write", - "lint:gen": "eslint --fix src/gen/**/*ts && prettier src/gen/**/*.ts --write" + "lint:gen": "eslint --fix src/gen-feeds/**/*ts && prettier src/gen-feeds/**/*.ts --write" }, "lint-staged": { "**/*": [ diff --git a/src/ApiClient.ts b/src/ApiClient.ts index 7a23333..d7bef2a 100644 --- a/src/ApiClient.ts +++ b/src/ApiClient.ts @@ -1,6 +1,6 @@ import { v4 as uuidv4 } from 'uuid'; import { ApiConfig, RequestMetadata, StreamError } from './types'; -import { APIError } from './gen/models'; +import { APIError } from './gen-feeds/models'; import { getRateLimitFromResponseHeader } from './utils/rate-limit'; export class ApiClient { diff --git a/src/StreamClient.ts b/src/StreamClient.ts index c82ba2e..c76e199 100644 --- a/src/StreamClient.ts +++ b/src/StreamClient.ts @@ -4,9 +4,11 @@ import { StreamVideoClient } from './StreamVideoClient'; import crypto from 'crypto'; import { StreamChatClient } from './StreamChatClient'; import { CallTokenPayload, UserTokenPayload } from './types'; -import { QueryBannedUsersPayload, UserRequest } from './gen/models'; +import { QueryBannedUsersPayload } from './gen/models'; import { StreamModerationClient } from './StreamModerationClient'; import { ApiClient } from './ApiClient'; +import { UserRequest } from './gen-feeds/models'; +import { StreamFeedsClient } from './StreamFeedsClient'; export interface StreamClientOptions { timeout?: number; @@ -20,6 +22,7 @@ export class StreamClient extends CommonApi { public readonly video: StreamVideoClient; public readonly chat: StreamChatClient; public readonly moderation: StreamModerationClient; + public readonly feeds: StreamFeedsClient; public readonly options: StreamClientOptions = {}; private static readonly DEFAULT_TIMEOUT = 3000; @@ -39,6 +42,7 @@ export class StreamClient extends CommonApi { const timeout = config?.timeout ?? StreamClient.DEFAULT_TIMEOUT; const chatBaseUrl = config?.basePath ?? 'https://chat.stream-io-api.com'; const videoBaseUrl = config?.basePath ?? 'https://video.stream-io-api.com'; + const feedsBaseUrl = config?.basePath ?? 'https://feeds.stream-io-api.com'; const chatApiClient = new ApiClient({ apiKey, token, @@ -55,6 +59,14 @@ export class StreamClient extends CommonApi { agent: config?.agent as RequestInit['dispatcher'], }); + const feedsApiClient = new ApiClient({ + apiKey, + token, + baseUrl: feedsBaseUrl, + timeout, + agent: config?.agent as RequestInit['dispatcher'], + }); + super(chatApiClient); this.video = new StreamVideoClient({ @@ -63,6 +75,7 @@ export class StreamClient extends CommonApi { }); this.chat = new StreamChatClient(this.apiClient); this.moderation = new StreamModerationClient(chatApiClient); + this.feeds = new StreamFeedsClient(feedsApiClient); } upsertUsers = (users: UserRequest[]) => { diff --git a/src/StreamFeed.ts b/src/StreamFeed.ts new file mode 100644 index 0000000..96144bb --- /dev/null +++ b/src/StreamFeed.ts @@ -0,0 +1,3 @@ +import { FeedApi } from './gen-feeds/feeds/FeedApi'; + +export class StreamFeed extends FeedApi {} diff --git a/src/StreamFeedsClient.ts b/src/StreamFeedsClient.ts new file mode 100644 index 0000000..24d8238 --- /dev/null +++ b/src/StreamFeedsClient.ts @@ -0,0 +1,8 @@ +import { FeedsApi } from './gen-feeds/feeds/FeedsApi'; +import { StreamFeed } from './StreamFeed'; + +export class StreamFeedsClient extends FeedsApi { + feed = (group: string, id: string) => { + return new StreamFeed(this, group, id); + }; +} diff --git a/src/gen-feeds/feeds/FeedApi.ts b/src/gen-feeds/feeds/FeedApi.ts new file mode 100644 index 0000000..0b01533 --- /dev/null +++ b/src/gen-feeds/feeds/FeedApi.ts @@ -0,0 +1,128 @@ +import { StreamResponse, FeedsApi } from '../../gen-imports'; +import { + AcceptFeedMemberRequest, + AcceptFeedMemberResponse, + DeleteFeedResponse, + GetOrCreateFeedRequest, + GetOrCreateFeedResponse, + MarkActivityRequest, + PinActivityRequest, + PinActivityResponse, + QueryFeedMembersRequest, + QueryFeedMembersResponse, + RejectFeedMemberRequest, + RejectFeedMemberResponse, + Response, + UnpinActivityResponse, + UpdateFeedMembersRequest, + UpdateFeedRequest, + UpdateFeedResponse, +} from '../models'; + +export class FeedApi { + constructor( + protected feedsApi: FeedsApi, + public readonly group: string, + public readonly id: string, + ) {} + + delete(request?: { + hard_delete?: boolean; + }): Promise> { + return this.feedsApi.deleteFeed({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + update( + request?: UpdateFeedRequest, + ): Promise> { + return this.feedsApi.updateFeed({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + getOrCreate( + request?: GetOrCreateFeedRequest, + ): Promise> { + return this.feedsApi.getOrCreateFeed({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + markActivity( + request?: MarkActivityRequest, + ): Promise> { + return this.feedsApi.markActivity({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + unpinActivity(request: { + activity_id: string; + }): Promise> { + return this.feedsApi.unpinActivity({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + pinActivity( + request: PinActivityRequest & { activity_id: string }, + ): Promise> { + return this.feedsApi.pinActivity({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + updateFeedMembers( + request: UpdateFeedMembersRequest, + ): Promise> { + return this.feedsApi.updateFeedMembers({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + acceptFeedMember( + request: AcceptFeedMemberRequest, + ): Promise> { + return this.feedsApi.acceptFeedMember({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + queryFeedMembers( + request?: QueryFeedMembersRequest, + ): Promise> { + return this.feedsApi.queryFeedMembers({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + rejectFeedMember( + request: RejectFeedMemberRequest, + ): Promise> { + return this.feedsApi.rejectFeedMember({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } +} diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts new file mode 100644 index 0000000..fb63536 --- /dev/null +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -0,0 +1,1086 @@ +import { ApiClient, StreamResponse } from '../../gen-imports'; +import { + AcceptFeedMemberRequest, + AcceptFeedMemberResponse, + AcceptFollowRequest, + AcceptFollowResponse, + AddActivityRequest, + AddActivityResponse, + AddBookmarkRequest, + AddBookmarkResponse, + AddCommentRequest, + AddCommentResponse, + AddReactionRequest, + AddReactionResponse, + CreateActivitiesBatchRequest, + CreateActivitiesBatchResponse, + CreateFeedViewRequest, + CreateFeedViewResponse, + CreateManyFeedsRequest, + CreateManyFeedsResponse, + DeleteActivityReactionResponse, + DeleteActivityResponse, + DeleteBookmarkResponse, + DeleteFeedGroupResponse, + DeleteFeedResponse, + DeleteFeedUserDataResponse, + DeleteFeedViewResponse, + ExportFeedUserDataResponse, + FollowManyRequest, + FollowManyResponse, + FollowRequest, + FollowResponse, + FollowSuggestionsResponse, + GetActivityResponse, + GetOrCreateFeedRequest, + GetOrCreateFeedResponse, + MarkActivityRequest, + PinActivityRequest, + PinActivityResponse, + QueryActivitiesRequest, + QueryActivitiesResponse, + QueryCommentsRequest, + QueryCommentsResponse, + QueryFeedMembersRequest, + QueryFeedMembersResponse, + QueryFeedsResponse, + QueryFollowsRequest, + QueryFollowsResponse, + RejectFeedMemberRequest, + RejectFeedMemberResponse, + RejectFollowRequest, + RejectFollowResponse, + RemoveActivitiesRequest, + RemoveActivitiesResponse, + RemoveCommentResponse, + Response, + UnfollowManyRequest, + UnfollowManyResponse, + UnfollowResponse, + UnpinActivityResponse, + UpdateActivityPartialRequest, + UpdateActivityPartialResponse, + UpdateBookmarkRequest, + UpdateBookmarkResponse, + UpdateCommentRequest, + UpdateCommentResponse, + UpdateFeedMembersRequest, + UpdateFeedRequest, + UpdateFeedResponse, + UpdateFeedViewRequest, + UpdateFeedViewResponse, + UpdateFollowRequest, + UpdateFollowResponse, + UpsertFeedGroupRequest, + UpsertFeedGroupResponse, +} from '../models'; +import { decoders } from '../model-decoders/decoders'; + +export class FeedsApi { + constructor(public readonly apiClient: ApiClient) {} + + async addActivity( + request: AddActivityRequest, + ): Promise> { + const body = { + type: request?.type, + fids: request?.fids, + expires_at: request?.expires_at, + id: request?.id, + parent_id: request?.parent_id, + text: request?.text, + user_id: request?.user_id, + visibility: request?.visibility, + attachments: request?.attachments, + filter_tags: request?.filter_tags, + interest_tags: request?.interest_tags, + mentioned_user_ids: request?.mentioned_user_ids, + custom: request?.custom, + location: request?.location, + search_data: request?.search_data, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/activities', undefined, undefined, body); + + decoders.AddActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async upsertActivities( + request: CreateActivitiesBatchRequest, + ): Promise> { + const body = { + activities: request?.activities, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/activities/batch', undefined, undefined, body); + + decoders.CreateActivitiesBatchResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryActivities( + request?: QueryActivitiesRequest, + ): Promise> { + const body = { + comment_limit: request?.comment_limit, + comment_sort: request?.comment_sort, + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/activities/query', undefined, undefined, body); + + decoders.QueryActivitiesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async removeActivities( + request: RemoveActivitiesRequest, + ): Promise> { + const body = { + activity_ids: request?.activity_ids, + hard_delete: request?.hard_delete, + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/activities/remove', undefined, undefined, body); + + decoders.RemoveActivitiesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteActivity(request: { + activity_id: string; + hard_delete?: boolean; + }): Promise> { + const queryParams = { + hard_delete: request?.hard_delete, + }; + const pathParams = { + activity_id: request?.activity_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('DELETE', '/feeds/v3/activities/{activity_id}', pathParams, queryParams); + + decoders.DeleteActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getActivity(request: { + activity_id: string; + }): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/feeds/v3/activities/{activity_id}', pathParams, undefined); + + decoders.GetActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateActivityPartial( + request: UpdateActivityPartialRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + user_id: request?.user_id, + unset: request?.unset, + set: request?.set, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/feeds/v3/activities/{activity_id}', + pathParams, + undefined, + body, + ); + + decoders.UpdateActivityPartialResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteBookmark(request: { + activity_id: string; + }): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/activities/{activity_id}/bookmarks', + pathParams, + undefined, + ); + + decoders.DeleteBookmarkResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateBookmark( + request: UpdateBookmarkRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + feed_id: request?.feed_id, + feed_type: request?.feed_type, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/feeds/v3/activities/{activity_id}/bookmarks', + pathParams, + undefined, + body, + ); + + decoders.UpdateBookmarkResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async addBookmark( + request: AddBookmarkRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + folder_id: request?.folder_id, + custom: request?.custom, + new_folder: request?.new_folder, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/activities/{activity_id}/bookmarks', + pathParams, + undefined, + body, + ); + + decoders.AddBookmarkResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async addComment( + request: AddCommentRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + comment: request?.comment, + parent_id: request?.parent_id, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/activities/{activity_id}/comments', + pathParams, + undefined, + body, + ); + + decoders.AddCommentResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteActivityReaction(request: { + activity_id: string; + }): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/activities/{activity_id}/reactions', + pathParams, + undefined, + ); + + decoders.DeleteActivityReactionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async addReaction( + request: AddReactionRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + type: request?.type, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/activities/{activity_id}/reactions', + pathParams, + undefined, + body, + ); + + decoders.AddReactionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryComments( + request?: QueryCommentsRequest, + ): Promise> { + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + user_id: request?.user_id, + activity_ids: request?.activity_ids, + parent_ids: request?.parent_ids, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/comments/query', undefined, undefined, body); + + decoders.QueryCommentsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async removeComment(request: { + comment_id: string; + }): Promise> { + const pathParams = { + comment_id: request?.comment_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('DELETE', '/feeds/v3/comments/{comment_id}', pathParams, undefined); + + decoders.RemoveCommentResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateComment( + request: UpdateCommentRequest & { comment_id: string }, + ): Promise> { + const pathParams = { + comment_id: request?.comment_id, + }; + const body = { + comment: request?.comment, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PATCH', '/feeds/v3/comments/{comment_id}', pathParams, undefined, body); + + decoders.UpdateCommentResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createFeedGroup( + request: UpsertFeedGroupRequest, + ): Promise> { + const body = { + feed_group_id: request?.feed_group_id, + activity_analysers: request?.activity_analysers, + activity_selectors: request?.activity_selectors, + aggregation: request?.aggregation, + custom: request?.custom, + notification: request?.notification, + ranking: request?.ranking, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/feed_groups', undefined, undefined, body); + + decoders.UpsertFeedGroupResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteFeedGroup(request: { + feed_group_id: string; + hard_delete?: boolean; + }): Promise> { + const queryParams = { + hard_delete: request?.hard_delete, + }; + const pathParams = { + feed_group_id: request?.feed_group_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/feed_groups/{feed_group_id}', + pathParams, + queryParams, + ); + + decoders.DeleteFeedGroupResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteFeed(request: { + feed_group_id: string; + feed_id: string; + hard_delete?: boolean; + }): Promise> { + const queryParams = { + hard_delete: request?.hard_delete, + }; + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + pathParams, + queryParams, + ); + + decoders.DeleteFeedResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateFeed( + request: UpdateFeedRequest & { feed_group_id: string; feed_id: string }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + pathParams, + undefined, + body, + ); + + decoders.UpdateFeedResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getOrCreateFeed( + request: GetOrCreateFeedRequest & { + feed_group_id: string; + feed_id: string; + }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + comment_limit: request?.comment_limit, + comment_sort: request?.comment_sort, + limit: request?.limit, + next: request?.next, + prev: request?.prev, + user_id: request?.user_id, + view: request?.view, + watch: request?.watch, + data: request?.data, + external_ranking: request?.external_ranking, + filter: request?.filter, + follower_pagination: request?.follower_pagination, + following_pagination: request?.following_pagination, + member_pagination: request?.member_pagination, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + pathParams, + undefined, + body, + ); + + decoders.GetOrCreateFeedResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async markActivity( + request: MarkActivityRequest & { feed_group_id: string; feed_id: string }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + mark_all_read: request?.mark_all_read, + mark_all_seen: request?.mark_all_seen, + user_id: request?.user_id, + mark_read: request?.mark_read, + mark_watched: request?.mark_watched, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest>( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch', + pathParams, + undefined, + body, + ); + + decoders.Response?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async unpinActivity(request: { + feed_group_id: string; + feed_id: string; + activity_id: string; + }): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + activity_id: request?.activity_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', + pathParams, + undefined, + ); + + decoders.UnpinActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async pinActivity( + request: PinActivityRequest & { + feed_group_id: string; + feed_id: string; + activity_id: string; + }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + activity_id: request?.activity_id, + }; + const body = { + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', + pathParams, + undefined, + body, + ); + + decoders.PinActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateFeedMembers( + request: UpdateFeedMembersRequest & { + feed_group_id: string; + feed_id: string; + }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + operation: request?.operation, + limit: request?.limit, + next: request?.next, + prev: request?.prev, + members: request?.members, + }; + + const response = await this.apiClient.sendRequest>( + 'PATCH', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members', + pathParams, + undefined, + body, + ); + + decoders.Response?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async acceptFeedMember( + request: AcceptFeedMemberRequest & { + feed_id: string; + feed_group_id: string; + }, + ): Promise> { + const pathParams = { + feed_id: request?.feed_id, + feed_group_id: request?.feed_group_id, + }; + const body = { + user_id: request?.user_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept', + pathParams, + undefined, + body, + ); + + decoders.AcceptFeedMemberResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryFeedMembers( + request: QueryFeedMembersRequest & { + feed_group_id: string; + feed_id: string; + }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query', + pathParams, + undefined, + body, + ); + + decoders.QueryFeedMembersResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async rejectFeedMember( + request: RejectFeedMemberRequest & { + feed_group_id: string; + feed_id: string; + }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + user_id: request?.user_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject', + pathParams, + undefined, + body, + ); + + decoders.RejectFeedMemberResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createFeedView( + request: CreateFeedViewRequest & { feed_group_id: string }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + }; + const body = { + view_id: request?.view_id, + activity_selectors: request?.activity_selectors, + aggregation: request?.aggregation, + ranking: request?.ranking, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/feed_groups/{feed_group_id}/views', + pathParams, + undefined, + body, + ); + + decoders.CreateFeedViewResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteFeedView(request: { + view_id: string; + feed_group_id: string; + }): Promise> { + const pathParams = { + view_id: request?.view_id, + feed_group_id: request?.feed_group_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/feed_groups/{feed_group_id}/views/{view_id}', + pathParams, + undefined, + ); + + decoders.DeleteFeedViewResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateFeedView( + request: UpdateFeedViewRequest & { feed_group_id: string; view_id: string }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + view_id: request?.view_id, + }; + const body = { + activity_selectors: request?.activity_selectors, + aggregation: request?.aggregation, + ranking: request?.ranking, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PUT', + '/feeds/v3/feed_groups/{feed_group_id}/views/{view_id}', + pathParams, + undefined, + body, + ); + + decoders.UpdateFeedViewResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createManyFeeds( + request: CreateManyFeedsRequest, + ): Promise> { + const body = { + feeds: request?.feeds, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/feeds/batch', undefined, undefined, body); + + decoders.CreateManyFeedsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async feedsQueryFeeds(): Promise> { + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/feeds/v3/feeds/query', undefined, undefined); + + decoders.QueryFeedsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getFollowSuggestions(): Promise< + StreamResponse + > { + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/feeds/v3/follow_suggestions', undefined, undefined); + + decoders.FollowSuggestionsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateFollow( + request?: UpdateFollowRequest, + ): Promise> { + const body = { + push_preference: request?.push_preference, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PATCH', '/feeds/v3/follows', undefined, undefined, body); + + decoders.UpdateFollowResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async follow( + request: FollowRequest, + ): Promise> { + const body = { + source: request?.source, + target: request?.target, + push_preference: request?.push_preference, + request: request?.request, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/follows', undefined, undefined, body); + + decoders.FollowResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async acceptFollow( + request: AcceptFollowRequest, + ): Promise> { + const body = { + source_fid: request?.source_fid, + target_fid: request?.target_fid, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/follows/accept', undefined, undefined, body); + + decoders.AcceptFollowResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async followMany( + request: FollowManyRequest, + ): Promise> { + const body = { + follows: request?.follows, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/follows/batch', undefined, undefined, body); + + decoders.FollowManyResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryFollows( + request?: QueryFollowsRequest, + ): Promise> { + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + user_id: request?.user_id, + sort: request?.sort, + filter: request?.filter, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/follows/query', undefined, undefined, body); + + decoders.QueryFollowsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async rejectFollow( + request: RejectFollowRequest, + ): Promise> { + const body = { + source_fid: request?.source_fid, + target_fid: request?.target_fid, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/follows/reject', undefined, undefined, body); + + decoders.RejectFollowResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async unfollow(request: { + source: string; + target: string; + }): Promise> { + const pathParams = { + source: request?.source, + target: request?.target, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('DELETE', '/feeds/v3/follows/{source}/{target}', pathParams, undefined); + + decoders.UnfollowResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async unfollowMany( + request: UnfollowManyRequest, + ): Promise> { + const body = { + follows: request?.follows, + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/unfollow/batch', undefined, undefined, body); + + decoders.UnfollowManyResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteFeedUserData(request: { + user_id: string; + }): Promise> { + const pathParams = { + user_id: request?.user_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('DELETE', '/feeds/v3/users/{user_id}/delete', pathParams, undefined); + + decoders.DeleteFeedUserDataResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async exportFeedUserData(request: { + user_id: string; + }): Promise> { + const pathParams = { + user_id: request?.user_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/users/{user_id}/export', pathParams, undefined); + + decoders.ExportFeedUserDataResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } +} diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts new file mode 100644 index 0000000..7276949 --- /dev/null +++ b/src/gen-feeds/model-decoders/decoders.ts @@ -0,0 +1,747 @@ +type Decoder = (i: any) => any; + +type TypeMapping = Record; + +export const decoders: Record = {}; + +const decodeDatetimeType = (input: number | string) => + typeof input === 'number' + ? new Date(Math.floor(input / 1000000)) + : new Date(input); + +decoders.DatetimeType = decodeDatetimeType; + +const decode = (typeMappings: TypeMapping, input?: Record) => { + if (!input || Object.keys(typeMappings).length === 0) return input; + + Object.keys(typeMappings).forEach((key) => { + if (input[key] != null) { + if (typeMappings[key]) { + const decoder = decoders[typeMappings[key].type]; + if (decoder) { + if (typeMappings[key].isSingle) { + input[key] = decoder(input[key]); + } else { + Object.keys(input[key]).forEach((k) => { + input[key][k] = decoder(input[key][k]); + }); + } + } + } + } + }); + + return input; +}; + +decoders.AcceptFeedMemberResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feed_member: { type: 'FeedMember', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AcceptFollowResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follow: { type: 'Follow', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.Activity = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + edited_at: { type: 'DatetimeType', isSingle: true }, + + expires_at: { type: 'DatetimeType', isSingle: true }, + + comments: { type: 'Comment', isSingle: false }, + + latest_reactions: { type: 'ActivityReaction', isSingle: false }, + + mentioned_users: { type: 'UserResponse', isSingle: false }, + + own_bookmarks: { type: 'Bookmark', isSingle: false }, + + own_reactions: { type: 'ActivityReaction', isSingle: false }, + + current_feed: { type: 'Feed', isSingle: true }, + + parent: { type: 'BaseActivity', isSingle: true }, + + reaction_groups: { type: 'ReactionGroup', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'Activity', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityPin = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityReaction = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityReactionAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + reaction: { type: 'ActivityReaction', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityReactionDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + reaction: { type: 'ActivityReaction', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityRemovedFromFeedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'Activity', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivitySelectorConfig = (input?: Record) => { + const typeMappings: TypeMapping = { + cutoff_time: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ActivityUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'Activity', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AddActivityResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activity: { type: 'Activity', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AddBookmarkResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + bookmark: { type: 'Bookmark', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AddCommentResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comment: { type: 'Comment', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AddReactionResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + reaction: { type: 'ActivityReaction', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.AggregatedActivity = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + activities: { type: 'Activity', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.BaseActivity = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + edited_at: { type: 'DatetimeType', isSingle: true }, + + expires_at: { type: 'DatetimeType', isSingle: true }, + + comments: { type: 'Comment', isSingle: false }, + + latest_reactions: { type: 'ActivityReaction', isSingle: false }, + + mentioned_users: { type: 'UserResponse', isSingle: false }, + + own_bookmarks: { type: 'Bookmark', isSingle: false }, + + own_reactions: { type: 'ActivityReaction', isSingle: false }, + + current_feed: { type: 'Feed', isSingle: true }, + + reaction_groups: { type: 'ReactionGroup', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.Bookmark = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + folder: { type: 'BookmarkFolder', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.BookmarkAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.BookmarkDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + bookmark: { type: 'Bookmark', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.BookmarkFolder = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.BookmarkUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + bookmark: { type: 'Bookmark', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.Comment = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + latest_reactions: { type: 'ActivityReaction', isSingle: false }, + + reaction_groups: { type: 'ReactionGroup', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.CommentAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'Comment', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CommentRemovedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'Comment', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CommentUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'Comment', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CreateActivitiesBatchResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activities: { type: 'Activity', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.CreateFeedViewResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feed_view: { type: 'CustomFeedView', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CreateManyFeedsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feeds: { type: 'Feed', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.CustomFeedView = (input?: Record) => { + const typeMappings: TypeMapping = { + last_used_at: { type: 'DatetimeType', isSingle: true }, + + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.DeleteBookmarkResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + bookmark: { type: 'Bookmark', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.DeviceResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ExportFeedUserDataResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activities: { type: 'Activity', isSingle: false }, + + bookmarks: { type: 'Bookmark', isSingle: false }, + + comments: { type: 'Comment', isSingle: false }, + + reactions: { type: 'ActivityReaction', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.Feed = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + owner: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedCreatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'FeedMember', isSingle: false }, + + feed: { type: 'Feed', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedGroup = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedGroupChangedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + feed_group: { type: 'FeedGroup', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedGroupDeletedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedMember = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + request_accepted_at: { type: 'DatetimeType', isSingle: true }, + + request_rejected_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + feed: { type: 'Feed', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.Follow = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + source_feed: { type: 'Feed', isSingle: true }, + + target_feed: { type: 'Feed', isSingle: true }, + + request_accepted_at: { type: 'DatetimeType', isSingle: true }, + + request_rejected_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FollowAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'Follow', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FollowManyResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follows: { type: 'Follow', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.FollowRemovedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'Follow', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FollowResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follow: { type: 'Follow', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FollowSuggestionsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + suggestions: { type: 'Feed', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.FollowUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'Follow', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.GetActivityResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activity: { type: 'Activity', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.GetOrCreateFeedResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activities: { type: 'Activity', isSingle: false }, + + aggregated_activities: { type: 'AggregatedActivity', isSingle: false }, + + followers: { type: 'Follow', isSingle: false }, + + following: { type: 'Follow', isSingle: false }, + + members: { type: 'FeedMember', isSingle: false }, + + pinned_activities: { type: 'ActivityPin', isSingle: false }, + + feed: { type: 'Feed', isSingle: true }, + + notification_status: { type: 'NotificationStatus', isSingle: true }, + + own_feed_follow: { type: 'Follow', isSingle: true }, + + own_feed_membership: { type: 'FeedMember', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.NotificationStatus = (input?: Record) => { + const typeMappings: TypeMapping = { + last_seen_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.PinActivityResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.PushNotificationSettingsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + disabled_until: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.QueryActivitiesResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activities: { type: 'Activity', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.QueryCommentsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comments: { type: 'Comment', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.QueryFollowsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follows: { type: 'Follow', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.ReactionGroup = (input?: Record) => { + const typeMappings: TypeMapping = { + first_reaction_at: { type: 'DatetimeType', isSingle: true }, + + last_reaction_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.RejectFeedMemberResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feed_member: { type: 'FeedMember', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.RejectFollowResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follow: { type: 'Follow', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.RemoveCommentResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comment: { type: 'Comment', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpdateActivityPartialResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activity: { type: 'Activity', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpdateBookmarkResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + bookmark: { type: 'Bookmark', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpdateCommentResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comment: { type: 'Comment', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpdateFeedResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feed: { type: 'Feed', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpdateFeedViewResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feed_view: { type: 'CustomFeedView', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpdateFollowResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follow: { type: 'Follow', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UpsertFeedGroupResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feed_group: { type: 'FeedGroup', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.UserResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + ban_expires: { type: 'DatetimeType', isSingle: true }, + + deactivated_at: { type: 'DatetimeType', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + last_active: { type: 'DatetimeType', isSingle: true }, + + revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true }, + + devices: { type: 'DeviceResponse', isSingle: false }, + + push_notifications: { + type: 'PushNotificationSettingsResponse', + isSingle: true, + }, + }; + return decode(typeMappings, input); +}; diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts new file mode 100644 index 0000000..461d3f3 --- /dev/null +++ b/src/gen-feeds/models/index.ts @@ -0,0 +1,1673 @@ +export interface APIError { + code: number; + + duration: string; + + message: string; + + more_info: string; + + status_code: number; + + details: number[]; + + unrecoverable?: boolean; + + exception_fields?: Record; +} + +export interface AcceptFeedMemberRequest { + user_id: string; +} + +export interface AcceptFeedMemberResponse { + duration: string; + + feed_member: FeedMember; +} + +export interface AcceptFollowRequest { + source_fid: string; + + target_fid: string; +} + +export interface AcceptFollowResponse { + duration: string; + + follow: Follow; +} + +export interface Activity { + bookmark_count: number; + + comment_count: number; + + created_at: Date; + + id: string; + + text: string; + + type: string; + + updated_at: Date; + + visibility: string; + + feeds: string[]; + + user: UserResponse; + + deleted_at?: Date; + + edited_at?: Date; + + expires_at?: Date; + + popularity?: number; + + score?: number; + + share_count?: number; + + attachments?: ActivityAttachment[]; + + comments?: Comment[]; + + filter_tags?: string[]; + + interest_tags?: string[]; + + latest_reactions?: ActivityReaction[]; + + mentioned_users?: UserResponse[]; + + own_bookmarks?: Bookmark[]; + + own_reactions?: ActivityReaction[]; + + current_feed?: Feed; + + custom?: Record; + + location?: ActivityLocation; + + parent?: BaseActivity; + + reaction_groups?: Record; + + search_data?: Record; +} + +export interface ActivityAddedEvent { + created_at: Date; + + fid: string; + + activity: Activity; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface ActivityAnalyserConfig {} + +export interface ActivityAttachment { + type: string; + + url: string; + + asset_url?: string; + + image_url?: string; + + live_call_cid?: string; + + custom?: Record; +} + +export interface ActivityDeletedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface ActivityLocation { + lat: number; + + lng: number; +} + +export interface ActivityPin { + activity_id: string; + + created_at: Date; + + feed: string; + + updated_at: Date; + + user: UserResponse; +} + +export interface ActivityReaction { + activity_id: string; + + created_at: Date; + + type: string; + + updated_at: Date; + + user: UserResponse; + + custom?: Record; +} + +export interface ActivityReactionAddedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + reaction: ActivityReaction; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface ActivityReactionDeletedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + reaction: ActivityReaction; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface ActivityRemovedFromFeedEvent { + created_at: Date; + + fid: string; + + activity: Activity; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface ActivityRequest { + type: string; + + fids: string[]; + + expires_at?: string; + + id?: string; + + parent_id?: string; + + text?: string; + + user_id?: string; + + visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + + attachments?: ActivityAttachment[]; + + filter_tags?: string[]; + + interest_tags?: string[]; + + mentioned_user_ids?: string[]; + + custom?: Record; + + location?: ActivityLocation; + + search_data?: Record; +} + +export interface ActivitySelectorConfig { + cutoff_time?: Date; + + min_popularity?: number; + + tag_filter_type?: string; + + type?: string; + + tags?: string[]; +} + +export interface ActivityUpdatedEvent { + created_at: Date; + + fid: string; + + activity: Activity; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface AddActivityRequest { + type: string; + + fids: string[]; + + expires_at?: string; + + id?: string; + + parent_id?: string; + + text?: string; + + user_id?: string; + + visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + + attachments?: ActivityAttachment[]; + + filter_tags?: string[]; + + interest_tags?: string[]; + + mentioned_user_ids?: string[]; + + custom?: Record; + + location?: ActivityLocation; + + search_data?: Record; +} + +export interface AddActivityResponse { + duration: string; + + activity: Activity; +} + +export interface AddBookmarkRequest { + folder_id?: string; + + custom?: Record; + + new_folder?: AddFolderRequest; +} + +export interface AddBookmarkResponse { + duration: string; + + bookmark: Bookmark; +} + +export interface AddCommentRequest { + comment: string; + + parent_id?: string; + + custom?: Record; +} + +export interface AddCommentResponse { + duration: string; + + comment: Comment; +} + +export interface AddFolderRequest { + name: string; + + custom?: Record; +} + +export interface AddReactionRequest { + type: string; + + user_id?: string; + + custom?: Record; + + user?: UserRequest; +} + +export interface AddReactionResponse { + duration: string; + + reaction: ActivityReaction; +} + +export interface AggregatedActivity { + activity_count: number; + + created_at: Date; + + group: string; + + score: number; + + updated_at: Date; + + user_count: number; + + activities: Activity[]; +} + +export interface AggregationConfig { + format?: string; +} + +export interface BaseActivity { + bookmark_count: number; + + comment_count: number; + + created_at: Date; + + id: string; + + text: string; + + type: string; + + updated_at: Date; + + visibility: string; + + feeds: string[]; + + user: UserResponse; + + deleted_at?: Date; + + edited_at?: Date; + + expires_at?: Date; + + popularity?: number; + + score?: number; + + share_count?: number; + + attachments?: ActivityAttachment[]; + + comments?: Comment[]; + + filter_tags?: string[]; + + interest_tags?: string[]; + + latest_reactions?: ActivityReaction[]; + + mentioned_users?: UserResponse[]; + + own_bookmarks?: Bookmark[]; + + own_reactions?: ActivityReaction[]; + + current_feed?: Feed; + + custom?: Record; + + location?: ActivityLocation; + + moderation?: Moderation; + + reaction_groups?: Record; + + search_data?: Record; +} + +export interface Bookmark { + activity_id: string; + + created_at: Date; + + updated_at: Date; + + folder: BookmarkFolder; + + user: UserResponse; + + custom?: Record; +} + +export interface BookmarkAddedEvent { + activity_id: string; + + created_at: Date; + + fid: string; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface BookmarkDeletedEvent { + created_at: Date; + + fid: string; + + bookmark: Bookmark; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface BookmarkFolder { + created_at: Date; + + id: string; + + name: string; + + updated_at: Date; + + custom?: Record; +} + +export interface BookmarkUpdatedEvent { + created_at: Date; + + fid: string; + + bookmark: Bookmark; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface Comment { + activity_id: string; + + created_at: Date; + + id: string; + + reaction_count: number; + + reply_count: number; + + updated_at: Date; + + user: UserResponse; + + deleted_at?: Date; + + parent_id?: string; + + text?: string; + + latest_reactions?: ActivityReaction[]; + + custom?: Record; + + reaction_groups?: Record; +} + +export interface CommentAddedEvent { + created_at: Date; + + fid: string; + + comment: Comment; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CommentRemovedEvent { + created_at: Date; + + fid: string; + + comment: Comment; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CommentUpdatedEvent { + created_at: Date; + + fid: string; + + comment: Comment; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CreateActivitiesBatchRequest { + activities: ActivityRequest[]; +} + +export interface CreateActivitiesBatchResponse { + duration: string; + + activities: Activity[]; +} + +export interface CreateFeedViewRequest { + view_id: string; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + + ranking?: RankingConfig; +} + +export interface CreateFeedViewResponse { + duration: string; + + feed_view: CustomFeedView; +} + +export interface CreateManyFeedsRequest { + feeds: FeedPayload[]; +} + +export interface CreateManyFeedsResponse { + duration: string; + + feeds: Feed[]; +} + +export interface CustomFeedView { + feed_group: string; + + id: string; + + last_used_at?: Date; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + + ranking?: RankingConfig; +} + +export interface DecayFunctionConfig { + base?: string; + + decay?: string; + + direction?: string; + + offset?: string; + + origin?: string; + + scale?: string; +} + +export interface DeleteActivityReactionResponse { + activity_id: string; + + duration: string; + + type: string; + + user_id: string; +} + +export interface DeleteActivityResponse { + duration: string; +} + +export interface DeleteBookmarkResponse { + duration: string; + + bookmark: Bookmark; +} + +export interface DeleteFeedGroupResponse { + duration: string; +} + +export interface DeleteFeedResponse { + duration: string; +} + +export interface DeleteFeedUserDataResponse { + deleted_activities: number; + + deleted_bookmarks: number; + + deleted_comments: number; + + deleted_reactions: number; + + duration: string; +} + +export interface DeleteFeedViewResponse { + duration: string; +} + +export interface DeviceResponse { + created_at: Date; + + id: string; + + push_provider: string; + + user_id: string; + + disabled?: boolean; + + disabled_reason?: string; + + push_provider_name?: string; + + voip?: boolean; +} + +export interface ExportFeedUserDataRequest {} + +export interface ExportFeedUserDataResponse { + duration: string; + + activities: Activity[]; + + bookmarks: Bookmark[]; + + comments: Comment[]; + + reactions: ActivityReaction[]; +} + +export interface Feed { + created_at: Date; + + fid: string; + + follower_count: number; + + following_count: number; + + group_id: string; + + id: string; + + member_count: number; + + pin_count: number; + + updated_at: Date; + + owner: UserResponse; + + deleted_at?: Date; + + visibility?: string; + + custom?: Record; +} + +export interface FeedCreatedEvent { + created_at: Date; + + fid: string; + + members: FeedMember[]; + + custom: Record; + + feed: Feed; + + user: UserResponseCommonFields; + + type: string; + + received_at?: Date; +} + +export interface FeedDeletedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface FeedGroup { + created_at: Date; + + group_id: string; + + id: string; + + updated_at: Date; + + default_visibility?: string; + + activity_analysers?: ActivityAnalyserConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + + custom?: Record; + + notification?: NotificationConfig; + + ranking?: RankingConfig; + + stories?: StoriesConfig; +} + +export interface FeedGroupChangedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + type: string; + + received_at?: Date; + + feed_group?: FeedGroup; + + user?: UserResponseCommonFields; +} + +export interface FeedGroupDeletedEvent { + created_at: Date; + + fid: string; + + group_id: string; + + custom: Record; + + type: string; + + received_at?: Date; +} + +export interface FeedInput { + visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + + members?: FeedMemberPayload[]; + + custom?: Record; +} + +export interface FeedMember { + created_at: Date; + + role: string; + + status: string; + + updated_at: Date; + + user: UserResponse; + + request?: boolean; + + request_accepted_at?: Date; + + request_rejected_at?: Date; + + custom?: Record; +} + +export interface FeedMemberPayload { + user_id: string; + + request?: boolean; + + role?: string; + + custom?: Record; +} + +export interface FeedPayload { + feed_group_id: string; + + feed_id: string; + + owner_id?: string; + + visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + + members?: FeedMemberPayload[]; + + custom?: Record; +} + +export interface FeedUpdatedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + feed: Feed; + + user: UserResponseCommonFields; + + type: string; + + received_at?: Date; +} + +export interface Follow { + created_at: Date; + + push_preference: string; + + request: boolean; + + source_fid: string; + + status: string; + + target_fid: string; + + updated_at: Date; + + source_feed: Feed; + + target_feed: Feed; + + request_accepted_at?: Date; + + request_rejected_at?: Date; + + role?: string; + + custom?: Record; +} + +export interface FollowAddedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + follow: Follow; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface FollowManyRequest { + follows: FollowPayload[]; +} + +export interface FollowManyResponse { + duration: string; + + follows: Follow[]; +} + +export interface FollowPayload { + source: string; + + target: string; + + push_preference?: string; + + request?: boolean; + + custom?: Record; +} + +export interface FollowRemovedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + follow: Follow; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface FollowRequest { + source: string; + + target: string; + + push_preference?: string; + + request?: boolean; + + custom?: Record; +} + +export interface FollowResponse { + duration: string; + + follow: Follow; +} + +export interface FollowSuggestionsResponse { + duration: string; + + suggestions: Feed[]; + + next?: string; + + prev?: string; +} + +export interface FollowUpdatedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + follow: Follow; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface GetActivityResponse { + duration: string; + + activity: Activity; +} + +export interface GetOrCreateFeedRequest { + comment_limit?: number; + + comment_sort?: 'first' | 'last' | 'popular'; + + limit?: number; + + next?: string; + + prev?: string; + + user_id?: string; + + view?: string; + + watch?: boolean; + + data?: FeedInput; + + external_ranking?: Record; + + filter?: Record; + + follower_pagination?: PagerRequest; + + following_pagination?: PagerRequest; + + member_pagination?: PagerRequest; + + user?: UserRequest; +} + +export interface GetOrCreateFeedResponse { + duration: string; + + activities: Activity[]; + + aggregated_activities: AggregatedActivity[]; + + followers: Follow[]; + + following: Follow[]; + + members: FeedMember[]; + + pinned_activities: ActivityPin[]; + + feed: Feed; + + next?: string; + + prev?: string; + + followers_pagination?: PagerResponse; + + following_pagination?: PagerResponse; + + member_pagination?: PagerResponse; + + notification_status?: NotificationStatus; + + own_feed_follow?: Follow; + + own_feed_membership?: FeedMember; +} + +export interface MarkActivityRequest { + mark_all_read?: boolean; + + mark_all_seen?: boolean; + + user_id?: string; + + mark_read?: string[]; + + mark_watched?: string[]; + + user?: UserRequest; +} + +export interface Moderation {} + +export interface NotificationConfig { + track_read?: boolean; + + track_seen?: boolean; +} + +export interface NotificationStatus { + unread: number; + + unseen: number; + + last_seen_at?: Date; + + read_activities?: string[]; +} + +export interface PagerRequest { + limit?: number; + + next?: string; + + prev?: string; +} + +export interface PagerResponse { + next?: string; + + prev?: string; +} + +export interface PinActivityRequest { + user_id?: string; + + user?: UserRequest; +} + +export interface PinActivityResponse { + activity_id: string; + + created_at: Date; + + duration: string; + + fid: string; + + user_id: string; +} + +export interface PrivacySettingsResponse { + read_receipts?: ReadReceiptsResponse; + + typing_indicators?: TypingIndicatorsResponse; +} + +export interface PushNotificationSettingsResponse { + disabled?: boolean; + + disabled_until?: Date; +} + +export interface QueryActivitiesRequest { + comment_limit?: number; + + comment_sort?: 'first' | 'last' | 'popular'; + + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryActivitiesResponse { + duration: string; + + activities: Activity[]; + + next?: string; + + prev?: string; +} + +export interface QueryCommentsRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: 'first' | 'last' | 'reaction_count'; + + user_id?: string; + + activity_ids?: string[]; + + parent_ids?: string[]; +} + +export interface QueryCommentsResponse { + duration: string; + + comments: Comment[]; + + next?: string; + + prev?: string; +} + +export interface QueryFeedMembersRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryFeedMembersResponse { + duration: string; + + members: FeedMember[]; + + pagination: PagerResponse; +} + +export interface QueryFeedsResponse { + duration: string; + + feeds: Feed[]; + + pager: PagerResponse; +} + +export interface QueryFollowsRequest { + limit?: number; + + next?: string; + + prev?: string; + + user_id?: string; + + sort?: SortParamRequest[]; + + filter?: Record; + + user?: UserRequest; +} + +export interface QueryFollowsResponse { + duration: string; + + follows: Follow[]; + + next?: string; + + prev?: string; +} + +export interface RankingConfig { + decay_factor?: number; + + recency_weight?: number; + + score?: string; + + type?: string; + + defaults?: Record; + + functions?: Record; +} + +export interface ReactionGroup { + count: number; + + first_reaction_at: Date; + + last_reaction_at: Date; +} + +export interface ReadReceiptsResponse { + enabled: boolean; +} + +export interface RejectFeedMemberRequest { + user_id: string; +} + +export interface RejectFeedMemberResponse { + duration: string; + + feed_member: FeedMember; +} + +export interface RejectFollowRequest { + source_fid: string; + + target_fid: string; +} + +export interface RejectFollowResponse { + duration: string; + + follow: Follow; +} + +export interface RemoveActivitiesRequest { + activity_ids: string[]; + + hard_delete?: boolean; + + user_id?: string; + + user?: UserRequest; +} + +export interface RemoveActivitiesResponse { + duration: string; + + removed_activity_ids: string[]; +} + +export interface RemoveCommentResponse { + duration: string; + + comment: Comment; +} + +export interface Response { + duration: string; +} + +export interface SortParamRequest { + direction?: number; + + field?: string; +} + +export interface StoriesConfig { + expiration_behaviour?: string; + + skip_watched?: boolean; +} + +export interface TypingIndicatorsResponse { + enabled: boolean; +} + +export interface UnfollowManyRequest { + follows: UnfollowPayload[]; + + user_id?: string; + + user?: UserRequest; +} + +export interface UnfollowManyResponse { + duration: string; +} + +export interface UnfollowPayload { + source_fid: string; + + target_fid: string; +} + +export interface UnfollowResponse { + duration: string; +} + +export interface UnpinActivityResponse { + activity_id: string; + + duration: string; + + fid: string; + + user_id: string; +} + +export interface UpdateActivityPartialRequest { + user_id?: string; + + unset?: string[]; + + set?: Record; + + user?: UserRequest; +} + +export interface UpdateActivityPartialResponse { + duration: string; + + activity: Activity; +} + +export interface UpdateBookmarkRequest { + feed_id: string; + + feed_type: string; + + custom?: Record; +} + +export interface UpdateBookmarkResponse { + duration: string; + + bookmark: Bookmark; +} + +export interface UpdateCommentRequest { + comment?: string; + + custom?: Record; +} + +export interface UpdateCommentResponse { + duration: string; + + comment: Comment; +} + +export interface UpdateFeedMembersRequest { + operation: 'add' | 'remove' | 'set'; + + limit?: number; + + next?: string; + + prev?: string; + + members?: FeedMemberPayload[]; +} + +export interface UpdateFeedRequest { + custom?: Record; +} + +export interface UpdateFeedResponse { + duration: string; + + feed: Feed; +} + +export interface UpdateFeedViewRequest { + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + + ranking?: RankingConfig; +} + +export interface UpdateFeedViewResponse { + duration: string; + + feed_view: CustomFeedView; +} + +export interface UpdateFollowRequest { + push_preference?: string; + + custom?: Record; +} + +export interface UpdateFollowResponse { + duration: string; + + follow: Follow; +} + +export interface UpsertFeedGroupRequest { + feed_group_id: string; + + activity_analysers?: ActivityAnalyserConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + + custom?: Record; + + notification?: NotificationConfig; + + ranking?: RankingConfig; +} + +export interface UpsertFeedGroupResponse { + duration: string; + + feed_group: FeedGroup; +} + +export interface UserRequest { + id: string; + + image?: string; + + invisible?: boolean; + + language?: string; + + name?: string; + + role?: string; + + teams?: string[]; + + custom?: Record; + + privacy_settings?: PrivacySettingsResponse; + + teams_role?: Record; +} + +export interface UserResponse { + banned: boolean; + + created_at: Date; + + id: string; + + invisible: boolean; + + language: string; + + online: boolean; + + role: string; + + shadow_banned: boolean; + + updated_at: Date; + + blocked_user_ids: string[]; + + teams: string[]; + + custom: Record; + + ban_expires?: Date; + + deactivated_at?: Date; + + deleted_at?: Date; + + image?: string; + + last_active?: Date; + + name?: string; + + revoke_tokens_issued_before?: Date; + + devices?: DeviceResponse[]; + + privacy_settings?: PrivacySettingsResponse; + + push_notifications?: PushNotificationSettingsResponse; + + teams_role?: Record; +} + +export interface UserResponseCommonFields { + banned: boolean; + + created_at: Date; + + id: string; + + language: string; + + online: boolean; + + role: string; + + updated_at: Date; + + blocked_user_ids: string[]; + + teams: string[]; + + custom: Record; + + deactivated_at?: Date; + + deleted_at?: Date; + + image?: string; + + last_active?: Date; + + name?: string; + + revoke_tokens_issued_before?: Date; + + teams_role?: Record; +} + +export type WebhookEvent = + | ({ type: 'activity.added' } & ActivityAddedEvent) + | ({ type: 'activity.deleted' } & ActivityDeletedEvent) + | ({ type: 'activity.reaction.added' } & ActivityReactionAddedEvent) + | ({ type: 'activity.reaction.deleted' } & ActivityReactionDeletedEvent) + | ({ type: 'activity.removed_from_feed' } & ActivityRemovedFromFeedEvent) + | ({ type: 'activity.updated' } & ActivityUpdatedEvent) + | ({ type: 'bookmark.added' } & BookmarkAddedEvent) + | ({ type: 'bookmark.deleted' } & BookmarkDeletedEvent) + | ({ type: 'bookmark.updated' } & BookmarkUpdatedEvent) + | ({ type: 'comment.added' } & CommentAddedEvent) + | ({ type: 'comment.removed' } & CommentRemovedEvent) + | ({ type: 'comment.updated' } & CommentUpdatedEvent) + | ({ type: 'feed.created' } & FeedCreatedEvent) + | ({ type: 'feed.deleted' } & FeedDeletedEvent) + | ({ type: 'feed.updated' } & FeedUpdatedEvent) + | ({ type: 'feed_group.changed' } & FeedGroupChangedEvent) + | ({ type: 'feed_group.deleted' } & FeedGroupDeletedEvent) + | ({ type: 'follow.added' } & FollowAddedEvent) + | ({ type: 'follow.removed' } & FollowRemovedEvent) + | ({ type: 'follow.updated' } & FollowUpdatedEvent); diff --git a/src/gen-imports.ts b/src/gen-imports.ts index a4d9547..3e0d8dd 100644 --- a/src/gen-imports.ts +++ b/src/gen-imports.ts @@ -2,3 +2,4 @@ export * from './ApiClient'; export * from './gen/chat/ChatApi'; export * from './gen/video/VideoApi'; export * from './types'; +export * from './gen-feeds/feeds/FeedsApi'; diff --git a/src/gen/chat/ChannelApi.ts b/src/gen/chat/ChannelApi.ts index c3ad843..a519dca 100644 --- a/src/gen/chat/ChannelApi.ts +++ b/src/gen/chat/ChannelApi.ts @@ -15,7 +15,6 @@ import { MarkReadRequest, MarkReadResponse, MarkUnreadRequest, - Response, SendEventRequest, SendMessageRequest, SendMessageResponse, diff --git a/src/gen/chat/ChatApi.ts b/src/gen/chat/ChatApi.ts index 66406a5..16e29b5 100644 --- a/src/gen/chat/ChatApi.ts +++ b/src/gen/chat/ChatApi.ts @@ -76,7 +76,6 @@ import { QuerySegmentsResponse, QueryThreadsRequest, QueryThreadsResponse, - Response, SearchPayload, SearchResponse, SendEventRequest, @@ -87,7 +86,6 @@ import { SendUserCustomEventRequest, ShowChannelRequest, ShowChannelResponse, - SortParamRequest, StartCampaignRequest, StartCampaignResponse, StopCampaignRequest, @@ -122,6 +120,7 @@ import { WrappedUnreadCountsResponse, } from '../models'; import { decoders } from '../model-decoders/decoders'; +import { SortParamRequest } from '../../gen-feeds/models'; export class ChatApi { constructor(public readonly apiClient: ApiClient) {} diff --git a/src/gen/common/CommonApi.ts b/src/gen/common/CommonApi.ts index 30af76f..162ce72 100644 --- a/src/gen/common/CommonApi.ts +++ b/src/gen/common/CommonApi.ts @@ -53,7 +53,6 @@ import { ReactivateUserResponse, ReactivateUsersRequest, ReactivateUsersResponse, - Response, RestoreUsersRequest, UnblockUsersRequest, UnblockUsersResponse, diff --git a/src/gen/common/_CommonApiInterface.ts b/src/gen/common/_CommonApiInterface.ts deleted file mode 100644 index 6a41487..0000000 --- a/src/gen/common/_CommonApiInterface.ts +++ /dev/null @@ -1,256 +0,0 @@ -import { StreamResponse } from '../../gen-imports'; -import { - BlockUsersRequest, - BlockUsersResponse, - CheckExternalStorageResponse, - CheckPushRequest, - CheckPushResponse, - CheckSNSRequest, - CheckSNSResponse, - CheckSQSRequest, - CheckSQSResponse, - CreateBlockListRequest, - CreateBlockListResponse, - CreateDeviceRequest, - CreateExternalStorageRequest, - CreateExternalStorageResponse, - CreateGuestRequest, - CreateGuestResponse, - CreateImportRequest, - CreateImportResponse, - CreateImportURLRequest, - CreateImportURLResponse, - CreateRoleRequest, - CreateRoleResponse, - DeactivateUserRequest, - DeactivateUserResponse, - DeactivateUsersRequest, - DeactivateUsersResponse, - DeleteExternalStorageResponse, - DeleteUsersRequest, - DeleteUsersResponse, - ExportUserResponse, - ExportUsersRequest, - ExportUsersResponse, - GetApplicationResponse, - GetBlockListResponse, - GetBlockedUsersResponse, - GetCustomPermissionResponse, - GetImportResponse, - GetOGResponse, - GetRateLimitsResponse, - GetTaskResponse, - ListBlockListResponse, - ListDevicesResponse, - ListExternalStorageResponse, - ListImportsResponse, - ListPermissionsResponse, - ListPushProvidersResponse, - ListRolesResponse, - QueryUsersPayload, - QueryUsersResponse, - ReactivateUserRequest, - ReactivateUserResponse, - ReactivateUsersRequest, - ReactivateUsersResponse, - Response, - RestoreUsersRequest, - UnblockUsersRequest, - UnblockUsersResponse, - UpdateAppRequest, - UpdateBlockListRequest, - UpdateBlockListResponse, - UpdateExternalStorageRequest, - UpdateExternalStorageResponse, - UpdateUsersPartialRequest, - UpdateUsersRequest, - UpdateUsersResponse, - UpsertPushProviderRequest, - UpsertPushProviderResponse, -} from '../models'; - -export interface _CommonApiInterface { - getApp: () => Promise>; - - updateApp: (request?: UpdateAppRequest) => Promise>; - - listBlockLists: (request?: { - team?: string; - }) => Promise>; - - createBlockList: ( - request: CreateBlockListRequest, - ) => Promise>; - - deleteBlockList: (request: { - name: string; - team?: string; - }) => Promise>; - - getBlockList: (request: { - name: string; - team?: string; - }) => Promise>; - - updateBlockList: ( - request: UpdateBlockListRequest & { name: string }, - ) => Promise>; - - checkPush: ( - request?: CheckPushRequest, - ) => Promise>; - - checkSNS: ( - request?: CheckSNSRequest, - ) => Promise>; - - checkSQS: ( - request?: CheckSQSRequest, - ) => Promise>; - - deleteDevice: (request: { - id: string; - user_id?: string; - }) => Promise>; - - listDevices: (request?: { - user_id?: string; - }) => Promise>; - - createDevice: ( - request: CreateDeviceRequest, - ) => Promise>; - - exportUsers: ( - request: ExportUsersRequest, - ) => Promise>; - - listExternalStorage: () => Promise< - StreamResponse - >; - - createExternalStorage: ( - request: CreateExternalStorageRequest, - ) => Promise>; - - deleteExternalStorage: (request: { - name: string; - }) => Promise>; - - updateExternalStorage: ( - request: UpdateExternalStorageRequest & { name: string }, - ) => Promise>; - - checkExternalStorage: (request: { - name: string; - }) => Promise>; - - createGuest: ( - request: CreateGuestRequest, - ) => Promise>; - - createImportURL: ( - request?: CreateImportURLRequest, - ) => Promise>; - - listImports: () => Promise>; - - createImport: ( - request: CreateImportRequest, - ) => Promise>; - - getImport: (request: { - id: string; - }) => Promise>; - - getOG: (request: { url: string }) => Promise>; - - listPermissions: () => Promise>; - - getPermission: (request: { - id: string; - }) => Promise>; - - listPushProviders: () => Promise>; - - upsertPushProvider: ( - request?: UpsertPushProviderRequest, - ) => Promise>; - - deletePushProvider: (request: { - type: string; - name: string; - }) => Promise>; - - getRateLimits: (request?: { - server_side?: boolean; - android?: boolean; - ios?: boolean; - web?: boolean; - endpoints?: string; - }) => Promise>; - - listRoles: () => Promise>; - - createRole: ( - request: CreateRoleRequest, - ) => Promise>; - - deleteRole: (request: { name: string }) => Promise>; - - getTask: (request: { - id: string; - }) => Promise>; - - queryUsers: (request?: { - payload?: QueryUsersPayload; - }) => Promise>; - - updateUsersPartial: ( - request: UpdateUsersPartialRequest, - ) => Promise>; - - updateUsers: ( - request: UpdateUsersRequest, - ) => Promise>; - - getBlockedUsers: (request?: { - user_id?: string; - }) => Promise>; - - blockUsers: ( - request: BlockUsersRequest, - ) => Promise>; - - deactivateUsers: ( - request: DeactivateUsersRequest, - ) => Promise>; - - deleteUsers: ( - request: DeleteUsersRequest, - ) => Promise>; - - reactivateUsers: ( - request: ReactivateUsersRequest, - ) => Promise>; - - restoreUsers: ( - request: RestoreUsersRequest, - ) => Promise>; - - unblockUsers: ( - request: UnblockUsersRequest, - ) => Promise>; - - deactivateUser: ( - request: DeactivateUserRequest & { user_id: string }, - ) => Promise>; - - exportUser: (request: { - user_id: string; - }) => Promise>; - - reactivateUser: ( - request: ReactivateUserRequest & { user_id: string }, - ) => Promise>; -} diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 40f8ebd..8ac8b43 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -1,3 +1,14 @@ +import { + DeviceResponse, + PagerResponse, + PrivacySettingsResponse, + PushNotificationSettingsResponse, + SortParamRequest, + UserRequest, + UserResponse, + UserResponseCommonFields, +} from '../../gen-feeds/models'; + export interface AIImageConfig { enabled: boolean; @@ -28,24 +39,6 @@ export interface AIVideoConfig { async?: boolean; } -export interface APIError { - code: number; - - duration: string; - - message: string; - - more_info: string; - - status_code: number; - - details: number[]; - - unrecoverable?: boolean; - - exception_fields?: Record; -} - export interface APNConfig { auth_key?: string; @@ -3218,24 +3211,6 @@ export interface DeviceErrorInfo { provider_name: string; } -export interface DeviceResponse { - created_at: Date; - - id: string; - - push_provider: string; - - user_id: string; - - disabled?: boolean; - - disabled_reason?: string; - - push_provider_name?: string; - - voip?: boolean; -} - export interface DraftPayloadResponse { id: string; @@ -5544,12 +5519,6 @@ export interface OwnUserResponse { teams_role?: Record; } -export interface PagerResponse { - next?: string; - - prev?: string; -} - export interface PaginationParams { limit?: number; @@ -5886,12 +5855,6 @@ export interface PrivacySettings { typing_indicators?: TypingIndicators; } -export interface PrivacySettingsResponse { - read_receipts?: ReadReceiptsResponse; - - typing_indicators?: TypingIndicatorsResponse; -} - export interface PublisherStatsResponse { total: number; @@ -5922,12 +5885,6 @@ export interface PushNotificationFields { providers?: PushProvider[]; } -export interface PushNotificationSettingsResponse { - disabled?: boolean; - - disabled_until?: Date; -} - export interface PushPreferenceInput { channel_cid?: string; @@ -6862,10 +6819,6 @@ export interface ReadReceipts { enabled: boolean; } -export interface ReadReceiptsResponse { - enabled?: boolean; -} - export interface ReadStateResponse { last_read: Date; @@ -6936,10 +6889,6 @@ export interface ReportResponse { user_ratings: UserRatingReportResponse; } -export interface Response { - duration: string; -} - export interface RestoreActionRequest {} export interface RestoreUsersRequest { @@ -7494,12 +7443,6 @@ export interface ShowChannelResponse { duration: string; } -export interface SortParamRequest { - direction?: number; - - field?: string; -} - export interface StartCampaignRequest { scheduled_for?: Date; @@ -8137,10 +8080,6 @@ export interface TypingIndicators { enabled: boolean; } -export interface TypingIndicatorsResponse { - enabled?: boolean; -} - export interface UnbanActionRequest {} export interface UnbanRequest { @@ -9082,112 +9021,6 @@ export interface UserReactivatedEvent { user?: User; } -export interface UserRequest { - id: string; - - image?: string; - - invisible?: boolean; - - language?: string; - - name?: string; - - role?: string; - - teams?: string[]; - - custom?: Record; - - privacy_settings?: PrivacySettingsResponse; - - teams_role?: Record; -} - -export interface UserResponse { - banned: boolean; - - created_at: Date; - - id: string; - - invisible: boolean; - - language: string; - - online: boolean; - - role: string; - - shadow_banned: boolean; - - updated_at: Date; - - blocked_user_ids: string[]; - - teams: string[]; - - custom: Record; - - ban_expires?: Date; - - deactivated_at?: Date; - - deleted_at?: Date; - - image?: string; - - last_active?: Date; - - name?: string; - - revoke_tokens_issued_before?: Date; - - devices?: DeviceResponse[]; - - privacy_settings?: PrivacySettingsResponse; - - push_notifications?: PushNotificationSettingsResponse; - - teams_role?: Record; -} - -export interface UserResponseCommonFields { - banned: boolean; - - created_at: Date; - - id: string; - - language: string; - - online: boolean; - - role: string; - - updated_at: Date; - - blocked_user_ids: string[]; - - teams: string[]; - - custom: Record; - - deactivated_at?: Date; - - deleted_at?: Date; - - image?: string; - - last_active?: Date; - - name?: string; - - revoke_tokens_issued_before?: Date; - - teams_role?: Record; -} - export interface UserResponsePrivacyFields { banned: boolean; @@ -9426,122 +9259,6 @@ export interface WSEvent { user?: UserResponse; } -export type WebhookEvent = - | ({ type: '*' } & AnyEvent) - | ({ type: 'activity.marked' } & ActivityMarkedEvent) - | ({ type: 'call.accepted' } & CallAcceptedEvent) - | ({ type: 'call.blocked_user' } & BlockedUserEvent) - | ({ type: 'call.closed_caption' } & ClosedCaptionEvent) - | ({ type: 'call.closed_captions_failed' } & CallClosedCaptionsFailedEvent) - | ({ type: 'call.closed_captions_started' } & CallClosedCaptionsStartedEvent) - | ({ type: 'call.closed_captions_stopped' } & CallClosedCaptionsStoppedEvent) - | ({ type: 'call.created' } & CallCreatedEvent) - | ({ type: 'call.deleted' } & CallDeletedEvent) - | ({ type: 'call.ended' } & CallEndedEvent) - | ({ type: 'call.frame_recording_failed' } & CallFrameRecordingFailedEvent) - | ({ type: 'call.frame_recording_ready' } & CallFrameRecordingFrameReadyEvent) - | ({ type: 'call.frame_recording_started' } & CallFrameRecordingStartedEvent) - | ({ type: 'call.frame_recording_stopped' } & CallFrameRecordingStoppedEvent) - | ({ type: 'call.hls_broadcasting_failed' } & CallHLSBroadcastingFailedEvent) - | ({ - type: 'call.hls_broadcasting_started'; - } & CallHLSBroadcastingStartedEvent) - | ({ - type: 'call.hls_broadcasting_stopped'; - } & CallHLSBroadcastingStoppedEvent) - | ({ type: 'call.live_started' } & CallLiveStartedEvent) - | ({ type: 'call.member_added' } & CallMemberAddedEvent) - | ({ type: 'call.member_removed' } & CallMemberRemovedEvent) - | ({ type: 'call.member_updated' } & CallMemberUpdatedEvent) - | ({ - type: 'call.member_updated_permission'; - } & CallMemberUpdatedPermissionEvent) - | ({ type: 'call.missed' } & CallMissedEvent) - | ({ type: 'call.notification' } & CallNotificationEvent) - | ({ type: 'call.permission_request' } & PermissionRequestEvent) - | ({ type: 'call.permissions_updated' } & UpdatedCallPermissionsEvent) - | ({ type: 'call.reaction_new' } & CallReactionEvent) - | ({ type: 'call.recording_failed' } & CallRecordingFailedEvent) - | ({ type: 'call.recording_ready' } & CallRecordingReadyEvent) - | ({ type: 'call.recording_started' } & CallRecordingStartedEvent) - | ({ type: 'call.recording_stopped' } & CallRecordingStoppedEvent) - | ({ type: 'call.rejected' } & CallRejectedEvent) - | ({ type: 'call.ring' } & CallRingEvent) - | ({ type: 'call.rtmp_broadcast_failed' } & CallRtmpBroadcastFailedEvent) - | ({ type: 'call.rtmp_broadcast_started' } & CallRtmpBroadcastStartedEvent) - | ({ type: 'call.rtmp_broadcast_stopped' } & CallRtmpBroadcastStoppedEvent) - | ({ type: 'call.session_ended' } & CallSessionEndedEvent) - | ({ - type: 'call.session_participant_joined'; - } & CallSessionParticipantJoinedEvent) - | ({ - type: 'call.session_participant_left'; - } & CallSessionParticipantLeftEvent) - | ({ type: 'call.session_started' } & CallSessionStartedEvent) - | ({ type: 'call.stats_report_ready' } & CallStatsReportReadyEvent) - | ({ type: 'call.transcription_failed' } & CallTranscriptionFailedEvent) - | ({ type: 'call.transcription_ready' } & CallTranscriptionReadyEvent) - | ({ type: 'call.transcription_started' } & CallTranscriptionStartedEvent) - | ({ type: 'call.transcription_stopped' } & CallTranscriptionStoppedEvent) - | ({ type: 'call.unblocked_user' } & UnblockedUserEvent) - | ({ type: 'call.updated' } & CallUpdatedEvent) - | ({ type: 'call.user_feedback_submitted' } & CallUserFeedbackSubmittedEvent) - | ({ type: 'call.user_muted' } & CallUserMutedEvent) - | ({ type: 'campaign.completed' } & CampaignCompletedEvent) - | ({ type: 'campaign.started' } & CampaignStartedEvent) - | ({ type: 'channel.created' } & ChannelCreatedEvent) - | ({ type: 'channel.deleted' } & ChannelDeletedEvent) - | ({ type: 'channel.frozen' } & ChannelFrozenEvent) - | ({ type: 'channel.hidden' } & ChannelHiddenEvent) - | ({ type: 'channel.muted' } & ChannelMutedEvent) - | ({ type: 'channel.truncated' } & ChannelTruncatedEvent) - | ({ type: 'channel.unfrozen' } & ChannelUnFrozenEvent) - | ({ type: 'channel.unmuted' } & ChannelUnmutedEvent) - | ({ type: 'channel.updated' } & ChannelUpdatedEvent) - | ({ type: 'channel.visible' } & ChannelVisibleEvent) - | ({ type: 'custom' } & CustomVideoEvent) - | ({ type: 'export.channels.error' } & AsyncExportErrorEvent) - | ({ type: 'export.channels.success' } & AsyncExportChannelsEvent) - | ({ type: 'export.moderation_logs.error' } & AsyncExportErrorEvent) - | ({ - type: 'export.moderation_logs.success'; - } & AsyncExportModerationLogsEvent) - | ({ type: 'export.users.error' } & AsyncExportErrorEvent) - | ({ type: 'export.users.success' } & AsyncExportUsersEvent) - | ({ type: 'flag.updated' } & FlagUpdatedEvent) - | ({ type: 'member.added' } & MemberAddedEvent) - | ({ type: 'member.removed' } & MemberRemovedEvent) - | ({ type: 'member.updated' } & MemberUpdatedEvent) - | ({ type: 'message.deleted' } & MessageDeletedEvent) - | ({ type: 'message.flagged' } & MessageFlaggedEvent) - | ({ type: 'message.new' } & MessageNewEvent) - | ({ type: 'message.read' } & MessageReadEvent) - | ({ type: 'message.unblocked' } & MessageUnblockedEvent) - | ({ type: 'message.undeleted' } & MessageUndeletedEvent) - | ({ type: 'message.updated' } & MessageUpdatedEvent) - | ({ type: 'moderation.custom_action' } & ModerationCustomActionEvent) - | ({ type: 'moderation.flagged' } & ModerationFlaggedEvent) - | ({ type: 'moderation.mark_reviewed' } & ModerationMarkReviewedEvent) - | ({ type: 'moderation_check.completed' } & ModerationCheckCompletedEvent) - | ({ type: 'notification.mark_unread' } & NotificationMarkUnreadEvent) - | ({ type: 'notification.thread_message_new' } & MessageNewEvent) - | ({ type: 'reaction.deleted' } & ReactionDeletedEvent) - | ({ type: 'reaction.new' } & ReactionNewEvent) - | ({ type: 'reaction.updated' } & ReactionUpdatedEvent) - | ({ type: 'review_queue_item.new' } & ReviewQueueItemNewEvent) - | ({ type: 'review_queue_item.updated' } & ReviewQueueItemUpdatedEvent) - | ({ type: 'thread.updated' } & ThreadUpdatedEvent) - | ({ type: 'user.banned' } & UserBannedEvent) - | ({ type: 'user.deactivated' } & UserDeactivatedEvent) - | ({ type: 'user.deleted' } & UserDeletedEvent) - | ({ type: 'user.flagged' } & UserFlaggedEvent) - | ({ type: 'user.muted' } & UserMutedEvent) - | ({ type: 'user.reactivated' } & UserReactivatedEvent) - | ({ type: 'user.unbanned' } & UserUnbannedEvent) - | ({ type: 'user.unmuted' } & UserUnmutedEvent) - | ({ type: 'user.unread_message_reminder' } & UserUnreadReminderEvent) - | ({ type: 'user.updated' } & UserUpdatedEvent); - export interface WrappedUnreadCountsResponse { duration: string; diff --git a/src/gen/video/VideoApi.ts b/src/gen/video/VideoApi.ts index c27e2a4..f986ff6 100644 --- a/src/gen/video/VideoApi.ts +++ b/src/gen/video/VideoApi.ts @@ -38,7 +38,6 @@ import { QueryCallsResponse, QueryUserFeedbackRequest, QueryUserFeedbackResponse, - Response, SendCallEventRequest, SendCallEventResponse, StartClosedCaptionsRequest, From 21a404c7f8dd684651553ffc426fe9031ed23269 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 22 May 2025 11:08:31 +0200 Subject: [PATCH 03/39] Update to latest API spec --- src/gen-feeds/feeds/FeedApi.ts | 16 +- src/gen-feeds/feeds/FeedsApi.ts | 345 ++++++++++++++++----- src/gen-feeds/model-decoders/decoders.ts | 150 ++++++--- src/gen-feeds/models/index.ts | 370 +++++++++++++++++------ 4 files changed, 668 insertions(+), 213 deletions(-) diff --git a/src/gen-feeds/feeds/FeedApi.ts b/src/gen-feeds/feeds/FeedApi.ts index 0b01533..169316d 100644 --- a/src/gen-feeds/feeds/FeedApi.ts +++ b/src/gen-feeds/feeds/FeedApi.ts @@ -36,20 +36,20 @@ export class FeedApi { }); } - update( - request?: UpdateFeedRequest, - ): Promise> { - return this.feedsApi.updateFeed({ + getOrCreate( + request?: GetOrCreateFeedRequest, + ): Promise> { + return this.feedsApi.getOrCreateFeed({ feed_id: this.id, feed_group_id: this.group, ...request, }); } - getOrCreate( - request?: GetOrCreateFeedRequest, - ): Promise> { - return this.feedsApi.getOrCreateFeed({ + update( + request?: UpdateFeedRequest, + ): Promise> { + return this.feedsApi.updateFeed({ feed_id: this.id, feed_group_id: this.group, ...request, diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts index fb63536..d81963d 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -8,12 +8,14 @@ import { AddActivityResponse, AddBookmarkRequest, AddBookmarkResponse, + AddCommentReactionRequest, + AddCommentReactionResponse, AddCommentRequest, AddCommentResponse, + AddCommentsBatchRequest, + AddCommentsBatchResponse, AddReactionRequest, AddReactionResponse, - CreateActivitiesBatchRequest, - CreateActivitiesBatchResponse, CreateFeedViewRequest, CreateFeedViewResponse, CreateManyFeedsRequest, @@ -21,6 +23,7 @@ import { DeleteActivityReactionResponse, DeleteActivityResponse, DeleteBookmarkResponse, + DeleteCommentResponse, DeleteFeedGroupResponse, DeleteFeedResponse, DeleteFeedUserDataResponse, @@ -30,8 +33,11 @@ import { FollowManyResponse, FollowRequest, FollowResponse, - FollowSuggestionsResponse, GetActivityResponse, + GetCommentRepliesResponse, + GetCommentResponse, + GetCommentsResponse, + GetFollowSuggestionsResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, MarkActivityRequest, @@ -52,7 +58,7 @@ import { RejectFollowResponse, RemoveActivitiesRequest, RemoveActivitiesResponse, - RemoveCommentResponse, + RemoveCommentReactionResponse, Response, UnfollowManyRequest, UnfollowManyResponse, @@ -60,6 +66,8 @@ import { UnpinActivityResponse, UpdateActivityPartialRequest, UpdateActivityPartialResponse, + UpdateActivityRequest, + UpdateActivityResponse, UpdateBookmarkRequest, UpdateBookmarkResponse, UpdateCommentRequest, @@ -71,6 +79,8 @@ import { UpdateFeedViewResponse, UpdateFollowRequest, UpdateFollowResponse, + UpsertActivitiesRequest, + UpsertActivitiesResponse, UpsertFeedGroupRequest, UpsertFeedGroupResponse, } from '../models'; @@ -91,6 +101,7 @@ export class FeedsApi { text: request?.text, user_id: request?.user_id, visibility: request?.visibility, + visibility_tag: request?.visibility_tag, attachments: request?.attachments, filter_tags: request?.filter_tags, interest_tags: request?.interest_tags, @@ -110,17 +121,17 @@ export class FeedsApi { } async upsertActivities( - request: CreateActivitiesBatchRequest, - ): Promise> { + request: UpsertActivitiesRequest, + ): Promise> { const body = { activities: request?.activities, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('POST', '/feeds/v3/activities/batch', undefined, undefined, body); - decoders.CreateActivitiesBatchResponse?.(response.body); + decoders.UpsertActivitiesResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -230,6 +241,34 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async updateActivity( + request: UpdateActivityRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + expires_at: request?.expires_at, + text: request?.text, + user_id: request?.user_id, + visibility: request?.visibility, + attachments: request?.attachments, + filter_tags: request?.filter_tags, + interest_tags: request?.interest_tags, + custom: request?.custom, + location: request?.location, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PUT', '/feeds/v3/activities/{activity_id}', pathParams, undefined, body); + + decoders.UpdateActivityResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async deleteBookmark(request: { activity_id: string; }): Promise> { @@ -305,33 +344,6 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async addComment( - request: AddCommentRequest & { activity_id: string }, - ): Promise> { - const pathParams = { - activity_id: request?.activity_id, - }; - const body = { - comment: request?.comment, - parent_id: request?.parent_id, - custom: request?.custom, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/feeds/v3/activities/{activity_id}/comments', - pathParams, - undefined, - body, - ); - - decoders.AddCommentResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async deleteActivityReaction(request: { activity_id: string; }): Promise> { @@ -381,6 +393,72 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async getComments(request: { + object_id: string; + object_type: string; + depth?: number; + sort?: string; + limit?: number; + prev?: string; + next?: string; + }): Promise> { + const queryParams = { + object_id: request?.object_id, + object_type: request?.object_type, + depth: request?.depth, + sort: request?.sort, + limit: request?.limit, + prev: request?.prev, + next: request?.next, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/feeds/v3/comments', undefined, queryParams); + + decoders.GetCommentsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async addComment( + request: AddCommentRequest, + ): Promise> { + const body = { + comment: request?.comment, + object_id: request?.object_id, + object_type: request?.object_type, + parent_id: request?.parent_id, + attachment: request?.attachment, + mentioned_user_ids: request?.mentioned_user_ids, + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/comments', undefined, undefined, body); + + decoders.AddCommentResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async addCommentsBatch( + request: AddCommentsBatchRequest, + ): Promise> { + const body = { + comments: request?.comments, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/comments/batch', undefined, undefined, body); + + decoders.AddCommentsBatchResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async queryComments( request?: QueryCommentsRequest, ): Promise> { @@ -403,18 +481,34 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async removeComment(request: { + async deleteComment(request: { comment_id: string; - }): Promise> { + }): Promise> { const pathParams = { comment_id: request?.comment_id, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('DELETE', '/feeds/v3/comments/{comment_id}', pathParams, undefined); - decoders.RemoveCommentResponse?.(response.body); + decoders.DeleteCommentResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getComment(request: { + comment_id: string; + }): Promise> { + const pathParams = { + comment_id: request?.comment_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/feeds/v3/comments/{comment_id}', pathParams, undefined); + + decoders.GetCommentResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -439,6 +533,90 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async removeCommentReaction(request: { + comment_id: string; + }): Promise> { + const pathParams = { + comment_id: request?.comment_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/comments/{comment_id}/reactions', + pathParams, + undefined, + ); + + decoders.RemoveCommentReactionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async addCommentReaction( + request: AddCommentReactionRequest & { comment_id: string }, + ): Promise> { + const pathParams = { + comment_id: request?.comment_id, + }; + const body = { + type: request?.type, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/comments/{comment_id}/reactions', + pathParams, + undefined, + body, + ); + + decoders.AddCommentReactionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getCommentReplies(request: { + comment_id: string; + depth?: number; + sort?: string; + replies_limit?: number; + limit?: number; + prev?: string; + next?: string; + }): Promise> { + const queryParams = { + depth: request?.depth, + sort: request?.sort, + replies_limit: request?.replies_limit, + limit: request?.limit, + prev: request?.prev, + next: request?.next, + }; + const pathParams = { + comment_id: request?.comment_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'GET', + '/feeds/v3/comments/{comment_id}/replies', + pathParams, + queryParams, + ); + + decoders.GetCommentRepliesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async createFeedGroup( request: UpsertFeedGroupRequest, ): Promise> { @@ -513,32 +691,6 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async updateFeed( - request: UpdateFeedRequest & { feed_group_id: string; feed_id: string }, - ): Promise> { - const pathParams = { - feed_group_id: request?.feed_group_id, - feed_id: request?.feed_id, - }; - const body = { - custom: request?.custom, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'PATCH', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', - pathParams, - undefined, - body, - ); - - decoders.UpdateFeedResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async getOrCreateFeed( request: GetOrCreateFeedRequest & { feed_group_id: string; @@ -582,6 +734,32 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async updateFeed( + request: UpdateFeedRequest & { feed_group_id: string; feed_id: string }, + ): Promise> { + const pathParams = { + feed_group_id: request?.feed_group_id, + feed_id: request?.feed_id, + }; + const body = { + custom: request?.custom, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PUT', + '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + pathParams, + undefined, + body, + ); + + decoders.UpdateFeedResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async markActivity( request: MarkActivityRequest & { feed_group_id: string; feed_id: string }, ): Promise> { @@ -790,6 +968,31 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async getFollowSuggestions(request: { + feed_group_id: string; + limit?: number; + }): Promise> { + const queryParams = { + limit: request?.limit, + }; + const pathParams = { + feed_group_id: request?.feed_group_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'GET', + '/feeds/v3/feed_groups/{feed_group_id}/follow_suggestions', + pathParams, + queryParams, + ); + + decoders.GetFollowSuggestionsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async createFeedView( request: CreateFeedViewRequest & { feed_group_id: string }, ): Promise> { @@ -895,18 +1098,6 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async getFollowSuggestions(): Promise< - StreamResponse - > { - const response = await this.apiClient.sendRequest< - StreamResponse - >('GET', '/feeds/v3/follow_suggestions', undefined, undefined); - - decoders.FollowSuggestionsResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async updateFollow( request?: UpdateFollowRequest, ): Promise> { diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts index 7276949..360201f 100644 --- a/src/gen-feeds/model-decoders/decoders.ts +++ b/src/gen-feeds/model-decoders/decoders.ts @@ -54,14 +54,6 @@ decoders.Activity = (input?: Record) => { updated_at: { type: 'DatetimeType', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - edited_at: { type: 'DatetimeType', isSingle: true }, - - expires_at: { type: 'DatetimeType', isSingle: true }, - comments: { type: 'Comment', isSingle: false }, latest_reactions: { type: 'ActivityReaction', isSingle: false }, @@ -72,11 +64,19 @@ decoders.Activity = (input?: Record) => { own_reactions: { type: 'ActivityReaction', isSingle: false }, + reaction_groups: { type: 'ReactionGroup', isSingle: false }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + edited_at: { type: 'DatetimeType', isSingle: true }, + + expires_at: { type: 'DatetimeType', isSingle: true }, + current_feed: { type: 'Feed', isSingle: true }, parent: { type: 'BaseActivity', isSingle: true }, - - reaction_groups: { type: 'ReactionGroup', isSingle: false }, }; return decode(typeMappings, input); }; @@ -96,6 +96,8 @@ decoders.ActivityDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'Activity', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); @@ -188,6 +190,13 @@ decoders.AddBookmarkResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.AddCommentReactionResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + reaction: { type: 'ActivityReaction', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.AddCommentResponse = (input?: Record) => { const typeMappings: TypeMapping = { comment: { type: 'Comment', isSingle: true }, @@ -195,6 +204,13 @@ decoders.AddCommentResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.AddCommentsBatchResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comments: { type: 'Comment', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.AddReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { reaction: { type: 'ActivityReaction', isSingle: true }, @@ -219,14 +235,6 @@ decoders.BaseActivity = (input?: Record) => { updated_at: { type: 'DatetimeType', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - edited_at: { type: 'DatetimeType', isSingle: true }, - - expires_at: { type: 'DatetimeType', isSingle: true }, - comments: { type: 'Comment', isSingle: false }, latest_reactions: { type: 'ActivityReaction', isSingle: false }, @@ -237,9 +245,17 @@ decoders.BaseActivity = (input?: Record) => { own_reactions: { type: 'ActivityReaction', isSingle: false }, - current_feed: { type: 'Feed', isSingle: true }, - reaction_groups: { type: 'ReactionGroup', isSingle: false }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + edited_at: { type: 'DatetimeType', isSingle: true }, + + expires_at: { type: 'DatetimeType', isSingle: true }, + + current_feed: { type: 'Feed', isSingle: true }, }; return decode(typeMappings, input); }; @@ -325,7 +341,7 @@ decoders.CommentAddedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CommentRemovedEvent = (input?: Record) => { +decoders.CommentDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -336,20 +352,33 @@ decoders.CommentRemovedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CommentUpdatedEvent = (input?: Record) => { +decoders.CommentReactionAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - comment: { type: 'Comment', isSingle: true }, + reaction: { type: 'ActivityReaction', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateActivitiesBatchResponse = (input?: Record) => { +decoders.CommentReactionRemovedEvent = (input?: Record) => { const typeMappings: TypeMapping = { - activities: { type: 'Activity', isSingle: false }, + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.CommentUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'Comment', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; @@ -549,13 +578,6 @@ decoders.FollowResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.FollowSuggestionsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - suggestions: { type: 'Feed', isSingle: false }, - }; - return decode(typeMappings, input); -}; - decoders.FollowUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -574,6 +596,34 @@ decoders.GetActivityResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.GetCommentRepliesResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comments: { type: 'ThreadedComment', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.GetCommentResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comment: { type: 'Comment', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.GetCommentsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comments: { type: 'ThreadedComment', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.GetFollowSuggestionsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + suggestions: { type: 'Feed', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.GetOrCreateFeedResponse = (input?: Record) => { const typeMappings: TypeMapping = { activities: { type: 'Activity', isSingle: false }, @@ -590,11 +640,11 @@ decoders.GetOrCreateFeedResponse = (input?: Record) => { feed: { type: 'Feed', isSingle: true }, - notification_status: { type: 'NotificationStatus', isSingle: true }, + own_follows: { type: 'Follow', isSingle: false }, - own_feed_follow: { type: 'Follow', isSingle: true }, + notification_status: { type: 'NotificationStatus', isSingle: true }, - own_feed_membership: { type: 'FeedMember', isSingle: true }, + own_membership: { type: 'FeedMember', isSingle: true }, }; return decode(typeMappings, input); }; @@ -664,9 +714,21 @@ decoders.RejectFollowResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.RemoveCommentResponse = (input?: Record) => { +decoders.ThreadedComment = (input?: Record) => { const typeMappings: TypeMapping = { - comment: { type: 'Comment', isSingle: true }, + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + latest_reactions: { type: 'ActivityReaction', isSingle: false }, + + replies: { type: 'ThreadedComment', isSingle: false }, + + reaction_groups: { type: 'ReactionGroup', isSingle: false }, }; return decode(typeMappings, input); }; @@ -678,6 +740,13 @@ decoders.UpdateActivityPartialResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UpdateActivityResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activity: { type: 'Activity', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UpdateBookmarkResponse = (input?: Record) => { const typeMappings: TypeMapping = { bookmark: { type: 'Bookmark', isSingle: true }, @@ -713,6 +782,13 @@ decoders.UpdateFollowResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UpsertActivitiesResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activities: { type: 'Activity', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.UpsertFeedGroupResponse = (input?: Record) => { const typeMappings: TypeMapping = { feed_group: { type: 'FeedGroup', isSingle: true }, diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index 461d3f3..9a92470 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -47,57 +47,59 @@ export interface Activity { id: string; - text: string; + popularity: number; + + score: number; + + share_count: number; type: string; updated_at: Date; - visibility: string; + visibility: 'public' | 'private' | 'tag'; + + attachments: Attachment[]; + + comments: Comment[]; feeds: string[]; - user: UserResponse; + filter_tags: string[]; - deleted_at?: Date; + interest_tags: string[]; - edited_at?: Date; + latest_reactions: ActivityReaction[]; - expires_at?: Date; + mentioned_users: UserResponse[]; - popularity?: number; + own_bookmarks: Bookmark[]; - score?: number; + own_reactions: ActivityReaction[]; - share_count?: number; + custom: Record; - attachments?: ActivityAttachment[]; + reaction_groups: Record; - comments?: Comment[]; + search_data: Record; - filter_tags?: string[]; + user: UserResponse; - interest_tags?: string[]; + deleted_at?: Date; - latest_reactions?: ActivityReaction[]; + edited_at?: Date; - mentioned_users?: UserResponse[]; + expires_at?: Date; - own_bookmarks?: Bookmark[]; + text?: string; - own_reactions?: ActivityReaction[]; + visibility_tag?: string; current_feed?: Feed; - custom?: Record; - location?: ActivityLocation; parent?: BaseActivity; - - reaction_groups?: Record; - - search_data?: Record; } export interface ActivityAddedEvent { @@ -118,25 +120,13 @@ export interface ActivityAddedEvent { export interface ActivityAnalyserConfig {} -export interface ActivityAttachment { - type: string; - - url: string; - - asset_url?: string; - - image_url?: string; - - live_call_cid?: string; - - custom?: Record; -} - export interface ActivityDeletedEvent { created_at: Date; fid: string; + activity: Activity; + custom: Record; type: string; @@ -241,9 +231,11 @@ export interface ActivityRequest { user_id?: string; - visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + visibility?: 'public' | 'private' | 'tag'; - attachments?: ActivityAttachment[]; + visibility_tag?: string; + + attachments?: Attachment[]; filter_tags?: string[]; @@ -301,9 +293,11 @@ export interface AddActivityRequest { user_id?: string; - visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + visibility?: 'public' | 'private' | 'tag'; - attachments?: ActivityAttachment[]; + visibility_tag?: string; + + attachments?: Attachment[]; filter_tags?: string[]; @@ -338,11 +332,37 @@ export interface AddBookmarkResponse { bookmark: Bookmark; } +export interface AddCommentReactionRequest { + type: string; + + user_id?: string; + + custom?: Record; + + user?: UserRequest; +} + +export interface AddCommentReactionResponse { + comment_id: string; + + duration: string; + + reaction: ActivityReaction; +} + export interface AddCommentRequest { comment: string; + object_id: string; + + object_type: string; + parent_id?: string; + attachment?: Attachment[]; + + mentioned_user_ids?: string[]; + custom?: Record; } @@ -352,6 +372,16 @@ export interface AddCommentResponse { comment: Comment; } +export interface AddCommentsBatchRequest { + comments: AddCommentRequest[]; +} + +export interface AddCommentsBatchResponse { + duration: string; + + comments: Comment[]; +} + export interface AddFolderRequest { name: string; @@ -394,6 +424,20 @@ export interface AggregationConfig { format?: string; } +export interface Attachment { + type: string; + + url: string; + + asset_url?: string; + + image_url?: string; + + live_call_cid?: string; + + custom?: Record; +} + export interface BaseActivity { bookmark_count: number; @@ -403,57 +447,59 @@ export interface BaseActivity { id: string; - text: string; + popularity: number; + + score: number; + + share_count: number; type: string; updated_at: Date; - visibility: string; + visibility: 'public' | 'private' | 'tag'; + + attachments: Attachment[]; + + comments: Comment[]; feeds: string[]; - user: UserResponse; + filter_tags: string[]; - deleted_at?: Date; + interest_tags: string[]; - edited_at?: Date; + latest_reactions: ActivityReaction[]; - expires_at?: Date; + mentioned_users: UserResponse[]; - popularity?: number; + own_bookmarks: Bookmark[]; - score?: number; + own_reactions: ActivityReaction[]; - share_count?: number; + custom: Record; - attachments?: ActivityAttachment[]; + reaction_groups: Record; - comments?: Comment[]; + search_data: Record; - filter_tags?: string[]; + user: UserResponse; - interest_tags?: string[]; + deleted_at?: Date; - latest_reactions?: ActivityReaction[]; + edited_at?: Date; - mentioned_users?: UserResponse[]; + expires_at?: Date; - own_bookmarks?: Bookmark[]; + text?: string; - own_reactions?: ActivityReaction[]; + visibility_tag?: string; current_feed?: Feed; - custom?: Record; - location?: ActivityLocation; moderation?: Moderation; - - reaction_groups?: Record; - - search_data?: Record; } export interface Bookmark { @@ -531,12 +577,14 @@ export interface BookmarkUpdatedEvent { } export interface Comment { - activity_id: string; - created_at: Date; id: string; + object_id: string; + + object_type: string; + reaction_count: number; reply_count: number; @@ -551,8 +599,12 @@ export interface Comment { text?: string; + attachments?: Attachment[]; + latest_reactions?: ActivityReaction[]; + mentioned_user_ids?: string[]; + custom?: Record; reaction_groups?: Record; @@ -574,7 +626,7 @@ export interface CommentAddedEvent { user?: UserResponseCommonFields; } -export interface CommentRemovedEvent { +export interface CommentDeletedEvent { created_at: Date; fid: string; @@ -590,15 +642,17 @@ export interface CommentRemovedEvent { user?: UserResponseCommonFields; } -export interface CommentUpdatedEvent { +export interface CommentReactionAddedEvent { + comment_id: string; + created_at: Date; fid: string; - comment: Comment; - custom: Record; + reaction: ActivityReaction; + type: string; received_at?: Date; @@ -606,14 +660,36 @@ export interface CommentUpdatedEvent { user?: UserResponseCommonFields; } -export interface CreateActivitiesBatchRequest { - activities: ActivityRequest[]; +export interface CommentReactionRemovedEvent { + comment_id: string; + + created_at: Date; + + fid: string; + + user_id: string; + + custom: Record; + + type: string; + + received_at?: Date; } -export interface CreateActivitiesBatchResponse { - duration: string; +export interface CommentUpdatedEvent { + created_at: Date; - activities: Activity[]; + fid: string; + + comment: Comment; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; } export interface CreateFeedViewRequest { @@ -690,6 +766,10 @@ export interface DeleteBookmarkResponse { bookmark: Bookmark; } +export interface DeleteCommentResponse { + duration: string; +} + export interface DeleteFeedGroupResponse { duration: string; } @@ -1030,16 +1110,6 @@ export interface FollowResponse { follow: Follow; } -export interface FollowSuggestionsResponse { - duration: string; - - suggestions: Feed[]; - - next?: string; - - prev?: string; -} - export interface FollowUpdatedEvent { created_at: Date; @@ -1062,6 +1132,38 @@ export interface GetActivityResponse { activity: Activity; } +export interface GetCommentRepliesResponse { + duration: string; + + comments: ThreadedComment[]; + + next?: string; + + prev?: string; +} + +export interface GetCommentResponse { + duration: string; + + comment: Comment; +} + +export interface GetCommentsResponse { + duration: string; + + comments: ThreadedComment[]; + + next?: string; + + prev?: string; +} + +export interface GetFollowSuggestionsResponse { + duration: string; + + suggestions: Feed[]; +} + export interface GetOrCreateFeedRequest { comment_limit?: number; @@ -1115,6 +1217,8 @@ export interface GetOrCreateFeedResponse { prev?: string; + own_follows?: Follow[]; + followers_pagination?: PagerResponse; following_pagination?: PagerResponse; @@ -1123,9 +1227,7 @@ export interface GetOrCreateFeedResponse { notification_status?: NotificationStatus; - own_feed_follow?: Follow; - - own_feed_membership?: FeedMember; + own_membership?: FeedMember; } export interface MarkActivityRequest { @@ -1374,10 +1476,18 @@ export interface RemoveActivitiesResponse { removed_activity_ids: string[]; } -export interface RemoveCommentResponse { +export interface RemoveCommentReactionResponse { duration: string; +} - comment: Comment; +export interface RepliesMeta { + depth_truncated: boolean; + + has_more: boolean; + + remaining: number; + + next_cursor?: string; } export interface Response { @@ -1396,6 +1506,44 @@ export interface StoriesConfig { skip_watched?: boolean; } +export interface ThreadedComment { + created_at: Date; + + id: string; + + object_id: string; + + object_type: string; + + reaction_count: number; + + reply_count: number; + + updated_at: Date; + + user: UserResponse; + + deleted_at?: Date; + + parent_id?: string; + + text?: string; + + attachments?: Attachment[]; + + latest_reactions?: ActivityReaction[]; + + mentioned_user_ids?: string[]; + + replies?: ThreadedComment[]; + + custom?: Record; + + meta?: RepliesMeta; + + reaction_groups?: Record; +} + export interface TypingIndicatorsResponse { enabled: boolean; } @@ -1448,6 +1596,34 @@ export interface UpdateActivityPartialResponse { activity: Activity; } +export interface UpdateActivityRequest { + expires_at?: Date; + + text?: string; + + user_id?: string; + + visibility?: string; + + attachments?: Attachment[]; + + filter_tags?: string[]; + + interest_tags?: string[]; + + custom?: Record; + + location?: ActivityLocation; + + user?: UserRequest; +} + +export interface UpdateActivityResponse { + duration: string; + + activity: Activity; +} + export interface UpdateBookmarkRequest { feed_id: string; @@ -1522,6 +1698,16 @@ export interface UpdateFollowResponse { follow: Follow; } +export interface UpsertActivitiesRequest { + activities: ActivityRequest[]; +} + +export interface UpsertActivitiesResponse { + duration: string; + + activities: Activity[]; +} + export interface UpsertFeedGroupRequest { feed_group_id: string; @@ -1661,7 +1847,9 @@ export type WebhookEvent = | ({ type: 'bookmark.deleted' } & BookmarkDeletedEvent) | ({ type: 'bookmark.updated' } & BookmarkUpdatedEvent) | ({ type: 'comment.added' } & CommentAddedEvent) - | ({ type: 'comment.removed' } & CommentRemovedEvent) + | ({ type: 'comment.deleted' } & CommentDeletedEvent) + | ({ type: 'comment.reaction.added' } & CommentReactionAddedEvent) + | ({ type: 'comment.reaction.removed' } & CommentReactionRemovedEvent) | ({ type: 'comment.updated' } & CommentUpdatedEvent) | ({ type: 'feed.created' } & FeedCreatedEvent) | ({ type: 'feed.deleted' } & FeedDeletedEvent) From 2e65eb31f64341375945ae74f26bc0eca38267e9 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 22 May 2025 11:14:00 +0200 Subject: [PATCH 04/39] Fix build issues due to attachment being duplicated --- src/gen/models/index.ts | 53 +---------------------------------------- 1 file changed, 1 insertion(+), 52 deletions(-) diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 8ac8b43..c4b8915 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -1,4 +1,5 @@ import { + Attachment, DeviceResponse, PagerResponse, PrivacySettingsResponse, @@ -355,58 +356,6 @@ export interface AsyncModerationConfiguration { callback?: AsyncModerationCallbackConfig; } -export interface Attachment { - custom: Record; - - asset_url?: string; - - author_icon?: string; - - author_link?: string; - - author_name?: string; - - color?: string; - - fallback?: string; - - footer?: string; - - footer_icon?: string; - - image_url?: string; - - latitude?: number; - - longitude?: number; - - og_scrape_url?: string; - - original_height?: number; - - original_width?: number; - - pretext?: string; - - stopped_sharing?: boolean; - - text?: string; - - thumb_url?: string; - - title?: string; - - title_link?: string; - - type?: string; - - actions?: Action[]; - - fields?: Field[]; - - giphy?: Images; -} - export interface AudioSettings { access_request_enabled: boolean; From efaf71d01da5a3f546d3b06d46bf5804d9202fe1 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 29 May 2025 12:26:07 +0200 Subject: [PATCH 05/39] Add fid to Feed --- src/StreamFeed.ts | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/StreamFeed.ts b/src/StreamFeed.ts index 96144bb..0c2eadf 100644 --- a/src/StreamFeed.ts +++ b/src/StreamFeed.ts @@ -1,3 +1,7 @@ import { FeedApi } from './gen-feeds/feeds/FeedApi'; -export class StreamFeed extends FeedApi {} +export class StreamFeed extends FeedApi { + get fid() { + return `${this.group}:${this.id}`; + } +} From e16de8828f10d431eaa80b3512ffc653f1d8b06c Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Fri, 30 May 2025 11:34:23 +0200 Subject: [PATCH 06/39] Update to latest API spec --- src/gen-feeds/feeds/FeedsApi.ts | 127 ++-- src/gen-feeds/model-decoders/decoders.ts | 389 +++++----- src/gen-feeds/models/index.ts | 880 +++++++++++++---------- 3 files changed, 772 insertions(+), 624 deletions(-) diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts index d81963d..3c5dbc1 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -16,10 +16,14 @@ import { AddCommentsBatchResponse, AddReactionRequest, AddReactionResponse, + CreateFeedGroupRequest, + CreateFeedGroupResponse, CreateFeedViewRequest, CreateFeedViewResponse, CreateManyFeedsRequest, CreateManyFeedsResponse, + DeleteActivitiesRequest, + DeleteActivitiesResponse, DeleteActivityReactionResponse, DeleteActivityResponse, DeleteBookmarkResponse, @@ -29,10 +33,8 @@ import { DeleteFeedUserDataResponse, DeleteFeedViewResponse, ExportFeedUserDataResponse, - FollowManyRequest, - FollowManyResponse, - FollowRequest, - FollowResponse, + FollowBatchRequest, + FollowBatchResponse, GetActivityResponse, GetCommentRepliesResponse, GetCommentResponse, @@ -49,6 +51,7 @@ import { QueryCommentsResponse, QueryFeedMembersRequest, QueryFeedMembersResponse, + QueryFeedsRequest, QueryFeedsResponse, QueryFollowsRequest, QueryFollowsResponse, @@ -56,12 +59,12 @@ import { RejectFeedMemberResponse, RejectFollowRequest, RejectFollowResponse, - RemoveActivitiesRequest, - RemoveActivitiesResponse, RemoveCommentReactionResponse, Response, - UnfollowManyRequest, - UnfollowManyResponse, + SingleFollowRequest, + SingleFollowResponse, + UnfollowBatchRequest, + UnfollowBatchResponse, UnfollowResponse, UnpinActivityResponse, UpdateActivityPartialRequest, @@ -81,8 +84,6 @@ import { UpdateFollowResponse, UpsertActivitiesRequest, UpsertActivitiesResponse, - UpsertFeedGroupRequest, - UpsertFeedGroupResponse, } from '../models'; import { decoders } from '../model-decoders/decoders'; @@ -136,6 +137,25 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async removeActivities( + request: DeleteActivitiesRequest, + ): Promise> { + const body = { + activity_ids: request?.activity_ids, + hard_delete: request?.hard_delete, + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/activities/delete', undefined, undefined, body); + + decoders.DeleteActivitiesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async queryActivities( request?: QueryActivitiesRequest, ): Promise> { @@ -158,25 +178,6 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async removeActivities( - request: RemoveActivitiesRequest, - ): Promise> { - const body = { - activity_ids: request?.activity_ids, - hard_delete: request?.hard_delete, - user_id: request?.user_id, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('POST', '/feeds/v3/activities/remove', undefined, undefined, body); - - decoders.RemoveActivitiesResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - async deleteActivity(request: { activity_id: string; hard_delete?: boolean; @@ -398,6 +399,7 @@ export class FeedsApi { object_type: string; depth?: number; sort?: string; + replies_limit?: number; limit?: number; prev?: string; next?: string; @@ -407,6 +409,7 @@ export class FeedsApi { object_type: request?.object_type, depth: request?.depth, sort: request?.sort, + replies_limit: request?.replies_limit, limit: request?.limit, prev: request?.prev, next: request?.next, @@ -429,7 +432,7 @@ export class FeedsApi { object_id: request?.object_id, object_type: request?.object_type, parent_id: request?.parent_id, - attachment: request?.attachment, + attachments: request?.attachments, mentioned_user_ids: request?.mentioned_user_ids, custom: request?.custom, }; @@ -460,16 +463,14 @@ export class FeedsApi { } async queryComments( - request?: QueryCommentsRequest, + request: QueryCommentsRequest, ): Promise> { const body = { + filter: request?.filter, limit: request?.limit, next: request?.next, prev: request?.prev, sort: request?.sort, - user_id: request?.user_id, - activity_ids: request?.activity_ids, - parent_ids: request?.parent_ids, }; const response = await this.apiClient.sendRequest< @@ -618,8 +619,8 @@ export class FeedsApi { } async createFeedGroup( - request: UpsertFeedGroupRequest, - ): Promise> { + request: CreateFeedGroupRequest, + ): Promise> { const body = { feed_group_id: request?.feed_group_id, activity_analysers: request?.activity_analysers, @@ -631,10 +632,10 @@ export class FeedsApi { }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('POST', '/feeds/v3/feed_groups', undefined, undefined, body); - decoders.UpsertFeedGroupResponse?.(response.body); + decoders.CreateFeedGroupResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -742,6 +743,7 @@ export class FeedsApi { feed_id: request?.feed_id, }; const body = { + created_by_id: request?.created_by_id, custom: request?.custom, }; @@ -1000,7 +1002,6 @@ export class FeedsApi { feed_group_id: request?.feed_group_id, }; const body = { - view_id: request?.view_id, activity_selectors: request?.activity_selectors, aggregation: request?.aggregation, ranking: request?.ranking, @@ -1072,7 +1073,7 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async createManyFeeds( + async createFeedsBatch( request: CreateManyFeedsRequest, ): Promise> { const body = { @@ -1088,10 +1089,19 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async feedsQueryFeeds(): Promise> { + async feedsQueryFeeds( + request?: QueryFeedsRequest, + ): Promise> { + const body = { + watch: request?.watch, + sort: request?.sort, + filter: request?.filter, + pagination: request?.pagination, + }; + const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/feeds/v3/feeds/query', undefined, undefined); + >('POST', '/feeds/v3/feeds/query', undefined, undefined, body); decoders.QueryFeedsResponse?.(response.body); @@ -1099,9 +1109,11 @@ export class FeedsApi { } async updateFollow( - request?: UpdateFollowRequest, + request: UpdateFollowRequest, ): Promise> { const body = { + source: request?.source, + target: request?.target, push_preference: request?.push_preference, custom: request?.custom, }; @@ -1116,21 +1128,20 @@ export class FeedsApi { } async follow( - request: FollowRequest, - ): Promise> { + request: SingleFollowRequest, + ): Promise> { const body = { source: request?.source, target: request?.target, push_preference: request?.push_preference, - request: request?.request, custom: request?.custom, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('POST', '/feeds/v3/follows', undefined, undefined, body); - decoders.FollowResponse?.(response.body); + decoders.SingleFollowResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1152,18 +1163,18 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async followMany( - request: FollowManyRequest, - ): Promise> { + async followBatch( + request: FollowBatchRequest, + ): Promise> { const body = { follows: request?.follows, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('POST', '/feeds/v3/follows/batch', undefined, undefined, body); - decoders.FollowManyResponse?.(response.body); + decoders.FollowBatchResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1225,9 +1236,9 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async unfollowMany( - request: UnfollowManyRequest, - ): Promise> { + async unfollowBatch( + request: UnfollowBatchRequest, + ): Promise> { const body = { follows: request?.follows, user_id: request?.user_id, @@ -1235,10 +1246,10 @@ export class FeedsApi { }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('POST', '/feeds/v3/unfollow/batch', undefined, undefined, body); - decoders.UnfollowManyResponse?.(response.body); + decoders.UnfollowBatchResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts index 360201f..2a170e0 100644 --- a/src/gen-feeds/model-decoders/decoders.ts +++ b/src/gen-feeds/model-decoders/decoders.ts @@ -36,124 +36,124 @@ const decode = (typeMappings: TypeMapping, input?: Record) => { decoders.AcceptFeedMemberResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed_member: { type: 'FeedMember', isSingle: true }, + feed_member: { type: 'FeedMemberResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.AcceptFollowResponse = (input?: Record) => { const typeMappings: TypeMapping = { - follow: { type: 'Follow', isSingle: true }, + follow: { type: 'FollowResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.Activity = (input?: Record) => { +decoders.ActivityAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, - - comments: { type: 'Comment', isSingle: false }, - - latest_reactions: { type: 'ActivityReaction', isSingle: false }, - - mentioned_users: { type: 'UserResponse', isSingle: false }, - - own_bookmarks: { type: 'Bookmark', isSingle: false }, - - own_reactions: { type: 'ActivityReaction', isSingle: false }, - - reaction_groups: { type: 'ReactionGroup', isSingle: false }, - - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - edited_at: { type: 'DatetimeType', isSingle: true }, - - expires_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - current_feed: { type: 'Feed', isSingle: true }, - - parent: { type: 'BaseActivity', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityAddedEvent = (input?: Record) => { +decoders.ActivityDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - activity: { type: 'Activity', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityDeletedEvent = (input?: Record) => { +decoders.ActivityPinResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - activity: { type: 'Activity', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityPin = (input?: Record) => { +decoders.ActivityReactionAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, + reaction: { type: 'ActivityReactionResponse', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityReaction = (input?: Record) => { +decoders.ActivityReactionDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, + reaction: { type: 'ActivityReactionResponse', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityReactionAddedEvent = (input?: Record) => { +decoders.ActivityReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - reaction: { type: 'ActivityReaction', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityReactionDeletedEvent = (input?: Record) => { +decoders.ActivityRemovedFromFeedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - reaction: { type: 'ActivityReaction', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ActivityRemovedFromFeedEvent = (input?: Record) => { +decoders.ActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - activity: { type: 'Activity', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + comments: { type: 'CommentResponse', isSingle: false }, + + latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + + mentioned_users: { type: 'UserResponse', isSingle: false }, + + own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, + + own_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + edited_at: { type: 'DatetimeType', isSingle: true }, + + expires_at: { type: 'DatetimeType', isSingle: true }, + + current_feed: { type: 'FeedResponse', isSingle: true }, + + parent: { type: 'BaseActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -169,7 +169,7 @@ decoders.ActivityUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - activity: { type: 'Activity', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -178,74 +178,74 @@ decoders.ActivityUpdatedEvent = (input?: Record) => { decoders.AddActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activity: { type: 'Activity', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.AddBookmarkResponse = (input?: Record) => { const typeMappings: TypeMapping = { - bookmark: { type: 'Bookmark', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.AddCommentReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { - reaction: { type: 'ActivityReaction', isSingle: true }, + reaction: { type: 'ActivityReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.AddCommentResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comment: { type: 'Comment', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.AddCommentsBatchResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comments: { type: 'Comment', isSingle: false }, + comments: { type: 'CommentResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.AddReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { - reaction: { type: 'ActivityReaction', isSingle: true }, + reaction: { type: 'ActivityReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AggregatedActivity = (input?: Record) => { +decoders.AggregatedActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, - activities: { type: 'Activity', isSingle: false }, + activities: { type: 'ActivityResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.BaseActivity = (input?: Record) => { +decoders.BaseActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, - comments: { type: 'Comment', isSingle: false }, + comments: { type: 'CommentResponse', isSingle: false }, - latest_reactions: { type: 'ActivityReaction', isSingle: false }, + latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, mentioned_users: { type: 'UserResponse', isSingle: false }, - own_bookmarks: { type: 'Bookmark', isSingle: false }, + own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, - own_reactions: { type: 'ActivityReaction', isSingle: false }, + own_reactions: { type: 'ActivityReactionResponse', isSingle: false }, - reaction_groups: { type: 'ReactionGroup', isSingle: false }, + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, user: { type: 'UserResponse', isSingle: true }, @@ -255,20 +255,7 @@ decoders.BaseActivity = (input?: Record) => { expires_at: { type: 'DatetimeType', isSingle: true }, - current_feed: { type: 'Feed', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.Bookmark = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - folder: { type: 'BookmarkFolder', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, + current_feed: { type: 'FeedResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -286,14 +273,14 @@ decoders.BookmarkDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - bookmark: { type: 'Bookmark', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.BookmarkFolder = (input?: Record) => { +decoders.BookmarkFolderResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -302,30 +289,26 @@ decoders.BookmarkFolder = (input?: Record) => { return decode(typeMappings, input); }; -decoders.BookmarkUpdatedEvent = (input?: Record) => { +decoders.BookmarkResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - bookmark: { type: 'Bookmark', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + folder: { type: 'BookmarkFolderResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.Comment = (input?: Record) => { +decoders.BookmarkUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - latest_reactions: { type: 'ActivityReaction', isSingle: false }, - - reaction_groups: { type: 'ReactionGroup', isSingle: false }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; @@ -334,7 +317,7 @@ decoders.CommentAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - comment: { type: 'Comment', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -345,7 +328,7 @@ decoders.CommentDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - comment: { type: 'Comment', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -356,7 +339,7 @@ decoders.CommentReactionAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - reaction: { type: 'ActivityReaction', isSingle: true }, + reaction: { type: 'ActivityReactionResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -372,43 +355,58 @@ decoders.CommentReactionRemovedEvent = (input?: Record) => { return decode(typeMappings, input); }; +decoders.CommentResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.CommentUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - comment: { type: 'Comment', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateFeedViewResponse = (input?: Record) => { +decoders.CreateFeedGroupResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed_view: { type: 'CustomFeedView', isSingle: true }, + feed_group: { type: 'FeedGroupResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateManyFeedsResponse = (input?: Record) => { +decoders.CreateFeedViewResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feeds: { type: 'Feed', isSingle: false }, + feed_view: { type: 'FeedViewResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CustomFeedView = (input?: Record) => { +decoders.CreateManyFeedsResponse = (input?: Record) => { const typeMappings: TypeMapping = { - last_used_at: { type: 'DatetimeType', isSingle: true }, - - activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + feeds: { type: 'FeedResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.DeleteBookmarkResponse = (input?: Record) => { const typeMappings: TypeMapping = { - bookmark: { type: 'Bookmark', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -422,26 +420,13 @@ decoders.DeviceResponse = (input?: Record) => { decoders.ExportFeedUserDataResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activities: { type: 'Activity', isSingle: false }, + activities: { type: 'ActivityResponse', isSingle: false }, - bookmarks: { type: 'Bookmark', isSingle: false }, + bookmarks: { type: 'BookmarkResponse', isSingle: false }, - comments: { type: 'Comment', isSingle: false }, + comments: { type: 'CommentResponse', isSingle: false }, - reactions: { type: 'ActivityReaction', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.Feed = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - owner: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, + reactions: { type: 'ActivityReactionResponse', isSingle: false }, }; return decode(typeMappings, input); }; @@ -450,9 +435,9 @@ decoders.FeedCreatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'FeedMember', isSingle: false }, + members: { type: 'FeedMemberResponse', isSingle: false }, - feed: { type: 'Feed', isSingle: true }, + feed: { type: 'FeedResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -468,38 +453,36 @@ decoders.FeedDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.FeedGroup = (input?: Record) => { +decoders.FeedGroupChangedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, - - activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FeedGroupChangedEvent = (input?: Record) => { +decoders.FeedGroupDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, - - feed_group: { type: 'FeedGroup', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FeedGroupDeletedEvent = (input?: Record) => { +decoders.FeedGroupResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, + + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.FeedMember = (input?: Record) => { +decoders.FeedMemberResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -514,57 +497,62 @@ decoders.FeedMember = (input?: Record) => { return decode(typeMappings, input); }; -decoders.FeedUpdatedEvent = (input?: Record) => { +decoders.FeedResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - feed: { type: 'Feed', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'UserResponse', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + deleted_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.Follow = (input?: Record) => { +decoders.FeedUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, - - source_feed: { type: 'Feed', isSingle: true }, + feed: { type: 'FeedResponse', isSingle: true }, - target_feed: { type: 'Feed', isSingle: true }, - - request_accepted_at: { type: 'DatetimeType', isSingle: true }, - - request_rejected_at: { type: 'DatetimeType', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FollowAddedEvent = (input?: Record) => { +decoders.FeedViewResponse = (input?: Record) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + last_used_at: { type: 'DatetimeType', isSingle: true }, - follow: { type: 'Follow', isSingle: true }, + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + }; + return decode(typeMappings, input); +}; - received_at: { type: 'DatetimeType', isSingle: true }, +decoders.FollowBatchResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follows: { type: 'FollowResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.FollowManyResponse = (input?: Record) => { +decoders.FollowCreatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { - follows: { type: 'Follow', isSingle: false }, + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'FollowResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FollowRemovedEvent = (input?: Record) => { +decoders.FollowDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - follow: { type: 'Follow', isSingle: true }, + follow: { type: 'FollowResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -573,7 +561,17 @@ decoders.FollowRemovedEvent = (input?: Record) => { decoders.FollowResponse = (input?: Record) => { const typeMappings: TypeMapping = { - follow: { type: 'Follow', isSingle: true }, + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + source_feed: { type: 'FeedResponse', isSingle: true }, + + target_feed: { type: 'FeedResponse', isSingle: true }, + + request_accepted_at: { type: 'DatetimeType', isSingle: true }, + + request_rejected_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; @@ -582,7 +580,7 @@ decoders.FollowUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - follow: { type: 'Follow', isSingle: true }, + follow: { type: 'FollowResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -591,65 +589,68 @@ decoders.FollowUpdatedEvent = (input?: Record) => { decoders.GetActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activity: { type: 'Activity', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.GetCommentRepliesResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comments: { type: 'ThreadedComment', isSingle: false }, + comments: { type: 'ThreadedCommentResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.GetCommentResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comment: { type: 'Comment', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.GetCommentsResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comments: { type: 'ThreadedComment', isSingle: false }, + comments: { type: 'ThreadedCommentResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.GetFollowSuggestionsResponse = (input?: Record) => { const typeMappings: TypeMapping = { - suggestions: { type: 'Feed', isSingle: false }, + suggestions: { type: 'FeedResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.GetOrCreateFeedResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activities: { type: 'Activity', isSingle: false }, + activities: { type: 'ActivityResponse', isSingle: false }, - aggregated_activities: { type: 'AggregatedActivity', isSingle: false }, + aggregated_activities: { + type: 'AggregatedActivityResponse', + isSingle: false, + }, - followers: { type: 'Follow', isSingle: false }, + followers: { type: 'FollowResponse', isSingle: false }, - following: { type: 'Follow', isSingle: false }, + following: { type: 'FollowResponse', isSingle: false }, - members: { type: 'FeedMember', isSingle: false }, + members: { type: 'FeedMemberResponse', isSingle: false }, - pinned_activities: { type: 'ActivityPin', isSingle: false }, + pinned_activities: { type: 'ActivityPinResponse', isSingle: false }, - feed: { type: 'Feed', isSingle: true }, + feed: { type: 'FeedResponse', isSingle: true }, - own_follows: { type: 'Follow', isSingle: false }, + own_follows: { type: 'FollowResponse', isSingle: false }, - notification_status: { type: 'NotificationStatus', isSingle: true }, + notification_status: { type: 'NotificationStatusResponse', isSingle: true }, - own_membership: { type: 'FeedMember', isSingle: true }, + own_membership: { type: 'FeedMemberResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.NotificationStatus = (input?: Record) => { +decoders.NotificationStatusResponse = (input?: Record) => { const typeMappings: TypeMapping = { last_seen_at: { type: 'DatetimeType', isSingle: true }, }; @@ -672,26 +673,26 @@ decoders.PushNotificationSettingsResponse = (input?: Record) => { decoders.QueryActivitiesResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activities: { type: 'Activity', isSingle: false }, + activities: { type: 'ActivityResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.QueryCommentsResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comments: { type: 'Comment', isSingle: false }, + comments: { type: 'CommentResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.QueryFollowsResponse = (input?: Record) => { const typeMappings: TypeMapping = { - follows: { type: 'Follow', isSingle: false }, + follows: { type: 'FollowResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ReactionGroup = (input?: Record) => { +decoders.ReactionGroupResponse = (input?: Record) => { const typeMappings: TypeMapping = { first_reaction_at: { type: 'DatetimeType', isSingle: true }, @@ -702,19 +703,26 @@ decoders.ReactionGroup = (input?: Record) => { decoders.RejectFeedMemberResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed_member: { type: 'FeedMember', isSingle: true }, + feed_member: { type: 'FeedMemberResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.RejectFollowResponse = (input?: Record) => { const typeMappings: TypeMapping = { - follow: { type: 'Follow', isSingle: true }, + follow: { type: 'FollowResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ThreadedComment = (input?: Record) => { +decoders.SingleFollowResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + follow: { type: 'FollowResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.ThreadedCommentResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -724,74 +732,67 @@ decoders.ThreadedComment = (input?: Record) => { deleted_at: { type: 'DatetimeType', isSingle: true }, - latest_reactions: { type: 'ActivityReaction', isSingle: false }, + latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, - replies: { type: 'ThreadedComment', isSingle: false }, + replies: { type: 'ThreadedCommentResponse', isSingle: false }, - reaction_groups: { type: 'ReactionGroup', isSingle: false }, + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, }; return decode(typeMappings, input); }; decoders.UpdateActivityPartialResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activity: { type: 'Activity', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpdateActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activity: { type: 'Activity', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpdateBookmarkResponse = (input?: Record) => { const typeMappings: TypeMapping = { - bookmark: { type: 'Bookmark', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpdateCommentResponse = (input?: Record) => { const typeMappings: TypeMapping = { - comment: { type: 'Comment', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpdateFeedResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed: { type: 'Feed', isSingle: true }, + feed: { type: 'FeedResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpdateFeedViewResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed_view: { type: 'CustomFeedView', isSingle: true }, + feed_view: { type: 'FeedViewResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpdateFollowResponse = (input?: Record) => { const typeMappings: TypeMapping = { - follow: { type: 'Follow', isSingle: true }, + follow: { type: 'FollowResponse', isSingle: true }, }; return decode(typeMappings, input); }; decoders.UpsertActivitiesResponse = (input?: Record) => { const typeMappings: TypeMapping = { - activities: { type: 'Activity', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.UpsertFeedGroupResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feed_group: { type: 'FeedGroup', isSingle: true }, + activities: { type: 'ActivityResponse', isSingle: false }, }; return decode(typeMappings, input); }; diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index 9a92470..50716d8 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -23,7 +23,7 @@ export interface AcceptFeedMemberRequest { export interface AcceptFeedMemberResponse { duration: string; - feed_member: FeedMember; + feed_member: FeedMemberResponse; } export interface AcceptFollowRequest { @@ -35,71 +35,19 @@ export interface AcceptFollowRequest { export interface AcceptFollowResponse { duration: string; - follow: Follow; + follow: FollowResponse; } -export interface Activity { - bookmark_count: number; - - comment_count: number; - - created_at: Date; - - id: string; - - popularity: number; - - score: number; +export interface Action { + name: string; - share_count: number; + text: string; type: string; - updated_at: Date; - - visibility: 'public' | 'private' | 'tag'; - - attachments: Attachment[]; - - comments: Comment[]; - - feeds: string[]; - - filter_tags: string[]; - - interest_tags: string[]; - - latest_reactions: ActivityReaction[]; - - mentioned_users: UserResponse[]; - - own_bookmarks: Bookmark[]; - - own_reactions: ActivityReaction[]; - - custom: Record; - - reaction_groups: Record; - - search_data: Record; - - user: UserResponse; - - deleted_at?: Date; - - edited_at?: Date; - - expires_at?: Date; - - text?: string; - - visibility_tag?: string; + style?: string; - current_feed?: Feed; - - location?: ActivityLocation; - - parent?: BaseActivity; + value?: string; } export interface ActivityAddedEvent { @@ -107,7 +55,7 @@ export interface ActivityAddedEvent { fid: string; - activity: Activity; + activity: ActivityResponse; custom: Record; @@ -125,7 +73,7 @@ export interface ActivityDeletedEvent { fid: string; - activity: Activity; + activity: ActivityResponse; custom: Record; @@ -142,7 +90,7 @@ export interface ActivityLocation { lng: number; } -export interface ActivityPin { +export interface ActivityPinResponse { activity_id: string; created_at: Date; @@ -154,20 +102,6 @@ export interface ActivityPin { user: UserResponse; } -export interface ActivityReaction { - activity_id: string; - - created_at: Date; - - type: string; - - updated_at: Date; - - user: UserResponse; - - custom?: Record; -} - export interface ActivityReactionAddedEvent { created_at: Date; @@ -175,7 +109,7 @@ export interface ActivityReactionAddedEvent { custom: Record; - reaction: ActivityReaction; + reaction: ActivityReactionResponse; type: string; @@ -191,7 +125,7 @@ export interface ActivityReactionDeletedEvent { custom: Record; - reaction: ActivityReaction; + reaction: ActivityReactionResponse; type: string; @@ -200,12 +134,26 @@ export interface ActivityReactionDeletedEvent { user?: UserResponseCommonFields; } +export interface ActivityReactionResponse { + activity_id: string; + + created_at: Date; + + type: string; + + updated_at: Date; + + user: UserResponse; + + custom?: Record; +} + export interface ActivityRemovedFromFeedEvent { created_at: Date; fid: string; - activity: Activity; + activity: ActivityResponse; custom: Record; @@ -250,6 +198,70 @@ export interface ActivityRequest { search_data?: Record; } +export interface ActivityResponse { + bookmark_count: number; + + comment_count: number; + + created_at: Date; + + id: string; + + popularity: number; + + score: number; + + share_count: number; + + type: string; + + updated_at: Date; + + visibility: 'public' | 'private' | 'tag'; + + attachments: Attachment[]; + + comments: CommentResponse[]; + + feeds: string[]; + + filter_tags: string[]; + + interest_tags: string[]; + + latest_reactions: ActivityReactionResponse[]; + + mentioned_users: UserResponse[]; + + own_bookmarks: BookmarkResponse[]; + + own_reactions: ActivityReactionResponse[]; + + custom: Record; + + reaction_groups: Record; + + search_data: Record; + + user: UserResponse; + + deleted_at?: Date; + + edited_at?: Date; + + expires_at?: Date; + + text?: string; + + visibility_tag?: string; + + current_feed?: FeedResponse; + + location?: ActivityLocation; + + parent?: BaseActivityResponse; +} + export interface ActivitySelectorConfig { cutoff_time?: Date; @@ -267,7 +279,7 @@ export interface ActivityUpdatedEvent { fid: string; - activity: Activity; + activity: ActivityResponse; custom: Record; @@ -315,7 +327,7 @@ export interface AddActivityRequest { export interface AddActivityResponse { duration: string; - activity: Activity; + activity: ActivityResponse; } export interface AddBookmarkRequest { @@ -329,7 +341,7 @@ export interface AddBookmarkRequest { export interface AddBookmarkResponse { duration: string; - bookmark: Bookmark; + bookmark: BookmarkResponse; } export interface AddCommentReactionRequest { @@ -347,7 +359,7 @@ export interface AddCommentReactionResponse { duration: string; - reaction: ActivityReaction; + reaction: ActivityReactionResponse; } export interface AddCommentRequest { @@ -359,7 +371,7 @@ export interface AddCommentRequest { parent_id?: string; - attachment?: Attachment[]; + attachments?: Attachment[]; mentioned_user_ids?: string[]; @@ -369,7 +381,7 @@ export interface AddCommentRequest { export interface AddCommentResponse { duration: string; - comment: Comment; + comment: CommentResponse; } export interface AddCommentsBatchRequest { @@ -379,7 +391,7 @@ export interface AddCommentsBatchRequest { export interface AddCommentsBatchResponse { duration: string; - comments: Comment[]; + comments: CommentResponse[]; } export interface AddFolderRequest { @@ -401,10 +413,10 @@ export interface AddReactionRequest { export interface AddReactionResponse { duration: string; - reaction: ActivityReaction; + reaction: ActivityReactionResponse; } -export interface AggregatedActivity { +export interface AggregatedActivityResponse { activity_count: number; created_at: Date; @@ -417,7 +429,7 @@ export interface AggregatedActivity { user_count: number; - activities: Activity[]; + activities: ActivityResponse[]; } export interface AggregationConfig { @@ -425,20 +437,58 @@ export interface AggregationConfig { } export interface Attachment { - type: string; - - url: string; + custom: Record; asset_url?: string; + author_icon?: string; + + author_link?: string; + + author_name?: string; + + color?: string; + + fallback?: string; + + footer?: string; + + footer_icon?: string; + image_url?: string; - live_call_cid?: string; + latitude?: number; - custom?: Record; + longitude?: number; + + og_scrape_url?: string; + + original_height?: number; + + original_width?: number; + + pretext?: string; + + stopped_sharing?: boolean; + + text?: string; + + thumb_url?: string; + + title?: string; + + title_link?: string; + + type?: string; + + actions?: Action[]; + + fields?: Field[]; + + giphy?: Images; } -export interface BaseActivity { +export interface BaseActivityResponse { bookmark_count: number; comment_count: number; @@ -461,7 +511,7 @@ export interface BaseActivity { attachments: Attachment[]; - comments: Comment[]; + comments: CommentResponse[]; feeds: string[]; @@ -469,17 +519,17 @@ export interface BaseActivity { interest_tags: string[]; - latest_reactions: ActivityReaction[]; + latest_reactions: ActivityReactionResponse[]; mentioned_users: UserResponse[]; - own_bookmarks: Bookmark[]; + own_bookmarks: BookmarkResponse[]; - own_reactions: ActivityReaction[]; + own_reactions: ActivityReactionResponse[]; custom: Record; - reaction_groups: Record; + reaction_groups: Record; search_data: Record; @@ -495,27 +545,13 @@ export interface BaseActivity { visibility_tag?: string; - current_feed?: Feed; + current_feed?: FeedResponse; location?: ActivityLocation; moderation?: Moderation; } -export interface Bookmark { - activity_id: string; - - created_at: Date; - - updated_at: Date; - - folder: BookmarkFolder; - - user: UserResponse; - - custom?: Record; -} - export interface BookmarkAddedEvent { activity_id: string; @@ -537,7 +573,7 @@ export interface BookmarkDeletedEvent { fid: string; - bookmark: Bookmark; + bookmark: BookmarkResponse; custom: Record; @@ -548,7 +584,7 @@ export interface BookmarkDeletedEvent { user?: UserResponseCommonFields; } -export interface BookmarkFolder { +export interface BookmarkFolderResponse { created_at: Date; id: string; @@ -560,54 +596,34 @@ export interface BookmarkFolder { custom?: Record; } -export interface BookmarkUpdatedEvent { - created_at: Date; - - fid: string; - - bookmark: Bookmark; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} +export interface BookmarkResponse { + activity_id: string; -export interface Comment { created_at: Date; - id: string; - - object_id: string; - - object_type: string; - - reaction_count: number; - - reply_count: number; - updated_at: Date; + folder: BookmarkFolderResponse; + user: UserResponse; - deleted_at?: Date; + custom?: Record; +} - parent_id?: string; +export interface BookmarkUpdatedEvent { + created_at: Date; - text?: string; + fid: string; - attachments?: Attachment[]; + bookmark: BookmarkResponse; - latest_reactions?: ActivityReaction[]; + custom: Record; - mentioned_user_ids?: string[]; + type: string; - custom?: Record; + received_at?: Date; - reaction_groups?: Record; + user?: UserResponseCommonFields; } export interface CommentAddedEvent { @@ -615,7 +631,7 @@ export interface CommentAddedEvent { fid: string; - comment: Comment; + comment: CommentResponse; custom: Record; @@ -631,7 +647,7 @@ export interface CommentDeletedEvent { fid: string; - comment: Comment; + comment: CommentResponse; custom: Record; @@ -651,7 +667,7 @@ export interface CommentReactionAddedEvent { custom: Record; - reaction: ActivityReaction; + reaction: ActivityReactionResponse; type: string; @@ -676,12 +692,58 @@ export interface CommentReactionRemovedEvent { received_at?: Date; } +export interface CommentResponse { + confidence_score: number; + + created_at: Date; + + downvote_count: number; + + id: string; + + object_id: string; + + object_type: string; + + reaction_count: number; + + reply_count: number; + + score: number; + + status: string; + + updated_at: Date; + + upvote_count: number; + + user: UserResponse; + + controversy_score?: number; + + deleted_at?: Date; + + parent_id?: string; + + text?: string; + + attachments?: Attachment[]; + + latest_reactions?: ActivityReactionResponse[]; + + mentioned_user_ids?: string[]; + + custom?: Record; + + reaction_groups?: Record; +} + export interface CommentUpdatedEvent { created_at: Date; fid: string; - comment: Comment; + comment: CommentResponse; custom: Record; @@ -692,9 +754,29 @@ export interface CommentUpdatedEvent { user?: UserResponseCommonFields; } -export interface CreateFeedViewRequest { - view_id: string; +export interface CreateFeedGroupRequest { + feed_group_id: string; + + activity_analysers?: ActivityAnalyserConfig[]; + + activity_selectors?: ActivitySelectorConfig[]; + aggregation?: AggregationConfig; + + custom?: Record; + + notification?: NotificationConfig; + + ranking?: RankingConfig; +} + +export interface CreateFeedGroupResponse { + duration: string; + + feed_group: FeedGroupResponse; +} + +export interface CreateFeedViewRequest { activity_selectors?: ActivitySelectorConfig[]; aggregation?: AggregationConfig; @@ -705,45 +787,47 @@ export interface CreateFeedViewRequest { export interface CreateFeedViewResponse { duration: string; - feed_view: CustomFeedView; + feed_view: FeedViewResponse; } export interface CreateManyFeedsRequest { - feeds: FeedPayload[]; + feeds: FeedRequest[]; } export interface CreateManyFeedsResponse { duration: string; - feeds: Feed[]; + feeds: FeedResponse[]; } -export interface CustomFeedView { - feed_group: string; +export interface DecayFunctionConfig { + base?: string; - id: string; + decay?: string; - last_used_at?: Date; + direction?: string; - activity_selectors?: ActivitySelectorConfig[]; + offset?: string; - aggregation?: AggregationConfig; + origin?: string; - ranking?: RankingConfig; + scale?: string; } -export interface DecayFunctionConfig { - base?: string; +export interface DeleteActivitiesRequest { + activity_ids: string[]; - decay?: string; + hard_delete?: boolean; - direction?: string; + user_id?: string; - offset?: string; + user?: UserRequest; +} - origin?: string; +export interface DeleteActivitiesResponse { + duration: string; - scale?: string; + deleted_activity_ids: string[]; } export interface DeleteActivityReactionResponse { @@ -763,7 +847,7 @@ export interface DeleteActivityResponse { export interface DeleteBookmarkResponse { duration: string; - bookmark: Bookmark; + bookmark: BookmarkResponse; } export interface DeleteCommentResponse { @@ -817,41 +901,13 @@ export interface ExportFeedUserDataRequest {} export interface ExportFeedUserDataResponse { duration: string; - activities: Activity[]; - - bookmarks: Bookmark[]; - - comments: Comment[]; - - reactions: ActivityReaction[]; -} - -export interface Feed { - created_at: Date; - - fid: string; - - follower_count: number; - - following_count: number; - - group_id: string; - - id: string; - - member_count: number; - - pin_count: number; - - updated_at: Date; - - owner: UserResponse; + activities: ActivityResponse[]; - deleted_at?: Date; + bookmarks: BookmarkResponse[]; - visibility?: string; + comments: CommentResponse[]; - custom?: Record; + reactions: ActivityReactionResponse[]; } export interface FeedCreatedEvent { @@ -859,11 +915,11 @@ export interface FeedCreatedEvent { fid: string; - members: FeedMember[]; + members: FeedMemberResponse[]; custom: Record; - feed: Feed; + feed: FeedResponse; user: UserResponseCommonFields; @@ -887,23 +943,29 @@ export interface FeedDeletedEvent { } export interface FeedGroup { + aggregation_version: number; + + app_pk: number; + created_at: Date; - group_id: string; + default_visibility: string; id: string; updated_at: Date; - default_visibility?: string; + activity_analysers: ActivityAnalyserConfig[]; - activity_analysers?: ActivityAnalyserConfig[]; + activity_selectors: ActivitySelectorConfig[]; - activity_selectors?: ActivitySelectorConfig[]; + custom: Record; - aggregation?: AggregationConfig; + deleted_at?: Date; - custom?: Record; + last_feed_get_at?: Date; + + aggregation?: AggregationConfig; notification?: NotificationConfig; @@ -942,35 +1004,41 @@ export interface FeedGroupDeletedEvent { received_at?: Date; } -export interface FeedInput { - visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; +export interface FeedGroupResponse { + created_at: Date; - members?: FeedMemberPayload[]; + group_id: string; - custom?: Record; -} + id: string; -export interface FeedMember { - created_at: Date; + updated_at: Date; - role: string; + default_visibility?: string; - status: string; + activity_analysers?: ActivityAnalyserConfig[]; - updated_at: Date; + activity_selectors?: ActivitySelectorConfig[]; - user: UserResponse; + aggregation?: AggregationConfig; - request?: boolean; + custom?: Record; - request_accepted_at?: Date; + notification?: NotificationConfig; - request_rejected_at?: Date; + ranking?: RankingConfig; + + stories?: StoriesConfig; +} + +export interface FeedInput { + visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; + + members?: FeedMemberRequest[]; custom?: Record; } -export interface FeedMemberPayload { +export interface FeedMemberRequest { user_id: string; request?: boolean; @@ -980,72 +1048,76 @@ export interface FeedMemberPayload { custom?: Record; } -export interface FeedPayload { - feed_group_id: string; +export interface FeedMemberResponse { + created_at: Date; - feed_id: string; + role: string; - owner_id?: string; + status: string; + + updated_at: Date; + + user: UserResponse; + + request?: boolean; - visibility?: 'public' | 'visible' | 'followers' | 'private' | 'restricted'; + request_accepted_at?: Date; - members?: FeedMemberPayload[]; + request_rejected_at?: Date; custom?: Record; } -export interface FeedUpdatedEvent { - created_at: Date; - - fid: string; +export interface FeedRequest { + feed_group_id: string; - custom: Record; + feed_id: string; - feed: Feed; + created_by_id?: string; - user: UserResponseCommonFields; + visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; - type: string; + members?: FeedMemberRequest[]; - received_at?: Date; + custom?: Record; } -export interface Follow { +export interface FeedResponse { created_at: Date; - push_preference: string; + fid: string; - request: boolean; + follower_count: number; - source_fid: string; + following_count: number; - status: string; + group_id: string; - target_fid: string; + id: string; - updated_at: Date; + member_count: number; - source_feed: Feed; + pin_count: number; - target_feed: Feed; + updated_at: Date; - request_accepted_at?: Date; + created_by: UserResponse; - request_rejected_at?: Date; + deleted_at?: Date; - role?: string; + visibility?: string; custom?: Record; } -export interface FollowAddedEvent { +export interface FeedUpdatedEvent { created_at: Date; fid: string; custom: Record; - follow: Follow; + feed: FeedResponse; type: string; @@ -1054,42 +1126,70 @@ export interface FollowAddedEvent { user?: UserResponseCommonFields; } -export interface FollowManyRequest { - follows: FollowPayload[]; +export interface FeedViewResponse { + feed_group_id: string; + + view_id: string; + + last_used_at?: Date; + + activity_selectors?: ActivitySelectorConfig[]; + + aggregation?: AggregationConfig; + + ranking?: RankingConfig; +} + +export interface Field { + short: boolean; + + title: string; + + value: string; +} + +export interface FollowBatchRequest { + follows: FollowRequest[]; } -export interface FollowManyResponse { +export interface FollowBatchResponse { duration: string; - follows: Follow[]; + follows: FollowResponse[]; } -export interface FollowPayload { - source: string; +export interface FollowCreatedEvent { + created_at: Date; - target: string; + fid: string; - push_preference?: string; + custom: Record; - request?: boolean; + follow: FollowResponse; - custom?: Record; + type: string; + + received_at?: Date; } -export interface FollowRemovedEvent { +export interface FollowDeletedEvent { created_at: Date; fid: string; custom: Record; - follow: Follow; + follow: FollowResponse; type: string; received_at?: Date; +} - user?: UserResponseCommonFields; +export interface FollowPair { + source: string; + + target: string; } export interface FollowRequest { @@ -1099,15 +1199,29 @@ export interface FollowRequest { push_preference?: string; - request?: boolean; - custom?: Record; } export interface FollowResponse { - duration: string; + created_at: Date; + + push_preference: string; + + status: string; + + updated_at: Date; + + source_feed: FeedResponse; + + target_feed: FeedResponse; + + request_accepted_at?: Date; + + request_rejected_at?: Date; - follow: Follow; + role?: string; + + custom?: Record; } export interface FollowUpdatedEvent { @@ -1117,25 +1231,23 @@ export interface FollowUpdatedEvent { custom: Record; - follow: Follow; + follow: FollowResponse; type: string; received_at?: Date; - - user?: UserResponseCommonFields; } export interface GetActivityResponse { duration: string; - activity: Activity; + activity: ActivityResponse; } export interface GetCommentRepliesResponse { duration: string; - comments: ThreadedComment[]; + comments: ThreadedCommentResponse[]; next?: string; @@ -1145,13 +1257,13 @@ export interface GetCommentRepliesResponse { export interface GetCommentResponse { duration: string; - comment: Comment; + comment: CommentResponse; } export interface GetCommentsResponse { duration: string; - comments: ThreadedComment[]; + comments: ThreadedCommentResponse[]; next?: string; @@ -1161,7 +1273,7 @@ export interface GetCommentsResponse { export interface GetFollowSuggestionsResponse { duration: string; - suggestions: Feed[]; + suggestions: FeedResponse[]; } export interface GetOrCreateFeedRequest { @@ -1199,25 +1311,25 @@ export interface GetOrCreateFeedRequest { export interface GetOrCreateFeedResponse { duration: string; - activities: Activity[]; + activities: ActivityResponse[]; - aggregated_activities: AggregatedActivity[]; + aggregated_activities: AggregatedActivityResponse[]; - followers: Follow[]; + followers: FollowResponse[]; - following: Follow[]; + following: FollowResponse[]; - members: FeedMember[]; + members: FeedMemberResponse[]; - pinned_activities: ActivityPin[]; + pinned_activities: ActivityPinResponse[]; - feed: Feed; + feed: FeedResponse; next?: string; prev?: string; - own_follows?: Follow[]; + own_follows?: FollowResponse[]; followers_pagination?: PagerResponse; @@ -1225,9 +1337,37 @@ export interface GetOrCreateFeedResponse { member_pagination?: PagerResponse; - notification_status?: NotificationStatus; + notification_status?: NotificationStatusResponse; + + own_membership?: FeedMemberResponse; +} + +export interface ImageData { + frames: string; + + height: string; + + size: string; + + url: string; + + width: string; +} + +export interface Images { + fixed_height: ImageData; + + fixed_height_downsampled: ImageData; - own_membership?: FeedMember; + fixed_height_still: ImageData; + + fixed_width: ImageData; + + fixed_width_downsampled: ImageData; + + fixed_width_still: ImageData; + + original: ImageData; } export interface MarkActivityRequest { @@ -1252,7 +1392,7 @@ export interface NotificationConfig { track_seen?: boolean; } -export interface NotificationStatus { +export interface NotificationStatusResponse { unread: number; unseen: number; @@ -1325,7 +1465,7 @@ export interface QueryActivitiesRequest { export interface QueryActivitiesResponse { duration: string; - activities: Activity[]; + activities: ActivityResponse[]; next?: string; @@ -1333,25 +1473,21 @@ export interface QueryActivitiesResponse { } export interface QueryCommentsRequest { + filter: Record; + limit?: number; next?: string; prev?: string; - sort?: 'first' | 'last' | 'reaction_count'; - - user_id?: string; - - activity_ids?: string[]; - - parent_ids?: string[]; + sort?: 'first' | 'last' | 'top' | 'best' | 'controversial'; } export interface QueryCommentsResponse { duration: string; - comments: Comment[]; + comments: CommentResponse[]; next?: string; @@ -1373,15 +1509,25 @@ export interface QueryFeedMembersRequest { export interface QueryFeedMembersResponse { duration: string; - members: FeedMember[]; + members: FeedMemberResponse[]; pagination: PagerResponse; } +export interface QueryFeedsRequest { + watch?: boolean; + + sort?: SortParamRequest[]; + + filter?: Record; + + pagination?: PagerRequest; +} + export interface QueryFeedsResponse { duration: string; - feeds: Feed[]; + feeds: FeedResponse[]; pager: PagerResponse; } @@ -1405,7 +1551,7 @@ export interface QueryFollowsRequest { export interface QueryFollowsResponse { duration: string; - follows: Follow[]; + follows: FollowResponse[]; next?: string; @@ -1426,7 +1572,7 @@ export interface RankingConfig { functions?: Record; } -export interface ReactionGroup { +export interface ReactionGroupResponse { count: number; first_reaction_at: Date; @@ -1445,7 +1591,7 @@ export interface RejectFeedMemberRequest { export interface RejectFeedMemberResponse { duration: string; - feed_member: FeedMember; + feed_member: FeedMemberResponse; } export interface RejectFollowRequest { @@ -1457,23 +1603,7 @@ export interface RejectFollowRequest { export interface RejectFollowResponse { duration: string; - follow: Follow; -} - -export interface RemoveActivitiesRequest { - activity_ids: string[]; - - hard_delete?: boolean; - - user_id?: string; - - user?: UserRequest; -} - -export interface RemoveActivitiesResponse { - duration: string; - - removed_activity_ids: string[]; + follow: FollowResponse; } export interface RemoveCommentReactionResponse { @@ -1494,6 +1624,22 @@ export interface Response { duration: string; } +export interface SingleFollowRequest { + source: string; + + target: string; + + push_preference?: string; + + custom?: Record; +} + +export interface SingleFollowResponse { + duration: string; + + follow: FollowResponse; +} + export interface SortParamRequest { direction?: number; @@ -1506,9 +1652,13 @@ export interface StoriesConfig { skip_watched?: boolean; } -export interface ThreadedComment { +export interface ThreadedCommentResponse { + confidence_score: number; + created_at: Date; + downvote_count: number; + id: string; object_id: string; @@ -1519,10 +1669,18 @@ export interface ThreadedComment { reply_count: number; + score: number; + + status: string; + updated_at: Date; + upvote_count: number; + user: UserResponse; + controversy_score?: number; + deleted_at?: Date; parent_id?: string; @@ -1531,41 +1689,35 @@ export interface ThreadedComment { attachments?: Attachment[]; - latest_reactions?: ActivityReaction[]; + latest_reactions?: ActivityReactionResponse[]; mentioned_user_ids?: string[]; - replies?: ThreadedComment[]; + replies?: ThreadedCommentResponse[]; custom?: Record; meta?: RepliesMeta; - reaction_groups?: Record; + reaction_groups?: Record; } export interface TypingIndicatorsResponse { enabled: boolean; } -export interface UnfollowManyRequest { - follows: UnfollowPayload[]; +export interface UnfollowBatchRequest { + follows: FollowPair[]; user_id?: string; user?: UserRequest; } -export interface UnfollowManyResponse { +export interface UnfollowBatchResponse { duration: string; } -export interface UnfollowPayload { - source_fid: string; - - target_fid: string; -} - export interface UnfollowResponse { duration: string; } @@ -1593,7 +1745,7 @@ export interface UpdateActivityPartialRequest { export interface UpdateActivityPartialResponse { duration: string; - activity: Activity; + activity: ActivityResponse; } export interface UpdateActivityRequest { @@ -1621,7 +1773,7 @@ export interface UpdateActivityRequest { export interface UpdateActivityResponse { duration: string; - activity: Activity; + activity: ActivityResponse; } export interface UpdateBookmarkRequest { @@ -1635,7 +1787,7 @@ export interface UpdateBookmarkRequest { export interface UpdateBookmarkResponse { duration: string; - bookmark: Bookmark; + bookmark: BookmarkResponse; } export interface UpdateCommentRequest { @@ -1647,7 +1799,7 @@ export interface UpdateCommentRequest { export interface UpdateCommentResponse { duration: string; - comment: Comment; + comment: CommentResponse; } export interface UpdateFeedMembersRequest { @@ -1659,17 +1811,19 @@ export interface UpdateFeedMembersRequest { prev?: string; - members?: FeedMemberPayload[]; + members?: FeedMemberRequest[]; } export interface UpdateFeedRequest { + created_by_id?: string; + custom?: Record; } export interface UpdateFeedResponse { duration: string; - feed: Feed; + feed: FeedResponse; } export interface UpdateFeedViewRequest { @@ -1683,10 +1837,14 @@ export interface UpdateFeedViewRequest { export interface UpdateFeedViewResponse { duration: string; - feed_view: CustomFeedView; + feed_view: FeedViewResponse; } export interface UpdateFollowRequest { + source: string; + + target: string; + push_preference?: string; custom?: Record; @@ -1695,7 +1853,7 @@ export interface UpdateFollowRequest { export interface UpdateFollowResponse { duration: string; - follow: Follow; + follow: FollowResponse; } export interface UpsertActivitiesRequest { @@ -1705,29 +1863,7 @@ export interface UpsertActivitiesRequest { export interface UpsertActivitiesResponse { duration: string; - activities: Activity[]; -} - -export interface UpsertFeedGroupRequest { - feed_group_id: string; - - activity_analysers?: ActivityAnalyserConfig[]; - - activity_selectors?: ActivitySelectorConfig[]; - - aggregation?: AggregationConfig; - - custom?: Record; - - notification?: NotificationConfig; - - ranking?: RankingConfig; -} - -export interface UpsertFeedGroupResponse { - duration: string; - - feed_group: FeedGroup; + activities: ActivityResponse[]; } export interface UserRequest { @@ -1856,6 +1992,6 @@ export type WebhookEvent = | ({ type: 'feed.updated' } & FeedUpdatedEvent) | ({ type: 'feed_group.changed' } & FeedGroupChangedEvent) | ({ type: 'feed_group.deleted' } & FeedGroupDeletedEvent) - | ({ type: 'follow.added' } & FollowAddedEvent) - | ({ type: 'follow.removed' } & FollowRemovedEvent) + | ({ type: 'follow.created' } & FollowCreatedEvent) + | ({ type: 'follow.deleted' } & FollowDeletedEvent) | ({ type: 'follow.updated' } & FollowUpdatedEvent); From 4d267f6ce79e9bc31ac2349c460962060a63bd27 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Fri, 30 May 2025 11:43:13 +0200 Subject: [PATCH 07/39] Fix build issues --- src/gen/models/index.ts | 63 ++++------------------------------------- 1 file changed, 5 insertions(+), 58 deletions(-) diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index c4b8915..871bc12 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -1,9 +1,14 @@ import { + Action, Attachment, DeviceResponse, + Field, + ImageData, + Images, PagerResponse, PrivacySettingsResponse, PushNotificationSettingsResponse, + ReactionGroupResponse, SortParamRequest, UserRequest, UserResponse, @@ -104,18 +109,6 @@ export interface AWSRekognitionRule { min_confidence: number; } -export interface Action { - name: string; - - text: string; - - type: string; - - style?: string; - - value?: string; -} - export interface ActionLog { created_at: Date; @@ -3496,14 +3489,6 @@ export interface FeedsModerationTemplateConfig { data_types: Record; } -export interface Field { - short: boolean; - - title: string; - - value: string; -} - export interface FileUploadConfig { size_limit: number; @@ -4180,18 +4165,6 @@ export interface HuaweiConfigFields { secret?: string; } -export interface ImageData { - frames: string; - - height: string; - - size: string; - - url: string; - - width: string; -} - export interface ImageSize { crop?: 'top' | 'bottom' | 'left' | 'right' | 'center'; @@ -4220,22 +4193,6 @@ export interface ImageUploadResponse { upload_sizes?: ImageSize[]; } -export interface Images { - fixed_height: ImageData; - - fixed_height_downsampled: ImageData; - - fixed_height_still: ImageData; - - fixed_width: ImageData; - - fixed_width_downsampled: ImageData; - - fixed_width_still: ImageData; - - original: ImageData; -} - export interface ImportTask { created_at: Date; @@ -6648,16 +6605,6 @@ export interface ReactionDeletedEvent { user?: User; } -export interface ReactionGroupResponse { - count: number; - - first_reaction_at: Date; - - last_reaction_at: Date; - - sum_scores: number; -} - export interface ReactionNewEvent { channel_id: string; From b0f28303ec4bd63dad6002f85d9ed9dca3c868fc Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Mon, 2 Jun 2025 13:26:14 +0200 Subject: [PATCH 08/39] Export StreamFeed from node sdk --- index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/index.ts b/index.ts index 9cc497c..6060dcb 100644 --- a/index.ts +++ b/index.ts @@ -5,3 +5,5 @@ export * from './src/StreamChannel'; export * from './src/StreamVideoClient'; export * from './src/gen-feeds/models'; export * from './src/gen/models'; +export * from './src/StreamFeedsClient'; +export * from './src/StreamFeed'; From a3429e13da4a44717a94391b5a0d9bc3c42477f0 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Mon, 2 Jun 2025 15:29:00 +0200 Subject: [PATCH 09/39] Update to latest open api spec --- src/gen-feeds/feeds/FeedsApi.ts | 5 +++-- src/gen-feeds/models/index.ts | 4 ++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts index 3c5dbc1..8af7fb7 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -1002,6 +1002,7 @@ export class FeedsApi { feed_group_id: request?.feed_group_id, }; const body = { + view_id: request?.view_id, activity_selectors: request?.activity_selectors, aggregation: request?.aggregation, ranking: request?.ranking, @@ -1046,11 +1047,11 @@ export class FeedsApi { } async updateFeedView( - request: UpdateFeedViewRequest & { feed_group_id: string; view_id: string }, + request: UpdateFeedViewRequest & { view_id: string; feed_group_id: string }, ): Promise> { const pathParams = { - feed_group_id: request?.feed_group_id, view_id: request?.view_id, + feed_group_id: request?.feed_group_id, }; const body = { activity_selectors: request?.activity_selectors, diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index 50716d8..592bd57 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -777,6 +777,8 @@ export interface CreateFeedGroupResponse { } export interface CreateFeedViewRequest { + view_id: string; + activity_selectors?: ActivitySelectorConfig[]; aggregation?: AggregationConfig; @@ -1329,6 +1331,8 @@ export interface GetOrCreateFeedResponse { prev?: string; + capabilities?: string[]; + own_follows?: FollowResponse[]; followers_pagination?: PagerResponse; From ba346574c1f9eed0f6c0b766c6a0d3de227f924d Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 5 Jun 2025 14:25:27 +0200 Subject: [PATCH 10/39] Update open api spec --- src/gen-feeds/feeds/FeedApi.ts | 27 +- src/gen-feeds/feeds/FeedsApi.ts | 502 +++++++++++++++++++-- src/gen-feeds/model-decoders/decoders.ts | 210 +++++++-- src/gen-feeds/models/index.ts | 543 ++++++++++++++++++++--- src/gen/chat/ChatApi.ts | 30 +- src/gen/models/index.ts | 274 +----------- 6 files changed, 1139 insertions(+), 447 deletions(-) diff --git a/src/gen-feeds/feeds/FeedApi.ts b/src/gen-feeds/feeds/FeedApi.ts index 169316d..13bf4f3 100644 --- a/src/gen-feeds/feeds/FeedApi.ts +++ b/src/gen-feeds/feeds/FeedApi.ts @@ -1,7 +1,7 @@ import { StreamResponse, FeedsApi } from '../../gen-imports'; import { - AcceptFeedMemberRequest, - AcceptFeedMemberResponse, + AcceptFeedMemberInviteRequest, + AcceptFeedMemberInviteResponse, DeleteFeedResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, @@ -10,11 +10,12 @@ import { PinActivityResponse, QueryFeedMembersRequest, QueryFeedMembersResponse, - RejectFeedMemberRequest, - RejectFeedMemberResponse, + RejectFeedMemberInviteRequest, + RejectFeedMemberInviteResponse, Response, UnpinActivityResponse, UpdateFeedMembersRequest, + UpdateFeedMembersResponse, UpdateFeedRequest, UpdateFeedResponse, } from '../models'; @@ -88,7 +89,7 @@ export class FeedApi { updateFeedMembers( request: UpdateFeedMembersRequest, - ): Promise> { + ): Promise> { return this.feedsApi.updateFeedMembers({ feed_id: this.id, feed_group_id: this.group, @@ -96,10 +97,10 @@ export class FeedApi { }); } - acceptFeedMember( - request: AcceptFeedMemberRequest, - ): Promise> { - return this.feedsApi.acceptFeedMember({ + acceptFeedMemberInvite( + request?: AcceptFeedMemberInviteRequest, + ): Promise> { + return this.feedsApi.acceptFeedMemberInvite({ feed_id: this.id, feed_group_id: this.group, ...request, @@ -116,10 +117,10 @@ export class FeedApi { }); } - rejectFeedMember( - request: RejectFeedMemberRequest, - ): Promise> { - return this.feedsApi.rejectFeedMember({ + rejectFeedMemberInvite( + request?: RejectFeedMemberInviteRequest, + ): Promise> { + return this.feedsApi.rejectFeedMemberInvite({ feed_id: this.id, feed_group_id: this.group, ...request, diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts index 8af7fb7..b2cd26c 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -1,7 +1,7 @@ import { ApiClient, StreamResponse } from '../../gen-imports'; import { - AcceptFeedMemberRequest, - AcceptFeedMemberResponse, + AcceptFeedMemberInviteRequest, + AcceptFeedMemberInviteResponse, AcceptFollowRequest, AcceptFollowResponse, AddActivityRequest, @@ -16,17 +16,21 @@ import { AddCommentsBatchResponse, AddReactionRequest, AddReactionResponse, + CastPollVoteRequest, CreateFeedGroupRequest, CreateFeedGroupResponse, CreateFeedViewRequest, CreateFeedViewResponse, - CreateManyFeedsRequest, - CreateManyFeedsResponse, + CreateFeedsBatchRequest, + CreateFeedsBatchResponse, + CreatePollOptionRequest, + CreatePollRequest, DeleteActivitiesRequest, DeleteActivitiesResponse, DeleteActivityReactionResponse, DeleteActivityResponse, DeleteBookmarkResponse, + DeleteCommentReactionResponse, DeleteCommentResponse, DeleteFeedGroupResponse, DeleteFeedResponse, @@ -45,8 +49,16 @@ import { MarkActivityRequest, PinActivityRequest, PinActivityResponse, + PollOptionResponse, + PollResponse, + PollVoteResponse, + PollVotesResponse, QueryActivitiesRequest, QueryActivitiesResponse, + QueryActivityReactionsRequest, + QueryActivityReactionsResponse, + QueryCommentReactionsRequest, + QueryCommentReactionsResponse, QueryCommentsRequest, QueryCommentsResponse, QueryFeedMembersRequest, @@ -55,11 +67,13 @@ import { QueryFeedsResponse, QueryFollowsRequest, QueryFollowsResponse, - RejectFeedMemberRequest, - RejectFeedMemberResponse, + QueryPollVotesRequest, + QueryPollsRequest, + QueryPollsResponse, + RejectFeedMemberInviteRequest, + RejectFeedMemberInviteResponse, RejectFollowRequest, RejectFollowResponse, - RemoveCommentReactionResponse, Response, SingleFollowRequest, SingleFollowResponse, @@ -76,12 +90,16 @@ import { UpdateCommentRequest, UpdateCommentResponse, UpdateFeedMembersRequest, + UpdateFeedMembersResponse, UpdateFeedRequest, UpdateFeedResponse, UpdateFeedViewRequest, UpdateFeedViewResponse, UpdateFollowRequest, UpdateFollowResponse, + UpdatePollOptionRequest, + UpdatePollPartialRequest, + UpdatePollRequest, UpsertActivitiesRequest, UpsertActivitiesResponse, } from '../models'; @@ -345,23 +363,59 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async deleteActivityReaction(request: { + async castPollVote( + request: CastPollVoteRequest & { activity_id: string; poll_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + poll_id: request?.poll_id, + }; + const body = { + user_id: request?.user_id, + user: request?.user, + vote: request?.vote, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/activities/{activity_id}/polls/{poll_id}/vote', + pathParams, + undefined, + body, + ); + + decoders.PollVoteResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async removePollVote(request: { activity_id: string; - }): Promise> { + poll_id: string; + vote_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; const pathParams = { activity_id: request?.activity_id, + poll_id: request?.poll_id, + vote_id: request?.vote_id, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >( 'DELETE', - '/feeds/v3/activities/{activity_id}/reactions', + '/feeds/v3/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}', pathParams, - undefined, + queryParams, ); - decoders.DeleteActivityReactionResponse?.(response.body); + decoders.PollVoteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -394,6 +448,58 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async queryActivityReactions( + request: QueryActivityReactionsRequest & { activity_id: string }, + ): Promise> { + const pathParams = { + activity_id: request?.activity_id, + }; + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/feeds/v3/activities/{activity_id}/reactions/query', + pathParams, + undefined, + body, + ); + + decoders.QueryActivityReactionsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteActivityReaction(request: { + activity_id: string; + type: string; + }): Promise> { + const pathParams = { + activity_id: request?.activity_id, + type: request?.type, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/activities/{activity_id}/reactions/{type}', + pathParams, + undefined, + ); + + decoders.DeleteActivityReactionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async getComments(request: { object_id: string; object_type: string; @@ -534,51 +640,82 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async removeCommentReaction(request: { - comment_id: string; - }): Promise> { + async addCommentReaction( + request: AddCommentReactionRequest & { comment_id: string }, + ): Promise> { const pathParams = { comment_id: request?.comment_id, }; + const body = { + type: request?.type, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >( - 'DELETE', + 'POST', '/feeds/v3/comments/{comment_id}/reactions', pathParams, undefined, + body, ); - decoders.RemoveCommentReactionResponse?.(response.body); + decoders.AddCommentReactionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } - async addCommentReaction( - request: AddCommentReactionRequest & { comment_id: string }, - ): Promise> { + async queryCommentReactions( + request: QueryCommentReactionsRequest & { comment_id: string }, + ): Promise> { const pathParams = { comment_id: request?.comment_id, }; const body = { - type: request?.type, - user_id: request?.user_id, - custom: request?.custom, - user: request?.user, + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >( 'POST', - '/feeds/v3/comments/{comment_id}/reactions', + '/feeds/v3/comments/{comment_id}/reactions/query', pathParams, undefined, body, ); - decoders.AddCommentReactionResponse?.(response.body); + decoders.QueryCommentReactionsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async removeCommentReaction(request: { + comment_id: string; + type: string; + }): Promise> { + const pathParams = { + comment_id: request?.comment_id, + type: request?.type, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/feeds/v3/comments/{comment_id}/reactions/{type}', + pathParams, + undefined, + ); + + decoders.DeleteCommentReactionResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -853,7 +990,7 @@ export class FeedsApi { feed_group_id: string; feed_id: string; }, - ): Promise> { + ): Promise> { const pathParams = { feed_group_id: request?.feed_group_id, feed_id: request?.feed_id, @@ -866,7 +1003,9 @@ export class FeedsApi { members: request?.members, }; - const response = await this.apiClient.sendRequest>( + const response = await this.apiClient.sendRequest< + StreamResponse + >( 'PATCH', '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members', pathParams, @@ -874,27 +1013,28 @@ export class FeedsApi { body, ); - decoders.Response?.(response.body); + decoders.UpdateFeedMembersResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } - async acceptFeedMember( - request: AcceptFeedMemberRequest & { + async acceptFeedMemberInvite( + request: AcceptFeedMemberInviteRequest & { feed_id: string; feed_group_id: string; }, - ): Promise> { + ): Promise> { const pathParams = { feed_id: request?.feed_id, feed_group_id: request?.feed_group_id, }; const body = { user_id: request?.user_id, + user: request?.user, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >( 'POST', '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept', @@ -903,7 +1043,7 @@ export class FeedsApi { body, ); - decoders.AcceptFeedMemberResponse?.(response.body); + decoders.AcceptFeedMemberInviteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -941,22 +1081,23 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } - async rejectFeedMember( - request: RejectFeedMemberRequest & { + async rejectFeedMemberInvite( + request: RejectFeedMemberInviteRequest & { feed_group_id: string; feed_id: string; }, - ): Promise> { + ): Promise> { const pathParams = { feed_group_id: request?.feed_group_id, feed_id: request?.feed_id, }; const body = { user_id: request?.user_id, + user: request?.user, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >( 'POST', '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject', @@ -965,7 +1106,7 @@ export class FeedsApi { body, ); - decoders.RejectFeedMemberResponse?.(response.body); + decoders.RejectFeedMemberInviteResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1075,17 +1216,17 @@ export class FeedsApi { } async createFeedsBatch( - request: CreateManyFeedsRequest, - ): Promise> { + request: CreateFeedsBatchRequest, + ): Promise> { const body = { feeds: request?.feeds, }; const response = await this.apiClient.sendRequest< - StreamResponse + StreamResponse >('POST', '/feeds/v3/feeds/batch', undefined, undefined, body); - decoders.CreateManyFeedsResponse?.(response.body); + decoders.CreateFeedsBatchResponse?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1153,6 +1294,7 @@ export class FeedsApi { const body = { source_fid: request?.source_fid, target_fid: request?.target_fid, + follower_role: request?.follower_role, }; const response = await this.apiClient.sendRequest< @@ -1237,6 +1379,274 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async createPoll( + request: CreatePollRequest, + ): Promise> { + const body = { + name: request?.name, + allow_answers: request?.allow_answers, + allow_user_suggested_options: request?.allow_user_suggested_options, + description: request?.description, + enforce_unique_vote: request?.enforce_unique_vote, + id: request?.id, + is_closed: request?.is_closed, + max_votes_allowed: request?.max_votes_allowed, + user_id: request?.user_id, + voting_visibility: request?.voting_visibility, + options: request?.options, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/polls', undefined, undefined, body); + + decoders.PollResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updatePoll( + request: UpdatePollRequest, + ): Promise> { + const body = { + id: request?.id, + name: request?.name, + allow_answers: request?.allow_answers, + allow_user_suggested_options: request?.allow_user_suggested_options, + description: request?.description, + enforce_unique_vote: request?.enforce_unique_vote, + is_closed: request?.is_closed, + max_votes_allowed: request?.max_votes_allowed, + user_id: request?.user_id, + voting_visibility: request?.voting_visibility, + options: request?.options, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PUT', '/feeds/v3/polls', undefined, undefined, body); + + decoders.PollResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryPolls( + request?: QueryPollsRequest & { user_id?: string }, + ): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/polls/query', undefined, queryParams, body); + + decoders.QueryPollsResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deletePoll(request: { + poll_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/feeds/v3/polls/{poll_id}', + pathParams, + queryParams, + ); + + decoders.Response?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getPoll(request: { + poll_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/feeds/v3/polls/{poll_id}', pathParams, queryParams); + + decoders.PollResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updatePollPartial( + request: UpdatePollPartialRequest & { poll_id: string }, + ): Promise> { + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + user_id: request?.user_id, + unset: request?.unset, + set: request?.set, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PATCH', '/feeds/v3/polls/{poll_id}', pathParams, undefined, body); + + decoders.PollResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createPollOption( + request: CreatePollOptionRequest & { poll_id: string }, + ): Promise> { + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + text: request?.text, + position: request?.position, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/polls/{poll_id}/options', pathParams, undefined, body); + + decoders.PollOptionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updatePollOption( + request: UpdatePollOptionRequest & { poll_id: string }, + ): Promise> { + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + id: request?.id, + text: request?.text, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PUT', '/feeds/v3/polls/{poll_id}/options', pathParams, undefined, body); + + decoders.PollOptionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deletePollOption(request: { + poll_id: string; + option_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + option_id: request?.option_id, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/feeds/v3/polls/{poll_id}/options/{option_id}', + pathParams, + queryParams, + ); + + decoders.Response?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getPollOption(request: { + poll_id: string; + option_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + option_id: request?.option_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'GET', + '/feeds/v3/polls/{poll_id}/options/{option_id}', + pathParams, + queryParams, + ); + + decoders.PollOptionResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryPollVotes( + request: QueryPollVotesRequest & { poll_id: string; user_id?: string }, + ): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/feeds/v3/polls/{poll_id}/votes', pathParams, queryParams, body); + + decoders.PollVotesResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async unfollowBatch( request: UnfollowBatchRequest, ): Promise> { diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts index 2a170e0..0b83434 100644 --- a/src/gen-feeds/model-decoders/decoders.ts +++ b/src/gen-feeds/model-decoders/decoders.ts @@ -34,9 +34,9 @@ const decode = (typeMappings: TypeMapping, input?: Record) => { return input; }; -decoders.AcceptFeedMemberResponse = (input?: Record) => { +decoders.AcceptFeedMemberInviteResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed_member: { type: 'FeedMemberResponse', isSingle: true }, + member: { type: 'FeedMemberResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -85,7 +85,9 @@ decoders.ActivityReactionAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - reaction: { type: 'ActivityReactionResponse', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; @@ -96,20 +98,11 @@ decoders.ActivityReactionDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - reaction: { type: 'ActivityReactionResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityReactionResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - updated_at: { type: 'DatetimeType', isSingle: true }, + reaction: { type: 'FeedsReactionResponse', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; @@ -133,13 +126,13 @@ decoders.ActivityResponse = (input?: Record) => { comments: { type: 'CommentResponse', isSingle: false }, - latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, mentioned_users: { type: 'UserResponse', isSingle: false }, own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, - own_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + own_reactions: { type: 'FeedsReactionResponse', isSingle: false }, reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, @@ -154,6 +147,8 @@ decoders.ActivityResponse = (input?: Record) => { current_feed: { type: 'FeedResponse', isSingle: true }, parent: { type: 'BaseActivityResponse', isSingle: true }, + + poll: { type: 'PollResponseData', isSingle: true }, }; return decode(typeMappings, input); }; @@ -192,7 +187,9 @@ decoders.AddBookmarkResponse = (input?: Record) => { decoders.AddCommentReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { - reaction: { type: 'ActivityReactionResponse', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -213,7 +210,9 @@ decoders.AddCommentsBatchResponse = (input?: Record) => { decoders.AddReactionResponse = (input?: Record) => { const typeMappings: TypeMapping = { - reaction: { type: 'ActivityReactionResponse', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -237,13 +236,13 @@ decoders.BaseActivityResponse = (input?: Record) => { comments: { type: 'CommentResponse', isSingle: false }, - latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, mentioned_users: { type: 'UserResponse', isSingle: false }, own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, - own_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + own_reactions: { type: 'FeedsReactionResponse', isSingle: false }, reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, @@ -256,6 +255,8 @@ decoders.BaseActivityResponse = (input?: Record) => { expires_at: { type: 'DatetimeType', isSingle: true }, current_feed: { type: 'FeedResponse', isSingle: true }, + + poll: { type: 'PollResponseData', isSingle: true }, }; return decode(typeMappings, input); }; @@ -339,17 +340,23 @@ decoders.CommentReactionAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - reaction: { type: 'ActivityReactionResponse', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CommentReactionRemovedEvent = (input?: Record) => { +decoders.CommentReactionDeletedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); @@ -361,11 +368,13 @@ decoders.CommentResponse = (input?: Record) => { updated_at: { type: 'DatetimeType', isSingle: true }, + mentioned_users: { type: 'UserResponse', isSingle: false }, + user: { type: 'UserResponse', isSingle: true }, deleted_at: { type: 'DatetimeType', isSingle: true }, - latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, }; @@ -397,13 +406,22 @@ decoders.CreateFeedViewResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CreateManyFeedsResponse = (input?: Record) => { +decoders.CreateFeedsBatchResponse = (input?: Record) => { const typeMappings: TypeMapping = { feeds: { type: 'FeedResponse', isSingle: false }, }; return decode(typeMappings, input); }; +decoders.DeleteActivityReactionResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.DeleteBookmarkResponse = (input?: Record) => { const typeMappings: TypeMapping = { bookmark: { type: 'BookmarkResponse', isSingle: true }, @@ -411,6 +429,15 @@ decoders.DeleteBookmarkResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.DeleteCommentReactionResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.DeviceResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -426,7 +453,7 @@ decoders.ExportFeedUserDataResponse = (input?: Record) => { comments: { type: 'CommentResponse', isSingle: false }, - reactions: { type: 'ActivityReactionResponse', isSingle: false }, + reactions: { type: 'FeedsReactionResponse', isSingle: false }, }; return decode(typeMappings, input); }; @@ -482,6 +509,26 @@ decoders.FeedGroupResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.FeedMemberAddedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'FeedMemberResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedMemberRemovedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.FeedMemberResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -490,9 +537,20 @@ decoders.FeedMemberResponse = (input?: Record) => { user: { type: 'UserResponse', isSingle: true }, - request_accepted_at: { type: 'DatetimeType', isSingle: true }, + invite_accepted_at: { type: 'DatetimeType', isSingle: true }, - request_rejected_at: { type: 'DatetimeType', isSingle: true }, + invite_rejected_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.FeedMemberUpdatedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'FeedMemberResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; @@ -530,6 +588,17 @@ decoders.FeedViewResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.FeedsReactionResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.FollowBatchResponse = (input?: Record) => { const typeMappings: TypeMapping = { follows: { type: 'FollowResponse', isSingle: false }, @@ -664,6 +733,53 @@ decoders.PinActivityResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.PollResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + poll: { type: 'PollResponseData', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.PollResponseData = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + latest_answers: { type: 'PollVoteResponseData', isSingle: false }, + + own_votes: { type: 'PollVoteResponseData', isSingle: false }, + + created_by: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.PollVoteResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + vote: { type: 'PollVoteResponseData', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.PollVoteResponseData = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders.PollVotesResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + votes: { type: 'PollVoteResponseData', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.PushNotificationSettingsResponse = (input?: Record) => { const typeMappings: TypeMapping = { disabled_until: { type: 'DatetimeType', isSingle: true }, @@ -678,6 +794,20 @@ decoders.QueryActivitiesResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.QueryActivityReactionsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.QueryCommentReactionsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.QueryCommentsResponse = (input?: Record) => { const typeMappings: TypeMapping = { comments: { type: 'CommentResponse', isSingle: false }, @@ -692,6 +822,13 @@ decoders.QueryFollowsResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.QueryPollsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + polls: { type: 'PollResponseData', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.ReactionGroupResponse = (input?: Record) => { const typeMappings: TypeMapping = { first_reaction_at: { type: 'DatetimeType', isSingle: true }, @@ -701,9 +838,9 @@ decoders.ReactionGroupResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.RejectFeedMemberResponse = (input?: Record) => { +decoders.RejectFeedMemberInviteResponse = (input?: Record) => { const typeMappings: TypeMapping = { - feed_member: { type: 'FeedMemberResponse', isSingle: true }, + member: { type: 'FeedMemberResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -728,11 +865,13 @@ decoders.ThreadedCommentResponse = (input?: Record) => { updated_at: { type: 'DatetimeType', isSingle: true }, + mentioned_users: { type: 'UserResponse', isSingle: false }, + user: { type: 'UserResponse', isSingle: true }, deleted_at: { type: 'DatetimeType', isSingle: true }, - latest_reactions: { type: 'ActivityReactionResponse', isSingle: false }, + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, replies: { type: 'ThreadedCommentResponse', isSingle: false }, @@ -769,6 +908,15 @@ decoders.UpdateCommentResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UpdateFeedMembersResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + added: { type: 'FeedMemberResponse', isSingle: false }, + + updated: { type: 'FeedMemberResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.UpdateFeedResponse = (input?: Record) => { const typeMappings: TypeMapping = { feed: { type: 'FeedResponse', isSingle: true }, diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index 592bd57..a47991f 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -16,20 +16,24 @@ export interface APIError { exception_fields?: Record; } -export interface AcceptFeedMemberRequest { - user_id: string; +export interface AcceptFeedMemberInviteRequest { + user_id?: string; + + user?: UserRequest; } -export interface AcceptFeedMemberResponse { +export interface AcceptFeedMemberInviteResponse { duration: string; - feed_member: FeedMemberResponse; + member: FeedMemberResponse; } export interface AcceptFollowRequest { source_fid: string; target_fid: string; + + follower_role?: string; } export interface AcceptFollowResponse { @@ -107,9 +111,11 @@ export interface ActivityReactionAddedEvent { fid: string; + activity: ActivityResponse; + custom: Record; - reaction: ActivityReactionResponse; + reaction: FeedsReactionResponse; type: string; @@ -123,9 +129,11 @@ export interface ActivityReactionDeletedEvent { fid: string; + activity: ActivityResponse; + custom: Record; - reaction: ActivityReactionResponse; + reaction: FeedsReactionResponse; type: string; @@ -134,20 +142,6 @@ export interface ActivityReactionDeletedEvent { user?: UserResponseCommonFields; } -export interface ActivityReactionResponse { - activity_id: string; - - created_at: Date; - - type: string; - - updated_at: Date; - - user: UserResponse; - - custom?: Record; -} - export interface ActivityRemovedFromFeedEvent { created_at: Date; @@ -229,13 +223,13 @@ export interface ActivityResponse { interest_tags: string[]; - latest_reactions: ActivityReactionResponse[]; + latest_reactions: FeedsReactionResponse[]; mentioned_users: UserResponse[]; own_bookmarks: BookmarkResponse[]; - own_reactions: ActivityReactionResponse[]; + own_reactions: FeedsReactionResponse[]; custom: Record; @@ -259,7 +253,11 @@ export interface ActivityResponse { location?: ActivityLocation; + moderation?: ModerationV2Response; + parent?: BaseActivityResponse; + + poll?: PollResponseData; } export interface ActivitySelectorConfig { @@ -355,11 +353,11 @@ export interface AddCommentReactionRequest { } export interface AddCommentReactionResponse { - comment_id: string; - duration: string; - reaction: ActivityReactionResponse; + comment: CommentResponse; + + reaction: FeedsReactionResponse; } export interface AddCommentRequest { @@ -413,7 +411,9 @@ export interface AddReactionRequest { export interface AddReactionResponse { duration: string; - reaction: ActivityReactionResponse; + activity: ActivityResponse; + + reaction: FeedsReactionResponse; } export interface AggregatedActivityResponse { @@ -519,13 +519,13 @@ export interface BaseActivityResponse { interest_tags: string[]; - latest_reactions: ActivityReactionResponse[]; + latest_reactions: FeedsReactionResponse[]; mentioned_users: UserResponse[]; own_bookmarks: BookmarkResponse[]; - own_reactions: ActivityReactionResponse[]; + own_reactions: FeedsReactionResponse[]; custom: Record; @@ -549,7 +549,9 @@ export interface BaseActivityResponse { location?: ActivityLocation; - moderation?: Moderation; + moderation?: ModerationV2Response; + + poll?: PollResponseData; } export interface BookmarkAddedEvent { @@ -626,6 +628,14 @@ export interface BookmarkUpdatedEvent { user?: UserResponseCommonFields; } +export interface CastPollVoteRequest { + user_id?: string; + + user?: UserRequest; + + vote?: VoteData; +} + export interface CommentAddedEvent { created_at: Date; @@ -659,15 +669,15 @@ export interface CommentDeletedEvent { } export interface CommentReactionAddedEvent { - comment_id: string; - created_at: Date; fid: string; + comment: CommentResponse; + custom: Record; - reaction: ActivityReactionResponse; + reaction: FeedsReactionResponse; type: string; @@ -676,17 +686,17 @@ export interface CommentReactionAddedEvent { user?: UserResponseCommonFields; } -export interface CommentReactionRemovedEvent { - comment_id: string; - +export interface CommentReactionDeletedEvent { created_at: Date; fid: string; - user_id: string; + comment: CommentResponse; custom: Record; + reaction: FeedsReactionResponse; + type: string; received_at?: Date; @@ -717,6 +727,8 @@ export interface CommentResponse { upvote_count: number; + mentioned_users: UserResponse[]; + user: UserResponse; controversy_score?: number; @@ -729,12 +741,12 @@ export interface CommentResponse { attachments?: Attachment[]; - latest_reactions?: ActivityReactionResponse[]; - - mentioned_user_ids?: string[]; + latest_reactions?: FeedsReactionResponse[]; custom?: Record; + moderation?: ModerationV2Response; + reaction_groups?: Record; } @@ -792,16 +804,56 @@ export interface CreateFeedViewResponse { feed_view: FeedViewResponse; } -export interface CreateManyFeedsRequest { +export interface CreateFeedsBatchRequest { feeds: FeedRequest[]; } -export interface CreateManyFeedsResponse { +export interface CreateFeedsBatchResponse { duration: string; feeds: FeedResponse[]; } +export interface CreatePollOptionRequest { + text: string; + + position?: number; + + user_id?: string; + + custom?: Record; + + user?: UserRequest; +} + +export interface CreatePollRequest { + name: string; + + allow_answers?: boolean; + + allow_user_suggested_options?: boolean; + + description?: string; + + enforce_unique_vote?: boolean; + + id?: string; + + is_closed?: boolean; + + max_votes_allowed?: number; + + user_id?: string; + + voting_visibility?: 'anonymous' | 'public'; + + options?: PollOptionInput[]; + + custom?: Record; + + user?: UserRequest; +} + export interface DecayFunctionConfig { base?: string; @@ -833,13 +885,11 @@ export interface DeleteActivitiesResponse { } export interface DeleteActivityReactionResponse { - activity_id: string; - duration: string; - type: string; + activity: ActivityResponse; - user_id: string; + reaction: FeedsReactionResponse; } export interface DeleteActivityResponse { @@ -852,6 +902,14 @@ export interface DeleteBookmarkResponse { bookmark: BookmarkResponse; } +export interface DeleteCommentReactionResponse { + duration: string; + + comment: CommentResponse; + + reaction: FeedsReactionResponse; +} + export interface DeleteCommentResponse { duration: string; } @@ -909,7 +967,7 @@ export interface ExportFeedUserDataResponse { comments: CommentResponse[]; - reactions: ActivityReactionResponse[]; + reactions: FeedsReactionResponse[]; } export interface FeedCreatedEvent { @@ -1040,10 +1098,42 @@ export interface FeedInput { custom?: Record; } +export interface FeedMemberAddedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + member: FeedMemberResponse; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface FeedMemberRemovedEvent { + created_at: Date; + + fid: string; + + member_id: string; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + export interface FeedMemberRequest { user_id: string; - request?: boolean; + invite?: boolean; role?: string; @@ -1055,21 +1145,35 @@ export interface FeedMemberResponse { role: string; - status: string; + status: 'member' | 'pending' | 'rejected'; updated_at: Date; user: UserResponse; - request?: boolean; - - request_accepted_at?: Date; + invite_accepted_at?: Date; - request_rejected_at?: Date; + invite_rejected_at?: Date; custom?: Record; } +export interface FeedMemberUpdatedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + member: FeedMemberResponse; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + export interface FeedRequest { feed_group_id: string; @@ -1142,6 +1246,22 @@ export interface FeedViewResponse { ranking?: RankingConfig; } +export interface FeedsReactionResponse { + activity_id: string; + + created_at: Date; + + type: string; + + updated_at: Date; + + user: UserResponse; + + comment_id?: string; + + custom?: Record; +} + export interface Field { short: boolean; @@ -1199,7 +1319,7 @@ export interface FollowRequest { target: string; - push_preference?: string; + push_preference?: 'all' | 'none'; custom?: Record; } @@ -1207,9 +1327,11 @@ export interface FollowRequest { export interface FollowResponse { created_at: Date; - push_preference: string; + follower_role: string; - status: string; + push_preference: 'all' | 'none'; + + status: 'accepted' | 'pending' | 'rejected'; updated_at: Date; @@ -1221,8 +1343,6 @@ export interface FollowResponse { request_rejected_at?: Date; - role?: string; - custom?: Record; } @@ -1388,7 +1508,21 @@ export interface MarkActivityRequest { user?: UserRequest; } -export interface Moderation {} +export interface ModerationV2Response { + action: string; + + original_text: string; + + blocklist_matched?: string; + + platform_circumvented?: boolean; + + semantic_filter_matched?: string; + + image_harms?: string[]; + + text_harms?: string[]; +} export interface NotificationConfig { track_read?: boolean; @@ -1438,6 +1572,120 @@ export interface PinActivityResponse { user_id: string; } +export interface PollOptionInput { + text?: string; + + custom?: Record; +} + +export interface PollOptionRequest { + id: string; + + text?: string; + + custom?: Record; +} + +export interface PollOptionResponse { + duration: string; + + poll_option: PollOptionResponseData; +} + +export interface PollOptionResponseData { + id: string; + + text: string; + + custom: Record; +} + +export interface PollResponse { + duration: string; + + poll: PollResponseData; +} + +export interface PollResponseData { + allow_answers: boolean; + + allow_user_suggested_options: boolean; + + answers_count: number; + + created_at: Date; + + created_by_id: string; + + description: string; + + enforce_unique_vote: boolean; + + id: string; + + name: string; + + updated_at: Date; + + vote_count: number; + + voting_visibility: string; + + latest_answers: PollVoteResponseData[]; + + options: PollOptionResponseData[]; + + own_votes: PollVoteResponseData[]; + + custom: Record; + + latest_votes_by_option: Record; + + vote_counts_by_option: Record; + + is_closed?: boolean; + + max_votes_allowed?: number; + + created_by?: UserResponse; +} + +export interface PollVoteResponse { + duration: string; + + vote?: PollVoteResponseData; +} + +export interface PollVoteResponseData { + created_at: Date; + + id: string; + + option_id: string; + + poll_id: string; + + updated_at: Date; + + answer_text?: string; + + is_answer?: boolean; + + user_id?: string; + + user?: UserResponse; +} + +export interface PollVotesResponse { + duration: string; + + votes: PollVoteResponseData[]; + + next?: string; + + prev?: string; +} + export interface PrivacySettingsResponse { read_receipts?: ReadReceiptsResponse; @@ -1476,6 +1724,50 @@ export interface QueryActivitiesResponse { prev?: string; } +export interface QueryActivityReactionsRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryActivityReactionsResponse { + duration: string; + + reactions: FeedsReactionResponse[]; + + next?: string; + + prev?: string; +} + +export interface QueryCommentReactionsRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryCommentReactionsResponse { + duration: string; + + reactions: FeedsReactionResponse[]; + + next?: string; + + prev?: string; +} + export interface QueryCommentsRequest { filter: Record; @@ -1562,6 +1854,40 @@ export interface QueryFollowsResponse { prev?: string; } +export interface QueryPollVotesRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryPollsRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryPollsResponse { + duration: string; + + polls: PollResponseData[]; + + next?: string; + + prev?: string; +} + export interface RankingConfig { decay_factor?: number; @@ -1588,14 +1914,16 @@ export interface ReadReceiptsResponse { enabled: boolean; } -export interface RejectFeedMemberRequest { - user_id: string; +export interface RejectFeedMemberInviteRequest { + user_id?: string; + + user?: UserRequest; } -export interface RejectFeedMemberResponse { +export interface RejectFeedMemberInviteResponse { duration: string; - feed_member: FeedMemberResponse; + member: FeedMemberResponse; } export interface RejectFollowRequest { @@ -1610,10 +1938,6 @@ export interface RejectFollowResponse { follow: FollowResponse; } -export interface RemoveCommentReactionResponse { - duration: string; -} - export interface RepliesMeta { depth_truncated: boolean; @@ -1633,7 +1957,7 @@ export interface SingleFollowRequest { target: string; - push_preference?: string; + push_preference?: 'all' | 'none'; custom?: Record; } @@ -1681,6 +2005,8 @@ export interface ThreadedCommentResponse { upvote_count: number; + mentioned_users: UserResponse[]; + user: UserResponse; controversy_score?: number; @@ -1693,9 +2019,7 @@ export interface ThreadedCommentResponse { attachments?: Attachment[]; - latest_reactions?: ActivityReactionResponse[]; - - mentioned_user_ids?: string[]; + latest_reactions?: FeedsReactionResponse[]; replies?: ThreadedCommentResponse[]; @@ -1703,6 +2027,8 @@ export interface ThreadedCommentResponse { meta?: RepliesMeta; + moderation?: ModerationV2Response; + reaction_groups?: Record; } @@ -1807,7 +2133,7 @@ export interface UpdateCommentResponse { } export interface UpdateFeedMembersRequest { - operation: 'add' | 'remove' | 'set'; + operation: 'upsert' | 'remove' | 'set'; limit?: number; @@ -1818,6 +2144,16 @@ export interface UpdateFeedMembersRequest { members?: FeedMemberRequest[]; } +export interface UpdateFeedMembersResponse { + duration: string; + + added: FeedMemberResponse[]; + + removed_ids: string[]; + + updated: FeedMemberResponse[]; +} + export interface UpdateFeedRequest { created_by_id?: string; @@ -1849,7 +2185,7 @@ export interface UpdateFollowRequest { target: string; - push_preference?: string; + push_preference?: 'all' | 'none'; custom?: Record; } @@ -1860,6 +2196,56 @@ export interface UpdateFollowResponse { follow: FollowResponse; } +export interface UpdatePollOptionRequest { + id: string; + + text: string; + + user_id?: string; + + custom?: Record; + + user?: UserRequest; +} + +export interface UpdatePollPartialRequest { + user_id?: string; + + unset?: string[]; + + set?: Record; + + user?: UserRequest; +} + +export interface UpdatePollRequest { + id: string; + + name: string; + + allow_answers?: boolean; + + allow_user_suggested_options?: boolean; + + description?: string; + + enforce_unique_vote?: boolean; + + is_closed?: boolean; + + max_votes_allowed?: number; + + user_id?: string; + + voting_visibility?: 'anonymous' | 'public'; + + options?: PollOptionRequest[]; + + custom?: Record; + + user?: UserRequest; +} + export interface UpsertActivitiesRequest { activities: ActivityRequest[]; } @@ -1976,6 +2362,14 @@ export interface UserResponseCommonFields { teams_role?: Record; } +export interface VoteData { + answer_text?: string; + + option_id?: string; + + option?: PollOptionResponseData; +} + export type WebhookEvent = | ({ type: 'activity.added' } & ActivityAddedEvent) | ({ type: 'activity.deleted' } & ActivityDeletedEvent) @@ -1989,13 +2383,16 @@ export type WebhookEvent = | ({ type: 'comment.added' } & CommentAddedEvent) | ({ type: 'comment.deleted' } & CommentDeletedEvent) | ({ type: 'comment.reaction.added' } & CommentReactionAddedEvent) - | ({ type: 'comment.reaction.removed' } & CommentReactionRemovedEvent) + | ({ type: 'comment.reaction.deleted' } & CommentReactionDeletedEvent) | ({ type: 'comment.updated' } & CommentUpdatedEvent) | ({ type: 'feed.created' } & FeedCreatedEvent) | ({ type: 'feed.deleted' } & FeedDeletedEvent) | ({ type: 'feed.updated' } & FeedUpdatedEvent) | ({ type: 'feed_group.changed' } & FeedGroupChangedEvent) | ({ type: 'feed_group.deleted' } & FeedGroupDeletedEvent) + | ({ type: 'feed_member.added' } & FeedMemberAddedEvent) + | ({ type: 'feed_member.removed' } & FeedMemberRemovedEvent) + | ({ type: 'feed_member.updated' } & FeedMemberUpdatedEvent) | ({ type: 'follow.created' } & FollowCreatedEvent) | ({ type: 'follow.deleted' } & FollowDeletedEvent) | ({ type: 'follow.updated' } & FollowUpdatedEvent); diff --git a/src/gen/chat/ChatApi.ts b/src/gen/chat/ChatApi.ts index 16e29b5..875ff0b 100644 --- a/src/gen/chat/ChatApi.ts +++ b/src/gen/chat/ChatApi.ts @@ -1,7 +1,6 @@ import { ApiClient, StreamResponse } from '../../gen-imports'; import { CampaignResponse, - CastPollVoteRequest, ChannelGetOrCreateRequest, ChannelStateResponse, CommitMessageRequest, @@ -9,8 +8,6 @@ import { CreateChannelTypeResponse, CreateCommandRequest, CreateCommandResponse, - CreatePollOptionRequest, - CreatePollRequest, DeleteChannelResponse, DeleteChannelsRequest, DeleteChannelsResponse, @@ -48,10 +45,6 @@ import { MessageResponse, MuteChannelRequest, MuteChannelResponse, - PollOptionResponse, - PollResponse, - PollVoteResponse, - PollVotesResponse, QueryBannedUsersPayload, QueryBannedUsersResponse, QueryCampaignsRequest, @@ -65,9 +58,6 @@ import { QueryMessageFlagsResponse, QueryMessageHistoryRequest, QueryMessageHistoryResponse, - QueryPollVotesRequest, - QueryPollsRequest, - QueryPollsResponse, QueryReactionsRequest, QueryReactionsResponse, QuerySegmentTargetsRequest, @@ -110,9 +100,6 @@ import { UpdateMessagePartialResponse, UpdateMessageRequest, UpdateMessageResponse, - UpdatePollOptionRequest, - UpdatePollPartialRequest, - UpdatePollRequest, UpdateThreadPartialRequest, UpdateThreadPartialResponse, UpsertPushPreferencesRequest, @@ -120,7 +107,22 @@ import { WrappedUnreadCountsResponse, } from '../models'; import { decoders } from '../model-decoders/decoders'; -import { SortParamRequest } from '../../gen-feeds/models'; +import { + CastPollVoteRequest, + CreatePollOptionRequest, + CreatePollRequest, + PollOptionResponse, + PollResponse, + PollVoteResponse, + PollVotesResponse, + QueryPollsRequest, + QueryPollsResponse, + QueryPollVotesRequest, + SortParamRequest, + UpdatePollOptionRequest, + UpdatePollPartialRequest, + UpdatePollRequest, +} from '../../gen-feeds/models'; export class ChatApi { constructor(public readonly apiClient: ApiClient) {} diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 871bc12..9d153c6 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -5,7 +5,11 @@ import { Field, ImageData, Images, + ModerationV2Response, PagerResponse, + PollOptionRequest, + PollResponseData, + PollVoteResponseData, PrivacySettingsResponse, PushNotificationSettingsResponse, ReactionGroupResponse, @@ -1639,14 +1643,6 @@ export interface CampaignStatsResponse { stats_users_sent: number; } -export interface CastPollVoteRequest { - user_id?: string; - - user?: UserRequest; - - vote?: VoteData; -} - export interface Channel { auto_translation_language: string; @@ -2815,46 +2811,6 @@ export interface CreateImportURLResponse { upload_url: string; } -export interface CreatePollOptionRequest { - text: string; - - position?: number; - - user_id?: string; - - custom?: Record; - - user?: UserRequest; -} - -export interface CreatePollRequest { - name: string; - - allow_answers?: boolean; - - allow_user_suggested_options?: boolean; - - description?: string; - - enforce_unique_vote?: boolean; - - id?: string; - - is_closed?: boolean; - - max_votes_allowed?: number; - - user_id?: string; - - voting_visibility?: 'anonymous' | 'public'; - - options?: PollOptionInput[]; - - custom?: Record; - - user?: UserRequest; -} - export interface CreateRoleRequest { name: string; } @@ -5115,22 +5071,6 @@ export interface ModerationResponse { toxic: number; } -export interface ModerationV2Response { - action: string; - - original_text: string; - - blocklist_matched?: string; - - platform_circumvented?: boolean; - - semantic_filter_matched?: string; - - image_harms?: string[]; - - text_harms?: string[]; -} - export interface MuteChannelRequest { expiration?: number; @@ -5621,84 +5561,6 @@ export interface PollOption { custom: Record; } -export interface PollOptionInput { - text?: string; - - custom?: Record; -} - -export interface PollOptionRequest { - id: string; - - text?: string; - - custom?: Record; -} - -export interface PollOptionResponse { - duration: string; - - poll_option: PollOptionResponseData; -} - -export interface PollOptionResponseData { - id: string; - - text: string; - - custom: Record; -} - -export interface PollResponse { - duration: string; - - poll: PollResponseData; -} - -export interface PollResponseData { - allow_answers: boolean; - - allow_user_suggested_options: boolean; - - answers_count: number; - - created_at: Date; - - created_by_id: string; - - description: string; - - enforce_unique_vote: boolean; - - id: string; - - name: string; - - updated_at: Date; - - vote_count: number; - - voting_visibility: string; - - latest_answers: PollVoteResponseData[]; - - options: PollOptionResponseData[]; - - own_votes: PollVoteResponseData[]; - - custom: Record; - - latest_votes_by_option: Record; - - vote_counts_by_option: Record; - - is_closed?: boolean; - - max_votes_allowed?: number; - - created_by?: UserResponse; -} - export interface PollVote { created_at: Date; @@ -5719,42 +5581,6 @@ export interface PollVote { user?: User; } -export interface PollVoteResponse { - duration: string; - - vote?: PollVoteResponseData; -} - -export interface PollVoteResponseData { - created_at: Date; - - id: string; - - option_id: string; - - poll_id: string; - - updated_at: Date; - - answer_text?: string; - - is_answer?: boolean; - - user_id?: string; - - user?: UserResponse; -} - -export interface PollVotesResponse { - duration: string; - - votes: PollVoteResponseData[]; - - next?: string; - - prev?: string; -} - export interface PrivacySettings { read_receipts?: ReadReceipts; @@ -6275,40 +6101,6 @@ export interface QueryModerationLogsResponse { prev?: string; } -export interface QueryPollVotesRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryPollsRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryPollsResponse { - duration: string; - - polls: PollResponseData[]; - - next?: string; - - prev?: string; -} - export interface QueryReactionsRequest { limit?: number; @@ -8534,56 +8326,6 @@ export interface UpdateMessageResponse { pending_message_metadata?: Record; } -export interface UpdatePollOptionRequest { - id: string; - - text: string; - - user_id?: string; - - custom?: Record; - - user?: UserRequest; -} - -export interface UpdatePollPartialRequest { - user_id?: string; - - unset?: string[]; - - set?: Record; - - user?: UserRequest; -} - -export interface UpdatePollRequest { - id: string; - - name: string; - - allow_answers?: boolean; - - allow_user_suggested_options?: boolean; - - description?: string; - - enforce_unique_vote?: boolean; - - is_closed?: boolean; - - max_votes_allowed?: number; - - user_id?: string; - - voting_visibility?: 'anonymous' | 'public'; - - options?: PollOptionRequest[]; - - custom?: Record; - - user?: UserRequest; -} - export interface UpdateThreadPartialRequest { user_id?: string; @@ -9091,14 +8833,6 @@ export interface VideoSettingsResponse { target_resolution: TargetResolution; } -export interface VoteData { - answer_text?: string; - - option_id?: string; - - option?: PollOptionResponseData; -} - export interface WSEvent { created_at: Date; From bdfc2b57fbdd11c656188a340e3360d996d2a5b4 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Wed, 11 Jun 2025 11:14:58 +0200 Subject: [PATCH 11/39] Update API spec --- src/gen-feeds/feeds/FeedsApi.ts | 174 ++++++++++++++++++++------------ src/gen-feeds/models/index.ts | 47 ++++++++- 2 files changed, 153 insertions(+), 68 deletions(-) diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts index b2cd26c..d7f9ace 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -117,6 +117,7 @@ export class FeedsApi { expires_at: request?.expires_at, id: request?.id, parent_id: request?.parent_id, + poll_id: request?.poll_id, text: request?.text, user_id: request?.user_id, visibility: request?.visibility, @@ -132,7 +133,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/activities', undefined, undefined, body); + >('POST', '/api/v3/feeds/activities', undefined, undefined, body); decoders.AddActivityResponse?.(response.body); @@ -148,7 +149,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/activities/batch', undefined, undefined, body); + >('POST', '/api/v3/feeds/activities/batch', undefined, undefined, body); decoders.UpsertActivitiesResponse?.(response.body); @@ -167,7 +168,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/activities/delete', undefined, undefined, body); + >('POST', '/api/v3/feeds/activities/delete', undefined, undefined, body); decoders.DeleteActivitiesResponse?.(response.body); @@ -189,7 +190,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/activities/query', undefined, undefined, body); + >('POST', '/api/v3/feeds/activities/query', undefined, undefined, body); decoders.QueryActivitiesResponse?.(response.body); @@ -209,7 +210,12 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/feeds/v3/activities/{activity_id}', pathParams, queryParams); + >( + 'DELETE', + '/api/v3/feeds/activities/{activity_id}', + pathParams, + queryParams, + ); decoders.DeleteActivityResponse?.(response.body); @@ -225,7 +231,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/feeds/v3/activities/{activity_id}', pathParams, undefined); + >('GET', '/api/v3/feeds/activities/{activity_id}', pathParams, undefined); decoders.GetActivityResponse?.(response.body); @@ -249,7 +255,7 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/feeds/v3/activities/{activity_id}', + '/api/v3/feeds/activities/{activity_id}', pathParams, undefined, body, @@ -268,6 +274,7 @@ export class FeedsApi { }; const body = { expires_at: request?.expires_at, + poll_id: request?.poll_id, text: request?.text, user_id: request?.user_id, visibility: request?.visibility, @@ -281,7 +288,13 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PUT', '/feeds/v3/activities/{activity_id}', pathParams, undefined, body); + >( + 'PUT', + '/api/v3/feeds/activities/{activity_id}', + pathParams, + undefined, + body, + ); decoders.UpdateActivityResponse?.(response.body); @@ -299,7 +312,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/activities/{activity_id}/bookmarks', + '/api/v3/feeds/activities/{activity_id}/bookmarks', pathParams, undefined, ); @@ -325,7 +338,7 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/feeds/v3/activities/{activity_id}/bookmarks', + '/api/v3/feeds/activities/{activity_id}/bookmarks', pathParams, undefined, body, @@ -352,7 +365,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/activities/{activity_id}/bookmarks', + '/api/v3/feeds/activities/{activity_id}/bookmarks', pathParams, undefined, body, @@ -380,7 +393,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/activities/{activity_id}/polls/{poll_id}/vote', + '/api/v3/feeds/activities/{activity_id}/polls/{poll_id}/vote', pathParams, undefined, body, @@ -410,7 +423,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}', + '/api/v3/feeds/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}', pathParams, queryParams, ); @@ -437,7 +450,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/activities/{activity_id}/reactions', + '/api/v3/feeds/activities/{activity_id}/reactions', pathParams, undefined, body, @@ -466,7 +479,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/activities/{activity_id}/reactions/query', + '/api/v3/feeds/activities/{activity_id}/reactions/query', pathParams, undefined, body, @@ -490,7 +503,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/activities/{activity_id}/reactions/{type}', + '/api/v3/feeds/activities/{activity_id}/reactions/{type}', pathParams, undefined, ); @@ -523,7 +536,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/feeds/v3/comments', undefined, queryParams); + >('GET', '/api/v3/feeds/comments', undefined, queryParams); decoders.GetCommentsResponse?.(response.body); @@ -545,7 +558,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/comments', undefined, undefined, body); + >('POST', '/api/v3/feeds/comments', undefined, undefined, body); decoders.AddCommentResponse?.(response.body); @@ -561,7 +574,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/comments/batch', undefined, undefined, body); + >('POST', '/api/v3/feeds/comments/batch', undefined, undefined, body); decoders.AddCommentsBatchResponse?.(response.body); @@ -581,7 +594,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/comments/query', undefined, undefined, body); + >('POST', '/api/v3/feeds/comments/query', undefined, undefined, body); decoders.QueryCommentsResponse?.(response.body); @@ -597,7 +610,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/feeds/v3/comments/{comment_id}', pathParams, undefined); + >('DELETE', '/api/v3/feeds/comments/{comment_id}', pathParams, undefined); decoders.DeleteCommentResponse?.(response.body); @@ -613,7 +626,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/feeds/v3/comments/{comment_id}', pathParams, undefined); + >('GET', '/api/v3/feeds/comments/{comment_id}', pathParams, undefined); decoders.GetCommentResponse?.(response.body); @@ -633,7 +646,13 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PATCH', '/feeds/v3/comments/{comment_id}', pathParams, undefined, body); + >( + 'PATCH', + '/api/v3/feeds/comments/{comment_id}', + pathParams, + undefined, + body, + ); decoders.UpdateCommentResponse?.(response.body); @@ -657,7 +676,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/comments/{comment_id}/reactions', + '/api/v3/feeds/comments/{comment_id}/reactions', pathParams, undefined, body, @@ -686,7 +705,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/comments/{comment_id}/reactions/query', + '/api/v3/feeds/comments/{comment_id}/reactions/query', pathParams, undefined, body, @@ -710,7 +729,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/comments/{comment_id}/reactions/{type}', + '/api/v3/feeds/comments/{comment_id}/reactions/{type}', pathParams, undefined, ); @@ -745,7 +764,7 @@ export class FeedsApi { StreamResponse >( 'GET', - '/feeds/v3/comments/{comment_id}/replies', + '/api/v3/feeds/comments/{comment_id}/replies', pathParams, queryParams, ); @@ -770,7 +789,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/feed_groups', undefined, undefined, body); + >('POST', '/api/v3/feeds/feed_groups', undefined, undefined, body); decoders.CreateFeedGroupResponse?.(response.body); @@ -792,7 +811,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/feed_groups/{feed_group_id}', + '/api/v3/feeds/feed_groups/{feed_group_id}', pathParams, queryParams, ); @@ -819,7 +838,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', pathParams, queryParams, ); @@ -861,7 +880,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', pathParams, undefined, body, @@ -888,7 +907,7 @@ export class FeedsApi { StreamResponse >( 'PUT', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', pathParams, undefined, body, @@ -917,7 +936,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest>( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch', pathParams, undefined, body, @@ -943,7 +962,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', pathParams, undefined, ); @@ -974,7 +993,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', pathParams, undefined, body, @@ -1007,7 +1026,7 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members', pathParams, undefined, body, @@ -1037,7 +1056,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept', pathParams, undefined, body, @@ -1070,7 +1089,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query', pathParams, undefined, body, @@ -1100,7 +1119,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject', + '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject', pathParams, undefined, body, @@ -1126,7 +1145,7 @@ export class FeedsApi { StreamResponse >( 'GET', - '/feeds/v3/feed_groups/{feed_group_id}/follow_suggestions', + '/api/v3/feeds/feed_groups/{feed_group_id}/follow_suggestions', pathParams, queryParams, ); @@ -1153,7 +1172,7 @@ export class FeedsApi { StreamResponse >( 'POST', - '/feeds/v3/feed_groups/{feed_group_id}/views', + '/api/v3/feeds/feed_groups/{feed_group_id}/views', pathParams, undefined, body, @@ -1177,7 +1196,7 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/feeds/v3/feed_groups/{feed_group_id}/views/{view_id}', + '/api/v3/feeds/feed_groups/{feed_group_id}/views/{view_id}', pathParams, undefined, ); @@ -1204,7 +1223,7 @@ export class FeedsApi { StreamResponse >( 'PUT', - '/feeds/v3/feed_groups/{feed_group_id}/views/{view_id}', + '/api/v3/feeds/feed_groups/{feed_group_id}/views/{view_id}', pathParams, undefined, body, @@ -1224,7 +1243,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/feeds/batch', undefined, undefined, body); + >('POST', '/api/v3/feeds/feeds/batch', undefined, undefined, body); decoders.CreateFeedsBatchResponse?.(response.body); @@ -1243,7 +1262,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/feeds/query', undefined, undefined, body); + >('POST', '/api/v3/feeds/feeds/query', undefined, undefined, body); decoders.QueryFeedsResponse?.(response.body); @@ -1262,7 +1281,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PATCH', '/feeds/v3/follows', undefined, undefined, body); + >('PATCH', '/api/v3/feeds/follows', undefined, undefined, body); decoders.UpdateFollowResponse?.(response.body); @@ -1281,7 +1300,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/follows', undefined, undefined, body); + >('POST', '/api/v3/feeds/follows', undefined, undefined, body); decoders.SingleFollowResponse?.(response.body); @@ -1299,7 +1318,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/follows/accept', undefined, undefined, body); + >('POST', '/api/v3/feeds/follows/accept', undefined, undefined, body); decoders.AcceptFollowResponse?.(response.body); @@ -1315,7 +1334,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/follows/batch', undefined, undefined, body); + >('POST', '/api/v3/feeds/follows/batch', undefined, undefined, body); decoders.FollowBatchResponse?.(response.body); @@ -1337,7 +1356,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/follows/query', undefined, undefined, body); + >('POST', '/api/v3/feeds/follows/query', undefined, undefined, body); decoders.QueryFollowsResponse?.(response.body); @@ -1354,7 +1373,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/follows/reject', undefined, undefined, body); + >('POST', '/api/v3/feeds/follows/reject', undefined, undefined, body); decoders.RejectFollowResponse?.(response.body); @@ -1372,7 +1391,12 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/feeds/v3/follows/{source}/{target}', pathParams, undefined); + >( + 'DELETE', + '/api/v3/feeds/follows/{source}/{target}', + pathParams, + undefined, + ); decoders.UnfollowResponse?.(response.body); @@ -1400,7 +1424,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/polls', undefined, undefined, body); + >('POST', '/api/v3/feeds/polls', undefined, undefined, body); decoders.PollResponse?.(response.body); @@ -1428,7 +1452,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PUT', '/feeds/v3/polls', undefined, undefined, body); + >('PUT', '/api/v3/feeds/polls', undefined, undefined, body); decoders.PollResponse?.(response.body); @@ -1451,7 +1475,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/polls/query', undefined, queryParams, body); + >('POST', '/api/v3/feeds/polls/query', undefined, queryParams, body); decoders.QueryPollsResponse?.(response.body); @@ -1471,7 +1495,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest>( 'DELETE', - '/feeds/v3/polls/{poll_id}', + '/api/v3/feeds/polls/{poll_id}', pathParams, queryParams, ); @@ -1494,7 +1518,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/feeds/v3/polls/{poll_id}', pathParams, queryParams); + >('GET', '/api/v3/feeds/polls/{poll_id}', pathParams, queryParams); decoders.PollResponse?.(response.body); @@ -1516,7 +1540,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PATCH', '/feeds/v3/polls/{poll_id}', pathParams, undefined, body); + >('PATCH', '/api/v3/feeds/polls/{poll_id}', pathParams, undefined, body); decoders.PollResponse?.(response.body); @@ -1539,7 +1563,13 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/polls/{poll_id}/options', pathParams, undefined, body); + >( + 'POST', + '/api/v3/feeds/polls/{poll_id}/options', + pathParams, + undefined, + body, + ); decoders.PollOptionResponse?.(response.body); @@ -1562,7 +1592,13 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PUT', '/feeds/v3/polls/{poll_id}/options', pathParams, undefined, body); + >( + 'PUT', + '/api/v3/feeds/polls/{poll_id}/options', + pathParams, + undefined, + body, + ); decoders.PollOptionResponse?.(response.body); @@ -1584,7 +1620,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest>( 'DELETE', - '/feeds/v3/polls/{poll_id}/options/{option_id}', + '/api/v3/feeds/polls/{poll_id}/options/{option_id}', pathParams, queryParams, ); @@ -1611,7 +1647,7 @@ export class FeedsApi { StreamResponse >( 'GET', - '/feeds/v3/polls/{poll_id}/options/{option_id}', + '/api/v3/feeds/polls/{poll_id}/options/{option_id}', pathParams, queryParams, ); @@ -1640,7 +1676,13 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/polls/{poll_id}/votes', pathParams, queryParams, body); + >( + 'POST', + '/api/v3/feeds/polls/{poll_id}/votes', + pathParams, + queryParams, + body, + ); decoders.PollVotesResponse?.(response.body); @@ -1658,7 +1700,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/unfollow/batch', undefined, undefined, body); + >('POST', '/api/v3/feeds/unfollow/batch', undefined, undefined, body); decoders.UnfollowBatchResponse?.(response.body); @@ -1674,7 +1716,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/feeds/v3/users/{user_id}/delete', pathParams, undefined); + >('DELETE', '/api/v3/feeds/users/{user_id}/delete', pathParams, undefined); decoders.DeleteFeedUserDataResponse?.(response.body); @@ -1690,7 +1732,7 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/feeds/v3/users/{user_id}/export', pathParams, undefined); + >('POST', '/api/v3/feeds/users/{user_id}/export', pathParams, undefined); decoders.ExportFeedUserDataResponse?.(response.body); diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index a47991f..0bf8746 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -169,6 +169,8 @@ export interface ActivityRequest { parent_id?: string; + poll_id?: string; + text?: string; user_id?: string; @@ -299,6 +301,8 @@ export interface AddActivityRequest { parent_id?: string; + poll_id?: string; + text?: string; user_id?: string; @@ -1174,6 +1178,43 @@ export interface FeedMemberUpdatedEvent { user?: UserResponseCommonFields; } +export const FeedOwnCapability = { + ADD_ACTIVITY: 'add-activity', + ADD_ACTIVITY_REACTION: 'add-activity-reaction', + ADD_COMMENT: 'add-comment', + ADD_COMMENT_REACTION: 'add-comment-reaction', + BOOKMARK_ACTIVITY: 'bookmark-activity', + CREATE_FEED: 'create-feed', + DELETE_BOOKMARK: 'delete-bookmark', + DELETE_COMMENT: 'delete-comment', + DELETE_FEED: 'delete-feed', + EDIT_BOOKMARK: 'edit-bookmark', + FOLLOW: 'follow', + INVITE_FEED: 'invite-feed', + JOIN_FEED: 'join-feed', + LEAVE_FEED: 'leave-feed', + MANAGE_FEED_GROUP: 'manage-feed-group', + MARK_ACTIVITY: 'mark-activity', + PIN_ACTIVITY: 'pin-activity', + QUERY_FEED_MEMBERS: 'query-feed-members', + QUERY_FOLLOWS: 'query-follows', + READ_ACTIVITIES: 'read-activities', + READ_FEED: 'read-feed', + REMOVE_ACTIVITY: 'remove-activity', + REMOVE_ACTIVITY_REACTION: 'remove-activity-reaction', + REMOVE_COMMENT_REACTION: 'remove-comment-reaction', + UNFOLLOW: 'unfollow', + UPDATE_ACTIVITY: 'update-activity', + UPDATE_COMMENT: 'update-comment', + UPDATE_FEED: 'update-feed', + UPDATE_FEED_FOLLOWERS: 'update-feed-followers', + UPDATE_FEED_MEMBERS: 'update-feed-members', +} as const; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export type FeedOwnCapability = + (typeof FeedOwnCapability)[keyof typeof FeedOwnCapability]; + export interface FeedRequest { feed_group_id: string; @@ -1443,6 +1484,8 @@ export interface GetOrCreateFeedResponse { members: FeedMemberResponse[]; + own_capabilities: FeedOwnCapability[]; + pinned_activities: ActivityPinResponse[]; feed: FeedResponse; @@ -1451,8 +1494,6 @@ export interface GetOrCreateFeedResponse { prev?: string; - capabilities?: string[]; - own_follows?: FollowResponse[]; followers_pagination?: PagerResponse; @@ -2081,6 +2122,8 @@ export interface UpdateActivityPartialResponse { export interface UpdateActivityRequest { expires_at?: Date; + poll_id?: string; + text?: string; user_id?: string; From 3ddd3a045c4a66555fa867f0a80c2361ca41a86e Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Wed, 11 Jun 2025 15:50:23 +0200 Subject: [PATCH 12/39] Try to remove npm prepare fix to see if it fixes CI issue --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index d482981..bf9c46e 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,6 @@ "url": "https://github.com/GetStream/stream-node.git" }, "scripts": { - "prepare": "husky install", "prepublish": "yarn build", "test": "vitest", "test:bun": "bun run vitest", From 629310b422d111d7aa1f0dffe107492952bf0be5 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 12 Jun 2025 09:48:21 +0200 Subject: [PATCH 13/39] Update to latest API spec --- package.json | 1 + src/gen-feeds/feeds/FeedsApi.ts | 71 +++++++++++- src/gen-feeds/model-decoders/decoders.ts | 67 ++++++++++- src/gen-feeds/models/index.ts | 138 ++++++++++++++++++----- 4 files changed, 244 insertions(+), 33 deletions(-) diff --git a/package.json b/package.json index bf9c46e..d482981 100644 --- a/package.json +++ b/package.json @@ -19,6 +19,7 @@ "url": "https://github.com/GetStream/stream-node.git" }, "scripts": { + "prepare": "husky install", "prepublish": "yarn build", "test": "vitest", "test:bun": "bun run vitest", diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen-feeds/feeds/FeedsApi.ts index d7f9ace..2060d76 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen-feeds/feeds/FeedsApi.ts @@ -57,6 +57,10 @@ import { QueryActivitiesResponse, QueryActivityReactionsRequest, QueryActivityReactionsResponse, + QueryBookmarkFoldersRequest, + QueryBookmarkFoldersResponse, + QueryBookmarksRequest, + QueryBookmarksResponse, QueryCommentReactionsRequest, QueryCommentReactionsResponse, QueryCommentsRequest, @@ -179,8 +183,6 @@ export class FeedsApi { request?: QueryActivitiesRequest, ): Promise> { const body = { - comment_limit: request?.comment_limit, - comment_sort: request?.comment_sort, limit: request?.limit, next: request?.next, prev: request?.prev, @@ -303,7 +305,11 @@ export class FeedsApi { async deleteBookmark(request: { activity_id: string; + folder_id?: string; }): Promise> { + const queryParams = { + folder_id: request?.folder_id, + }; const pathParams = { activity_id: request?.activity_id, }; @@ -314,7 +320,7 @@ export class FeedsApi { 'DELETE', '/api/v3/feeds/activities/{activity_id}/bookmarks', pathParams, - undefined, + queryParams, ); decoders.DeleteBookmarkResponse?.(response.body); @@ -329,9 +335,12 @@ export class FeedsApi { activity_id: request?.activity_id, }; const body = { - feed_id: request?.feed_id, - feed_type: request?.feed_type, + folder_id: request?.folder_id, + new_folder_id: request?.new_folder_id, + user_id: request?.user_id, custom: request?.custom, + new_folder: request?.new_folder, + user: request?.user, }; const response = await this.apiClient.sendRequest< @@ -357,8 +366,10 @@ export class FeedsApi { }; const body = { folder_id: request?.folder_id, + user_id: request?.user_id, custom: request?.custom, new_folder: request?.new_folder, + user: request?.user, }; const response = await this.apiClient.sendRequest< @@ -513,6 +524,52 @@ export class FeedsApi { return { ...response.body, metadata: response.metadata }; } + async queryBookmarkFolders( + request?: QueryBookmarkFoldersRequest, + ): Promise> { + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v3/feeds/bookmark_folders/query', + undefined, + undefined, + body, + ); + + decoders.QueryBookmarkFoldersResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryBookmarks( + request?: QueryBookmarksRequest, + ): Promise> { + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v3/feeds/bookmarks/query', undefined, undefined, body); + + decoders.QueryBookmarksResponse?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + async getComments(request: { object_id: string; object_type: string; @@ -1254,10 +1311,12 @@ export class FeedsApi { request?: QueryFeedsRequest, ): Promise> { const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, watch: request?.watch, sort: request?.sort, filter: request?.filter, - pagination: request?.pagination, }; const response = await this.apiClient.sendRequest< diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts index 0b83434..66c4506 100644 --- a/src/gen-feeds/model-decoders/decoders.ts +++ b/src/gen-feeds/model-decoders/decoders.ts @@ -76,11 +76,24 @@ decoders.ActivityPinResponse = (input?: Record) => { updated_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, + user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; +decoders.ActivityPinnedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + pinned_activity: { type: 'PinActivityResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ActivityReactionAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -160,6 +173,17 @@ decoders.ActivitySelectorConfig = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ActivityUnpinnedEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + pinned_activity: { type: 'PinActivityResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ActivityUpdatedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -265,6 +289,8 @@ decoders.BookmarkAddedEvent = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); @@ -296,9 +322,11 @@ decoders.BookmarkResponse = (input?: Record) => { updated_at: { type: 'DatetimeType', isSingle: true }, - folder: { type: 'BookmarkFolderResponse', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, user: { type: 'UserResponse', isSingle: true }, + + folder: { type: 'BookmarkFolderResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -729,6 +757,8 @@ decoders.NotificationStatusResponse = (input?: Record) => { decoders.PinActivityResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'ActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; @@ -801,6 +831,20 @@ decoders.QueryActivityReactionsResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.QueryBookmarkFoldersResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + bookmark_folders: { type: 'BookmarkFolderResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.QueryBookmarksResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + bookmarks: { type: 'BookmarkResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.QueryCommentReactionsResponse = (input?: Record) => { const typeMappings: TypeMapping = { reactions: { type: 'FeedsReactionResponse', isSingle: false }, @@ -815,6 +859,20 @@ decoders.QueryCommentsResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.QueryFeedMembersResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + members: { type: 'FeedMemberResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders.QueryFeedsResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + feeds: { type: 'FeedResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + decoders.QueryFollowsResponse = (input?: Record) => { const typeMappings: TypeMapping = { follows: { type: 'FollowResponse', isSingle: false }, @@ -880,6 +938,13 @@ decoders.ThreadedCommentResponse = (input?: Record) => { return decode(typeMappings, input); }; +decoders.UnpinActivityResponse = (input?: Record) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.UpdateActivityPartialResponse = (input?: Record) => { const typeMappings: TypeMapping = { activity: { type: 'ActivityResponse', isSingle: true }, diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index 0bf8746..2fb39f0 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -95,17 +95,33 @@ export interface ActivityLocation { } export interface ActivityPinResponse { - activity_id: string; - created_at: Date; feed: string; updated_at: Date; + activity: ActivityResponse; + user: UserResponse; } +export interface ActivityPinnedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + pinned_activity: PinActivityResponse; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + export interface ActivityReactionAddedEvent { created_at: Date; @@ -274,6 +290,22 @@ export interface ActivitySelectorConfig { tags?: string[]; } +export interface ActivityUnpinnedEvent { + created_at: Date; + + fid: string; + + custom: Record; + + pinned_activity: PinActivityResponse; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + export interface ActivityUpdatedEvent { created_at: Date; @@ -335,9 +367,13 @@ export interface AddActivityResponse { export interface AddBookmarkRequest { folder_id?: string; + user_id?: string; + custom?: Record; new_folder?: AddFolderRequest; + + user?: UserRequest; } export interface AddBookmarkResponse { @@ -559,11 +595,9 @@ export interface BaseActivityResponse { } export interface BookmarkAddedEvent { - activity_id: string; - created_at: Date; - fid: string; + bookmark: BookmarkResponse; custom: Record; @@ -577,8 +611,6 @@ export interface BookmarkAddedEvent { export interface BookmarkDeletedEvent { created_at: Date; - fid: string; - bookmark: BookmarkResponse; custom: Record; @@ -603,24 +635,22 @@ export interface BookmarkFolderResponse { } export interface BookmarkResponse { - activity_id: string; - created_at: Date; updated_at: Date; - folder: BookmarkFolderResponse; + activity: ActivityResponse; user: UserResponse; custom?: Record; + + folder?: BookmarkFolderResponse; } export interface BookmarkUpdatedEvent { created_at: Date; - fid: string; - bookmark: BookmarkResponse; custom: Record; @@ -1602,8 +1632,6 @@ export interface PinActivityRequest { } export interface PinActivityResponse { - activity_id: string; - created_at: Date; duration: string; @@ -1611,6 +1639,8 @@ export interface PinActivityResponse { fid: string; user_id: string; + + activity: ActivityResponse; } export interface PollOptionInput { @@ -1740,10 +1770,6 @@ export interface PushNotificationSettingsResponse { } export interface QueryActivitiesRequest { - comment_limit?: number; - - comment_sort?: 'first' | 'last' | 'popular'; - limit?: number; next?: string; @@ -1787,6 +1813,50 @@ export interface QueryActivityReactionsResponse { prev?: string; } +export interface QueryBookmarkFoldersRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryBookmarkFoldersResponse { + duration: string; + + bookmark_folders: BookmarkFolderResponse[]; + + next?: string; + + prev?: string; +} + +export interface QueryBookmarksRequest { + limit?: number; + + next?: string; + + prev?: string; + + sort?: SortParamRequest[]; + + filter?: Record; +} + +export interface QueryBookmarksResponse { + duration: string; + + bookmarks: BookmarkResponse[]; + + next?: string; + + prev?: string; +} + export interface QueryCommentReactionsRequest { limit?: number; @@ -1848,17 +1918,23 @@ export interface QueryFeedMembersResponse { members: FeedMemberResponse[]; - pagination: PagerResponse; + next?: string; + + prev?: string; } export interface QueryFeedsRequest { + limit?: number; + + next?: string; + + prev?: string; + watch?: boolean; sort?: SortParamRequest[]; filter?: Record; - - pagination?: PagerRequest; } export interface QueryFeedsResponse { @@ -1866,7 +1942,9 @@ export interface QueryFeedsResponse { feeds: FeedResponse[]; - pager: PagerResponse; + next?: string; + + prev?: string; } export interface QueryFollowsRequest { @@ -2094,13 +2172,13 @@ export interface UnfollowResponse { } export interface UnpinActivityResponse { - activity_id: string; - duration: string; fid: string; user_id: string; + + activity: ActivityResponse; } export interface UpdateActivityPartialRequest { @@ -2150,11 +2228,17 @@ export interface UpdateActivityResponse { } export interface UpdateBookmarkRequest { - feed_id: string; + folder_id?: string; + + new_folder_id?: string; - feed_type: string; + user_id?: string; custom?: Record; + + new_folder?: AddFolderRequest; + + user?: UserRequest; } export interface UpdateBookmarkResponse { @@ -2416,9 +2500,11 @@ export interface VoteData { export type WebhookEvent = | ({ type: 'activity.added' } & ActivityAddedEvent) | ({ type: 'activity.deleted' } & ActivityDeletedEvent) + | ({ type: 'activity.pinned' } & ActivityPinnedEvent) | ({ type: 'activity.reaction.added' } & ActivityReactionAddedEvent) | ({ type: 'activity.reaction.deleted' } & ActivityReactionDeletedEvent) | ({ type: 'activity.removed_from_feed' } & ActivityRemovedFromFeedEvent) + | ({ type: 'activity.unpinned' } & ActivityUnpinnedEvent) | ({ type: 'activity.updated' } & ActivityUpdatedEvent) | ({ type: 'bookmark.added' } & BookmarkAddedEvent) | ({ type: 'bookmark.deleted' } & BookmarkDeletedEvent) From 990c92f79eb061bacf5911b8de61e3de75c3aff4 Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Mon, 16 Jun 2025 11:12:30 +0200 Subject: [PATCH 14/39] Update to latest API spec --- src/gen-feeds/model-decoders/decoders.ts | 9 +++ src/gen-feeds/models/index.ts | 91 +++++++++++++++++------- 2 files changed, 73 insertions(+), 27 deletions(-) diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts index 66c4506..fb63d34 100644 --- a/src/gen-feeds/model-decoders/decoders.ts +++ b/src/gen-feeds/model-decoders/decoders.ts @@ -70,6 +70,15 @@ decoders.ActivityDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; +decoders.ActivityMarkEvent = (input?: Record) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + decoders.ActivityPinResponse = (input?: Record) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts index 2fb39f0..f08c8ed 100644 --- a/src/gen-feeds/models/index.ts +++ b/src/gen-feeds/models/index.ts @@ -94,6 +94,28 @@ export interface ActivityLocation { lng: number; } +export interface ActivityMarkEvent { + created_at: Date; + + fid: string; + + custom: Record; + + type: string; + + mark_all_read?: boolean; + + mark_all_seen?: boolean; + + received_at?: Date; + + mark_read?: string[]; + + mark_watched?: string[]; + + user?: UserResponseCommonFields; +} + export interface ActivityPinResponse { created_at: Date; @@ -1125,6 +1147,10 @@ export interface FeedGroupResponse { } export interface FeedInput { + description?: string; + + name?: string; + visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; members?: FeedMemberRequest[]; @@ -1252,6 +1278,10 @@ export interface FeedRequest { created_by_id?: string; + description?: string; + + name?: string; + visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; members?: FeedMemberRequest[]; @@ -1262,6 +1292,8 @@ export interface FeedRequest { export interface FeedResponse { created_at: Date; + description: string; + fid: string; follower_count: number; @@ -1274,6 +1306,8 @@ export interface FeedResponse { member_count: number; + name: string; + pin_count: number; updated_at: Date; @@ -2498,30 +2532,33 @@ export interface VoteData { } export type WebhookEvent = - | ({ type: 'activity.added' } & ActivityAddedEvent) - | ({ type: 'activity.deleted' } & ActivityDeletedEvent) - | ({ type: 'activity.pinned' } & ActivityPinnedEvent) - | ({ type: 'activity.reaction.added' } & ActivityReactionAddedEvent) - | ({ type: 'activity.reaction.deleted' } & ActivityReactionDeletedEvent) - | ({ type: 'activity.removed_from_feed' } & ActivityRemovedFromFeedEvent) - | ({ type: 'activity.unpinned' } & ActivityUnpinnedEvent) - | ({ type: 'activity.updated' } & ActivityUpdatedEvent) - | ({ type: 'bookmark.added' } & BookmarkAddedEvent) - | ({ type: 'bookmark.deleted' } & BookmarkDeletedEvent) - | ({ type: 'bookmark.updated' } & BookmarkUpdatedEvent) - | ({ type: 'comment.added' } & CommentAddedEvent) - | ({ type: 'comment.deleted' } & CommentDeletedEvent) - | ({ type: 'comment.reaction.added' } & CommentReactionAddedEvent) - | ({ type: 'comment.reaction.deleted' } & CommentReactionDeletedEvent) - | ({ type: 'comment.updated' } & CommentUpdatedEvent) - | ({ type: 'feed.created' } & FeedCreatedEvent) - | ({ type: 'feed.deleted' } & FeedDeletedEvent) - | ({ type: 'feed.updated' } & FeedUpdatedEvent) - | ({ type: 'feed_group.changed' } & FeedGroupChangedEvent) - | ({ type: 'feed_group.deleted' } & FeedGroupDeletedEvent) - | ({ type: 'feed_member.added' } & FeedMemberAddedEvent) - | ({ type: 'feed_member.removed' } & FeedMemberRemovedEvent) - | ({ type: 'feed_member.updated' } & FeedMemberUpdatedEvent) - | ({ type: 'follow.created' } & FollowCreatedEvent) - | ({ type: 'follow.deleted' } & FollowDeletedEvent) - | ({ type: 'follow.updated' } & FollowUpdatedEvent); + | ({ type: 'feeds.activity.added' } & ActivityAddedEvent) + | ({ type: 'feeds.activity.deleted' } & ActivityDeletedEvent) + | ({ type: 'feeds.activity.marked' } & ActivityMarkEvent) + | ({ type: 'feeds.activity.pinned' } & ActivityPinnedEvent) + | ({ type: 'feeds.activity.reaction.added' } & ActivityReactionAddedEvent) + | ({ type: 'feeds.activity.reaction.deleted' } & ActivityReactionDeletedEvent) + | ({ + type: 'feeds.activity.removed_from_feed'; + } & ActivityRemovedFromFeedEvent) + | ({ type: 'feeds.activity.unpinned' } & ActivityUnpinnedEvent) + | ({ type: 'feeds.activity.updated' } & ActivityUpdatedEvent) + | ({ type: 'feeds.bookmark.added' } & BookmarkAddedEvent) + | ({ type: 'feeds.bookmark.deleted' } & BookmarkDeletedEvent) + | ({ type: 'feeds.bookmark.updated' } & BookmarkUpdatedEvent) + | ({ type: 'feeds.comment.added' } & CommentAddedEvent) + | ({ type: 'feeds.comment.deleted' } & CommentDeletedEvent) + | ({ type: 'feeds.comment.reaction.added' } & CommentReactionAddedEvent) + | ({ type: 'feeds.comment.reaction.deleted' } & CommentReactionDeletedEvent) + | ({ type: 'feeds.comment.updated' } & CommentUpdatedEvent) + | ({ type: 'feeds.feed.created' } & FeedCreatedEvent) + | ({ type: 'feeds.feed.deleted' } & FeedDeletedEvent) + | ({ type: 'feeds.feed.updated' } & FeedUpdatedEvent) + | ({ type: 'feeds.feed_group.changed' } & FeedGroupChangedEvent) + | ({ type: 'feeds.feed_group.deleted' } & FeedGroupDeletedEvent) + | ({ type: 'feeds.feed_member.added' } & FeedMemberAddedEvent) + | ({ type: 'feeds.feed_member.removed' } & FeedMemberRemovedEvent) + | ({ type: 'feeds.feed_member.updated' } & FeedMemberUpdatedEvent) + | ({ type: 'feeds.follow.created' } & FollowCreatedEvent) + | ({ type: 'feeds.follow.deleted' } & FollowDeletedEvent) + | ({ type: 'feeds.follow.updated' } & FollowUpdatedEvent); From 37cb443e7ad00e067240575a5d59da10f279c00a Mon Sep 17 00:00:00 2001 From: Zita Szupera Date: Thu, 19 Jun 2025 10:46:36 +0200 Subject: [PATCH 15/39] Api spec fix (#112) --- generate-openapi.sh | 2 +- index.ts | 1 - package.json | 2 +- src/ApiClient.ts | 2 +- src/StreamClient.ts | 3 +- src/StreamFeed.ts | 2 +- src/StreamFeedsClient.ts | 2 +- src/gen-feeds/feeds/FeedApi.ts | 129 - src/gen-feeds/model-decoders/decoders.ts | 1046 --- src/gen-feeds/models/index.ts | 2564 -------- src/gen-imports.ts | 2 +- src/gen/chat/ChannelApi.ts | 882 ++- src/gen/chat/ChatApi.ts | 1360 +++- src/gen/common/CommonApi.ts | 1282 +++- src/gen/feeds/FeedApi.ts | 1019 +++ src/{gen-feeds => gen}/feeds/FeedsApi.ts | 1317 ++-- src/gen/model-decoders/decoders.ts | 2132 ++++-- src/gen/models/index.ts | 7618 ++++++++++++++++------ src/gen/moderation/ModerationApi.ts | 957 ++- src/gen/video/CallApi.ts | 850 +++ src/gen/video/VideoApi.ts | 925 ++- 21 files changed, 14914 insertions(+), 7183 deletions(-) delete mode 100644 src/gen-feeds/feeds/FeedApi.ts delete mode 100644 src/gen-feeds/model-decoders/decoders.ts delete mode 100644 src/gen-feeds/models/index.ts create mode 100644 src/gen/feeds/FeedApi.ts rename src/{gen-feeds => gen}/feeds/FeedsApi.ts (57%) diff --git a/generate-openapi.sh b/generate-openapi.sh index 5a62eca..83fb15d 100755 --- a/generate-openapi.sh +++ b/generate-openapi.sh @@ -1,7 +1,7 @@ #!/bin/bash set -euo pipefail -OUTPUT_DIR="../stream-node/src/gen-feeds" +OUTPUT_DIR="../stream-node/src/gen" CHAT_DIR="../chat" rm -rf $OUTPUT_DIR diff --git a/index.ts b/index.ts index 6060dcb..3914180 100644 --- a/index.ts +++ b/index.ts @@ -3,7 +3,6 @@ export * from './src/StreamCall'; export * from './src/StreamChatClient'; export * from './src/StreamChannel'; export * from './src/StreamVideoClient'; -export * from './src/gen-feeds/models'; export * from './src/gen/models'; export * from './src/StreamFeedsClient'; export * from './src/StreamFeed'; diff --git a/package.json b/package.json index d482981..6cf5a9f 100644 --- a/package.json +++ b/package.json @@ -29,7 +29,7 @@ "lint": "eslint **/*.ts", "lint:fix": "eslint --fix **/*.ts", "prettier:fix": "prettier . --write", - "lint:gen": "eslint --fix src/gen-feeds/**/*ts && prettier src/gen-feeds/**/*.ts --write" + "lint:gen": "eslint --fix src/gen/**/*ts" }, "lint-staged": { "**/*": [ diff --git a/src/ApiClient.ts b/src/ApiClient.ts index d7bef2a..7a23333 100644 --- a/src/ApiClient.ts +++ b/src/ApiClient.ts @@ -1,6 +1,6 @@ import { v4 as uuidv4 } from 'uuid'; import { ApiConfig, RequestMetadata, StreamError } from './types'; -import { APIError } from './gen-feeds/models'; +import { APIError } from './gen/models'; import { getRateLimitFromResponseHeader } from './utils/rate-limit'; export class ApiClient { diff --git a/src/StreamClient.ts b/src/StreamClient.ts index c76e199..f5a2d7b 100644 --- a/src/StreamClient.ts +++ b/src/StreamClient.ts @@ -4,10 +4,9 @@ import { StreamVideoClient } from './StreamVideoClient'; import crypto from 'crypto'; import { StreamChatClient } from './StreamChatClient'; import { CallTokenPayload, UserTokenPayload } from './types'; -import { QueryBannedUsersPayload } from './gen/models'; +import { QueryBannedUsersPayload, UserRequest } from './gen/models'; import { StreamModerationClient } from './StreamModerationClient'; import { ApiClient } from './ApiClient'; -import { UserRequest } from './gen-feeds/models'; import { StreamFeedsClient } from './StreamFeedsClient'; export interface StreamClientOptions { diff --git a/src/StreamFeed.ts b/src/StreamFeed.ts index 0c2eadf..63c581f 100644 --- a/src/StreamFeed.ts +++ b/src/StreamFeed.ts @@ -1,4 +1,4 @@ -import { FeedApi } from './gen-feeds/feeds/FeedApi'; +import { FeedApi } from './gen/feeds/FeedApi'; export class StreamFeed extends FeedApi { get fid() { diff --git a/src/StreamFeedsClient.ts b/src/StreamFeedsClient.ts index 24d8238..d138d91 100644 --- a/src/StreamFeedsClient.ts +++ b/src/StreamFeedsClient.ts @@ -1,4 +1,4 @@ -import { FeedsApi } from './gen-feeds/feeds/FeedsApi'; +import { FeedsApi } from './gen/feeds/FeedsApi'; import { StreamFeed } from './StreamFeed'; export class StreamFeedsClient extends FeedsApi { diff --git a/src/gen-feeds/feeds/FeedApi.ts b/src/gen-feeds/feeds/FeedApi.ts deleted file mode 100644 index 13bf4f3..0000000 --- a/src/gen-feeds/feeds/FeedApi.ts +++ /dev/null @@ -1,129 +0,0 @@ -import { StreamResponse, FeedsApi } from '../../gen-imports'; -import { - AcceptFeedMemberInviteRequest, - AcceptFeedMemberInviteResponse, - DeleteFeedResponse, - GetOrCreateFeedRequest, - GetOrCreateFeedResponse, - MarkActivityRequest, - PinActivityRequest, - PinActivityResponse, - QueryFeedMembersRequest, - QueryFeedMembersResponse, - RejectFeedMemberInviteRequest, - RejectFeedMemberInviteResponse, - Response, - UnpinActivityResponse, - UpdateFeedMembersRequest, - UpdateFeedMembersResponse, - UpdateFeedRequest, - UpdateFeedResponse, -} from '../models'; - -export class FeedApi { - constructor( - protected feedsApi: FeedsApi, - public readonly group: string, - public readonly id: string, - ) {} - - delete(request?: { - hard_delete?: boolean; - }): Promise> { - return this.feedsApi.deleteFeed({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - getOrCreate( - request?: GetOrCreateFeedRequest, - ): Promise> { - return this.feedsApi.getOrCreateFeed({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - update( - request?: UpdateFeedRequest, - ): Promise> { - return this.feedsApi.updateFeed({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - markActivity( - request?: MarkActivityRequest, - ): Promise> { - return this.feedsApi.markActivity({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - unpinActivity(request: { - activity_id: string; - }): Promise> { - return this.feedsApi.unpinActivity({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - pinActivity( - request: PinActivityRequest & { activity_id: string }, - ): Promise> { - return this.feedsApi.pinActivity({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - updateFeedMembers( - request: UpdateFeedMembersRequest, - ): Promise> { - return this.feedsApi.updateFeedMembers({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - acceptFeedMemberInvite( - request?: AcceptFeedMemberInviteRequest, - ): Promise> { - return this.feedsApi.acceptFeedMemberInvite({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - queryFeedMembers( - request?: QueryFeedMembersRequest, - ): Promise> { - return this.feedsApi.queryFeedMembers({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } - - rejectFeedMemberInvite( - request?: RejectFeedMemberInviteRequest, - ): Promise> { - return this.feedsApi.rejectFeedMemberInvite({ - feed_id: this.id, - feed_group_id: this.group, - ...request, - }); - } -} diff --git a/src/gen-feeds/model-decoders/decoders.ts b/src/gen-feeds/model-decoders/decoders.ts deleted file mode 100644 index fb63d34..0000000 --- a/src/gen-feeds/model-decoders/decoders.ts +++ /dev/null @@ -1,1046 +0,0 @@ -type Decoder = (i: any) => any; - -type TypeMapping = Record; - -export const decoders: Record = {}; - -const decodeDatetimeType = (input: number | string) => - typeof input === 'number' - ? new Date(Math.floor(input / 1000000)) - : new Date(input); - -decoders.DatetimeType = decodeDatetimeType; - -const decode = (typeMappings: TypeMapping, input?: Record) => { - if (!input || Object.keys(typeMappings).length === 0) return input; - - Object.keys(typeMappings).forEach((key) => { - if (input[key] != null) { - if (typeMappings[key]) { - const decoder = decoders[typeMappings[key].type]; - if (decoder) { - if (typeMappings[key].isSingle) { - input[key] = decoder(input[key]); - } else { - Object.keys(input[key]).forEach((k) => { - input[key][k] = decoder(input[key][k]); - }); - } - } - } - } - }); - - return input; -}; - -decoders.AcceptFeedMemberInviteResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - member: { type: 'FeedMemberResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AcceptFollowResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - follow: { type: 'FollowResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityAddedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityMarkEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityPinResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityPinnedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - pinned_activity: { type: 'PinActivityResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityReactionAddedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityReactionDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityRemovedFromFeedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - comments: { type: 'CommentResponse', isSingle: false }, - - latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - - mentioned_users: { type: 'UserResponse', isSingle: false }, - - own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, - - own_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - - reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, - - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - edited_at: { type: 'DatetimeType', isSingle: true }, - - expires_at: { type: 'DatetimeType', isSingle: true }, - - current_feed: { type: 'FeedResponse', isSingle: true }, - - parent: { type: 'BaseActivityResponse', isSingle: true }, - - poll: { type: 'PollResponseData', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivitySelectorConfig = (input?: Record) => { - const typeMappings: TypeMapping = { - cutoff_time: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityUnpinnedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - pinned_activity: { type: 'PinActivityResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ActivityUpdatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AddActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AddBookmarkResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - bookmark: { type: 'BookmarkResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AddCommentReactionResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comment: { type: 'CommentResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AddCommentResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comment: { type: 'CommentResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AddCommentsBatchResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comments: { type: 'CommentResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.AddReactionResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.AggregatedActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - activities: { type: 'ActivityResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.BaseActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - comments: { type: 'CommentResponse', isSingle: false }, - - latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - - mentioned_users: { type: 'UserResponse', isSingle: false }, - - own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, - - own_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - - reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, - - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - edited_at: { type: 'DatetimeType', isSingle: true }, - - expires_at: { type: 'DatetimeType', isSingle: true }, - - current_feed: { type: 'FeedResponse', isSingle: true }, - - poll: { type: 'PollResponseData', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.BookmarkAddedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - bookmark: { type: 'BookmarkResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.BookmarkDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - bookmark: { type: 'BookmarkResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.BookmarkFolderResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.BookmarkResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, - - folder: { type: 'BookmarkFolderResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.BookmarkUpdatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - bookmark: { type: 'BookmarkResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CommentAddedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - comment: { type: 'CommentResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CommentDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - comment: { type: 'CommentResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CommentReactionAddedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - comment: { type: 'CommentResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CommentReactionDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - comment: { type: 'CommentResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CommentResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - mentioned_users: { type: 'UserResponse', isSingle: false }, - - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - - reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.CommentUpdatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - comment: { type: 'CommentResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CreateFeedGroupResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feed_group: { type: 'FeedGroupResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CreateFeedViewResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feed_view: { type: 'FeedViewResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CreateFeedsBatchResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feeds: { type: 'FeedResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.DeleteActivityReactionResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.DeleteBookmarkResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - bookmark: { type: 'BookmarkResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.DeleteCommentReactionResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comment: { type: 'CommentResponse', isSingle: true }, - - reaction: { type: 'FeedsReactionResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.DeviceResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ExportFeedUserDataResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activities: { type: 'ActivityResponse', isSingle: false }, - - bookmarks: { type: 'BookmarkResponse', isSingle: false }, - - comments: { type: 'CommentResponse', isSingle: false }, - - reactions: { type: 'FeedsReactionResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedCreatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - members: { type: 'FeedMemberResponse', isSingle: false }, - - feed: { type: 'FeedResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedGroupChangedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedGroupDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedGroupResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedMemberAddedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - member: { type: 'FeedMemberResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedMemberRemovedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedMemberResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, - - invite_accepted_at: { type: 'DatetimeType', isSingle: true }, - - invite_rejected_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedMemberUpdatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - member: { type: 'FeedMemberResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - created_by: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedUpdatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - feed: { type: 'FeedResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedViewResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - last_used_at: { type: 'DatetimeType', isSingle: true }, - - activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.FeedsReactionResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FollowBatchResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - follows: { type: 'FollowResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.FollowCreatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - follow: { type: 'FollowResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FollowDeletedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - follow: { type: 'FollowResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FollowResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - source_feed: { type: 'FeedResponse', isSingle: true }, - - target_feed: { type: 'FeedResponse', isSingle: true }, - - request_accepted_at: { type: 'DatetimeType', isSingle: true }, - - request_rejected_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.FollowUpdatedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - follow: { type: 'FollowResponse', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.GetActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.GetCommentRepliesResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comments: { type: 'ThreadedCommentResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.GetCommentResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comment: { type: 'CommentResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.GetCommentsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comments: { type: 'ThreadedCommentResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.GetFollowSuggestionsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - suggestions: { type: 'FeedResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.GetOrCreateFeedResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activities: { type: 'ActivityResponse', isSingle: false }, - - aggregated_activities: { - type: 'AggregatedActivityResponse', - isSingle: false, - }, - - followers: { type: 'FollowResponse', isSingle: false }, - - following: { type: 'FollowResponse', isSingle: false }, - - members: { type: 'FeedMemberResponse', isSingle: false }, - - pinned_activities: { type: 'ActivityPinResponse', isSingle: false }, - - feed: { type: 'FeedResponse', isSingle: true }, - - own_follows: { type: 'FollowResponse', isSingle: false }, - - notification_status: { type: 'NotificationStatusResponse', isSingle: true }, - - own_membership: { type: 'FeedMemberResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.NotificationStatusResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - last_seen_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.PinActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - activity: { type: 'ActivityResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.PollResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - poll: { type: 'PollResponseData', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.PollResponseData = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - latest_answers: { type: 'PollVoteResponseData', isSingle: false }, - - own_votes: { type: 'PollVoteResponseData', isSingle: false }, - - created_by: { type: 'UserResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.PollVoteResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - vote: { type: 'PollVoteResponseData', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.PollVoteResponseData = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - user: { type: 'UserResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.PollVotesResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - votes: { type: 'PollVoteResponseData', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.PushNotificationSettingsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - disabled_until: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryActivitiesResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activities: { type: 'ActivityResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryActivityReactionsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - reactions: { type: 'FeedsReactionResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryBookmarkFoldersResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - bookmark_folders: { type: 'BookmarkFolderResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryBookmarksResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - bookmarks: { type: 'BookmarkResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryCommentReactionsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - reactions: { type: 'FeedsReactionResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryCommentsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comments: { type: 'CommentResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryFeedMembersResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - members: { type: 'FeedMemberResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryFeedsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feeds: { type: 'FeedResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryFollowsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - follows: { type: 'FollowResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.QueryPollsResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - polls: { type: 'PollResponseData', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.ReactionGroupResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - first_reaction_at: { type: 'DatetimeType', isSingle: true }, - - last_reaction_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.RejectFeedMemberInviteResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - member: { type: 'FeedMemberResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.RejectFollowResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - follow: { type: 'FollowResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.SingleFollowResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - follow: { type: 'FollowResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.ThreadedCommentResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - mentioned_users: { type: 'UserResponse', isSingle: false }, - - user: { type: 'UserResponse', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - - replies: { type: 'ThreadedCommentResponse', isSingle: false }, - - reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.UnpinActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateActivityPartialResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateActivityResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activity: { type: 'ActivityResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateBookmarkResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - bookmark: { type: 'BookmarkResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateCommentResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - comment: { type: 'CommentResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateFeedMembersResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - added: { type: 'FeedMemberResponse', isSingle: false }, - - updated: { type: 'FeedMemberResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateFeedResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feed: { type: 'FeedResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateFeedViewResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - feed_view: { type: 'FeedViewResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpdateFollowResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - follow: { type: 'FollowResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.UpsertActivitiesResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - activities: { type: 'ActivityResponse', isSingle: false }, - }; - return decode(typeMappings, input); -}; - -decoders.UserResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, - - ban_expires: { type: 'DatetimeType', isSingle: true }, - - deactivated_at: { type: 'DatetimeType', isSingle: true }, - - deleted_at: { type: 'DatetimeType', isSingle: true }, - - last_active: { type: 'DatetimeType', isSingle: true }, - - revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true }, - - devices: { type: 'DeviceResponse', isSingle: false }, - - push_notifications: { - type: 'PushNotificationSettingsResponse', - isSingle: true, - }, - }; - return decode(typeMappings, input); -}; diff --git a/src/gen-feeds/models/index.ts b/src/gen-feeds/models/index.ts deleted file mode 100644 index f08c8ed..0000000 --- a/src/gen-feeds/models/index.ts +++ /dev/null @@ -1,2564 +0,0 @@ -export interface APIError { - code: number; - - duration: string; - - message: string; - - more_info: string; - - status_code: number; - - details: number[]; - - unrecoverable?: boolean; - - exception_fields?: Record; -} - -export interface AcceptFeedMemberInviteRequest { - user_id?: string; - - user?: UserRequest; -} - -export interface AcceptFeedMemberInviteResponse { - duration: string; - - member: FeedMemberResponse; -} - -export interface AcceptFollowRequest { - source_fid: string; - - target_fid: string; - - follower_role?: string; -} - -export interface AcceptFollowResponse { - duration: string; - - follow: FollowResponse; -} - -export interface Action { - name: string; - - text: string; - - type: string; - - style?: string; - - value?: string; -} - -export interface ActivityAddedEvent { - created_at: Date; - - fid: string; - - activity: ActivityResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityAnalyserConfig {} - -export interface ActivityDeletedEvent { - created_at: Date; - - fid: string; - - activity: ActivityResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityLocation { - lat: number; - - lng: number; -} - -export interface ActivityMarkEvent { - created_at: Date; - - fid: string; - - custom: Record; - - type: string; - - mark_all_read?: boolean; - - mark_all_seen?: boolean; - - received_at?: Date; - - mark_read?: string[]; - - mark_watched?: string[]; - - user?: UserResponseCommonFields; -} - -export interface ActivityPinResponse { - created_at: Date; - - feed: string; - - updated_at: Date; - - activity: ActivityResponse; - - user: UserResponse; -} - -export interface ActivityPinnedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - pinned_activity: PinActivityResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityReactionAddedEvent { - created_at: Date; - - fid: string; - - activity: ActivityResponse; - - custom: Record; - - reaction: FeedsReactionResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityReactionDeletedEvent { - created_at: Date; - - fid: string; - - activity: ActivityResponse; - - custom: Record; - - reaction: FeedsReactionResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityRemovedFromFeedEvent { - created_at: Date; - - fid: string; - - activity: ActivityResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityRequest { - type: string; - - fids: string[]; - - expires_at?: string; - - id?: string; - - parent_id?: string; - - poll_id?: string; - - text?: string; - - user_id?: string; - - visibility?: 'public' | 'private' | 'tag'; - - visibility_tag?: string; - - attachments?: Attachment[]; - - filter_tags?: string[]; - - interest_tags?: string[]; - - mentioned_user_ids?: string[]; - - custom?: Record; - - location?: ActivityLocation; - - search_data?: Record; -} - -export interface ActivityResponse { - bookmark_count: number; - - comment_count: number; - - created_at: Date; - - id: string; - - popularity: number; - - score: number; - - share_count: number; - - type: string; - - updated_at: Date; - - visibility: 'public' | 'private' | 'tag'; - - attachments: Attachment[]; - - comments: CommentResponse[]; - - feeds: string[]; - - filter_tags: string[]; - - interest_tags: string[]; - - latest_reactions: FeedsReactionResponse[]; - - mentioned_users: UserResponse[]; - - own_bookmarks: BookmarkResponse[]; - - own_reactions: FeedsReactionResponse[]; - - custom: Record; - - reaction_groups: Record; - - search_data: Record; - - user: UserResponse; - - deleted_at?: Date; - - edited_at?: Date; - - expires_at?: Date; - - text?: string; - - visibility_tag?: string; - - current_feed?: FeedResponse; - - location?: ActivityLocation; - - moderation?: ModerationV2Response; - - parent?: BaseActivityResponse; - - poll?: PollResponseData; -} - -export interface ActivitySelectorConfig { - cutoff_time?: Date; - - min_popularity?: number; - - tag_filter_type?: string; - - type?: string; - - tags?: string[]; -} - -export interface ActivityUnpinnedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - pinned_activity: PinActivityResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface ActivityUpdatedEvent { - created_at: Date; - - fid: string; - - activity: ActivityResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface AddActivityRequest { - type: string; - - fids: string[]; - - expires_at?: string; - - id?: string; - - parent_id?: string; - - poll_id?: string; - - text?: string; - - user_id?: string; - - visibility?: 'public' | 'private' | 'tag'; - - visibility_tag?: string; - - attachments?: Attachment[]; - - filter_tags?: string[]; - - interest_tags?: string[]; - - mentioned_user_ids?: string[]; - - custom?: Record; - - location?: ActivityLocation; - - search_data?: Record; -} - -export interface AddActivityResponse { - duration: string; - - activity: ActivityResponse; -} - -export interface AddBookmarkRequest { - folder_id?: string; - - user_id?: string; - - custom?: Record; - - new_folder?: AddFolderRequest; - - user?: UserRequest; -} - -export interface AddBookmarkResponse { - duration: string; - - bookmark: BookmarkResponse; -} - -export interface AddCommentReactionRequest { - type: string; - - user_id?: string; - - custom?: Record; - - user?: UserRequest; -} - -export interface AddCommentReactionResponse { - duration: string; - - comment: CommentResponse; - - reaction: FeedsReactionResponse; -} - -export interface AddCommentRequest { - comment: string; - - object_id: string; - - object_type: string; - - parent_id?: string; - - attachments?: Attachment[]; - - mentioned_user_ids?: string[]; - - custom?: Record; -} - -export interface AddCommentResponse { - duration: string; - - comment: CommentResponse; -} - -export interface AddCommentsBatchRequest { - comments: AddCommentRequest[]; -} - -export interface AddCommentsBatchResponse { - duration: string; - - comments: CommentResponse[]; -} - -export interface AddFolderRequest { - name: string; - - custom?: Record; -} - -export interface AddReactionRequest { - type: string; - - user_id?: string; - - custom?: Record; - - user?: UserRequest; -} - -export interface AddReactionResponse { - duration: string; - - activity: ActivityResponse; - - reaction: FeedsReactionResponse; -} - -export interface AggregatedActivityResponse { - activity_count: number; - - created_at: Date; - - group: string; - - score: number; - - updated_at: Date; - - user_count: number; - - activities: ActivityResponse[]; -} - -export interface AggregationConfig { - format?: string; -} - -export interface Attachment { - custom: Record; - - asset_url?: string; - - author_icon?: string; - - author_link?: string; - - author_name?: string; - - color?: string; - - fallback?: string; - - footer?: string; - - footer_icon?: string; - - image_url?: string; - - latitude?: number; - - longitude?: number; - - og_scrape_url?: string; - - original_height?: number; - - original_width?: number; - - pretext?: string; - - stopped_sharing?: boolean; - - text?: string; - - thumb_url?: string; - - title?: string; - - title_link?: string; - - type?: string; - - actions?: Action[]; - - fields?: Field[]; - - giphy?: Images; -} - -export interface BaseActivityResponse { - bookmark_count: number; - - comment_count: number; - - created_at: Date; - - id: string; - - popularity: number; - - score: number; - - share_count: number; - - type: string; - - updated_at: Date; - - visibility: 'public' | 'private' | 'tag'; - - attachments: Attachment[]; - - comments: CommentResponse[]; - - feeds: string[]; - - filter_tags: string[]; - - interest_tags: string[]; - - latest_reactions: FeedsReactionResponse[]; - - mentioned_users: UserResponse[]; - - own_bookmarks: BookmarkResponse[]; - - own_reactions: FeedsReactionResponse[]; - - custom: Record; - - reaction_groups: Record; - - search_data: Record; - - user: UserResponse; - - deleted_at?: Date; - - edited_at?: Date; - - expires_at?: Date; - - text?: string; - - visibility_tag?: string; - - current_feed?: FeedResponse; - - location?: ActivityLocation; - - moderation?: ModerationV2Response; - - poll?: PollResponseData; -} - -export interface BookmarkAddedEvent { - created_at: Date; - - bookmark: BookmarkResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface BookmarkDeletedEvent { - created_at: Date; - - bookmark: BookmarkResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface BookmarkFolderResponse { - created_at: Date; - - id: string; - - name: string; - - updated_at: Date; - - custom?: Record; -} - -export interface BookmarkResponse { - created_at: Date; - - updated_at: Date; - - activity: ActivityResponse; - - user: UserResponse; - - custom?: Record; - - folder?: BookmarkFolderResponse; -} - -export interface BookmarkUpdatedEvent { - created_at: Date; - - bookmark: BookmarkResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface CastPollVoteRequest { - user_id?: string; - - user?: UserRequest; - - vote?: VoteData; -} - -export interface CommentAddedEvent { - created_at: Date; - - fid: string; - - comment: CommentResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface CommentDeletedEvent { - created_at: Date; - - fid: string; - - comment: CommentResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface CommentReactionAddedEvent { - created_at: Date; - - fid: string; - - comment: CommentResponse; - - custom: Record; - - reaction: FeedsReactionResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface CommentReactionDeletedEvent { - created_at: Date; - - fid: string; - - comment: CommentResponse; - - custom: Record; - - reaction: FeedsReactionResponse; - - type: string; - - received_at?: Date; -} - -export interface CommentResponse { - confidence_score: number; - - created_at: Date; - - downvote_count: number; - - id: string; - - object_id: string; - - object_type: string; - - reaction_count: number; - - reply_count: number; - - score: number; - - status: string; - - updated_at: Date; - - upvote_count: number; - - mentioned_users: UserResponse[]; - - user: UserResponse; - - controversy_score?: number; - - deleted_at?: Date; - - parent_id?: string; - - text?: string; - - attachments?: Attachment[]; - - latest_reactions?: FeedsReactionResponse[]; - - custom?: Record; - - moderation?: ModerationV2Response; - - reaction_groups?: Record; -} - -export interface CommentUpdatedEvent { - created_at: Date; - - fid: string; - - comment: CommentResponse; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface CreateFeedGroupRequest { - feed_group_id: string; - - activity_analysers?: ActivityAnalyserConfig[]; - - activity_selectors?: ActivitySelectorConfig[]; - - aggregation?: AggregationConfig; - - custom?: Record; - - notification?: NotificationConfig; - - ranking?: RankingConfig; -} - -export interface CreateFeedGroupResponse { - duration: string; - - feed_group: FeedGroupResponse; -} - -export interface CreateFeedViewRequest { - view_id: string; - - activity_selectors?: ActivitySelectorConfig[]; - - aggregation?: AggregationConfig; - - ranking?: RankingConfig; -} - -export interface CreateFeedViewResponse { - duration: string; - - feed_view: FeedViewResponse; -} - -export interface CreateFeedsBatchRequest { - feeds: FeedRequest[]; -} - -export interface CreateFeedsBatchResponse { - duration: string; - - feeds: FeedResponse[]; -} - -export interface CreatePollOptionRequest { - text: string; - - position?: number; - - user_id?: string; - - custom?: Record; - - user?: UserRequest; -} - -export interface CreatePollRequest { - name: string; - - allow_answers?: boolean; - - allow_user_suggested_options?: boolean; - - description?: string; - - enforce_unique_vote?: boolean; - - id?: string; - - is_closed?: boolean; - - max_votes_allowed?: number; - - user_id?: string; - - voting_visibility?: 'anonymous' | 'public'; - - options?: PollOptionInput[]; - - custom?: Record; - - user?: UserRequest; -} - -export interface DecayFunctionConfig { - base?: string; - - decay?: string; - - direction?: string; - - offset?: string; - - origin?: string; - - scale?: string; -} - -export interface DeleteActivitiesRequest { - activity_ids: string[]; - - hard_delete?: boolean; - - user_id?: string; - - user?: UserRequest; -} - -export interface DeleteActivitiesResponse { - duration: string; - - deleted_activity_ids: string[]; -} - -export interface DeleteActivityReactionResponse { - duration: string; - - activity: ActivityResponse; - - reaction: FeedsReactionResponse; -} - -export interface DeleteActivityResponse { - duration: string; -} - -export interface DeleteBookmarkResponse { - duration: string; - - bookmark: BookmarkResponse; -} - -export interface DeleteCommentReactionResponse { - duration: string; - - comment: CommentResponse; - - reaction: FeedsReactionResponse; -} - -export interface DeleteCommentResponse { - duration: string; -} - -export interface DeleteFeedGroupResponse { - duration: string; -} - -export interface DeleteFeedResponse { - duration: string; -} - -export interface DeleteFeedUserDataResponse { - deleted_activities: number; - - deleted_bookmarks: number; - - deleted_comments: number; - - deleted_reactions: number; - - duration: string; -} - -export interface DeleteFeedViewResponse { - duration: string; -} - -export interface DeviceResponse { - created_at: Date; - - id: string; - - push_provider: string; - - user_id: string; - - disabled?: boolean; - - disabled_reason?: string; - - push_provider_name?: string; - - voip?: boolean; -} - -export interface ExportFeedUserDataRequest {} - -export interface ExportFeedUserDataResponse { - duration: string; - - activities: ActivityResponse[]; - - bookmarks: BookmarkResponse[]; - - comments: CommentResponse[]; - - reactions: FeedsReactionResponse[]; -} - -export interface FeedCreatedEvent { - created_at: Date; - - fid: string; - - members: FeedMemberResponse[]; - - custom: Record; - - feed: FeedResponse; - - user: UserResponseCommonFields; - - type: string; - - received_at?: Date; -} - -export interface FeedDeletedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface FeedGroup { - aggregation_version: number; - - app_pk: number; - - created_at: Date; - - default_visibility: string; - - id: string; - - updated_at: Date; - - activity_analysers: ActivityAnalyserConfig[]; - - activity_selectors: ActivitySelectorConfig[]; - - custom: Record; - - deleted_at?: Date; - - last_feed_get_at?: Date; - - aggregation?: AggregationConfig; - - notification?: NotificationConfig; - - ranking?: RankingConfig; - - stories?: StoriesConfig; -} - -export interface FeedGroupChangedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - type: string; - - received_at?: Date; - - feed_group?: FeedGroup; - - user?: UserResponseCommonFields; -} - -export interface FeedGroupDeletedEvent { - created_at: Date; - - fid: string; - - group_id: string; - - custom: Record; - - type: string; - - received_at?: Date; -} - -export interface FeedGroupResponse { - created_at: Date; - - group_id: string; - - id: string; - - updated_at: Date; - - default_visibility?: string; - - activity_analysers?: ActivityAnalyserConfig[]; - - activity_selectors?: ActivitySelectorConfig[]; - - aggregation?: AggregationConfig; - - custom?: Record; - - notification?: NotificationConfig; - - ranking?: RankingConfig; - - stories?: StoriesConfig; -} - -export interface FeedInput { - description?: string; - - name?: string; - - visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; - - members?: FeedMemberRequest[]; - - custom?: Record; -} - -export interface FeedMemberAddedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - member: FeedMemberResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface FeedMemberRemovedEvent { - created_at: Date; - - fid: string; - - member_id: string; - - custom: Record; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface FeedMemberRequest { - user_id: string; - - invite?: boolean; - - role?: string; - - custom?: Record; -} - -export interface FeedMemberResponse { - created_at: Date; - - role: string; - - status: 'member' | 'pending' | 'rejected'; - - updated_at: Date; - - user: UserResponse; - - invite_accepted_at?: Date; - - invite_rejected_at?: Date; - - custom?: Record; -} - -export interface FeedMemberUpdatedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - member: FeedMemberResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export const FeedOwnCapability = { - ADD_ACTIVITY: 'add-activity', - ADD_ACTIVITY_REACTION: 'add-activity-reaction', - ADD_COMMENT: 'add-comment', - ADD_COMMENT_REACTION: 'add-comment-reaction', - BOOKMARK_ACTIVITY: 'bookmark-activity', - CREATE_FEED: 'create-feed', - DELETE_BOOKMARK: 'delete-bookmark', - DELETE_COMMENT: 'delete-comment', - DELETE_FEED: 'delete-feed', - EDIT_BOOKMARK: 'edit-bookmark', - FOLLOW: 'follow', - INVITE_FEED: 'invite-feed', - JOIN_FEED: 'join-feed', - LEAVE_FEED: 'leave-feed', - MANAGE_FEED_GROUP: 'manage-feed-group', - MARK_ACTIVITY: 'mark-activity', - PIN_ACTIVITY: 'pin-activity', - QUERY_FEED_MEMBERS: 'query-feed-members', - QUERY_FOLLOWS: 'query-follows', - READ_ACTIVITIES: 'read-activities', - READ_FEED: 'read-feed', - REMOVE_ACTIVITY: 'remove-activity', - REMOVE_ACTIVITY_REACTION: 'remove-activity-reaction', - REMOVE_COMMENT_REACTION: 'remove-comment-reaction', - UNFOLLOW: 'unfollow', - UPDATE_ACTIVITY: 'update-activity', - UPDATE_COMMENT: 'update-comment', - UPDATE_FEED: 'update-feed', - UPDATE_FEED_FOLLOWERS: 'update-feed-followers', - UPDATE_FEED_MEMBERS: 'update-feed-members', -} as const; - -// eslint-disable-next-line @typescript-eslint/no-redeclare -export type FeedOwnCapability = - (typeof FeedOwnCapability)[keyof typeof FeedOwnCapability]; - -export interface FeedRequest { - feed_group_id: string; - - feed_id: string; - - created_by_id?: string; - - description?: string; - - name?: string; - - visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; - - members?: FeedMemberRequest[]; - - custom?: Record; -} - -export interface FeedResponse { - created_at: Date; - - description: string; - - fid: string; - - follower_count: number; - - following_count: number; - - group_id: string; - - id: string; - - member_count: number; - - name: string; - - pin_count: number; - - updated_at: Date; - - created_by: UserResponse; - - deleted_at?: Date; - - visibility?: string; - - custom?: Record; -} - -export interface FeedUpdatedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - feed: FeedResponse; - - type: string; - - received_at?: Date; - - user?: UserResponseCommonFields; -} - -export interface FeedViewResponse { - feed_group_id: string; - - view_id: string; - - last_used_at?: Date; - - activity_selectors?: ActivitySelectorConfig[]; - - aggregation?: AggregationConfig; - - ranking?: RankingConfig; -} - -export interface FeedsReactionResponse { - activity_id: string; - - created_at: Date; - - type: string; - - updated_at: Date; - - user: UserResponse; - - comment_id?: string; - - custom?: Record; -} - -export interface Field { - short: boolean; - - title: string; - - value: string; -} - -export interface FollowBatchRequest { - follows: FollowRequest[]; -} - -export interface FollowBatchResponse { - duration: string; - - follows: FollowResponse[]; -} - -export interface FollowCreatedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - follow: FollowResponse; - - type: string; - - received_at?: Date; -} - -export interface FollowDeletedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - follow: FollowResponse; - - type: string; - - received_at?: Date; -} - -export interface FollowPair { - source: string; - - target: string; -} - -export interface FollowRequest { - source: string; - - target: string; - - push_preference?: 'all' | 'none'; - - custom?: Record; -} - -export interface FollowResponse { - created_at: Date; - - follower_role: string; - - push_preference: 'all' | 'none'; - - status: 'accepted' | 'pending' | 'rejected'; - - updated_at: Date; - - source_feed: FeedResponse; - - target_feed: FeedResponse; - - request_accepted_at?: Date; - - request_rejected_at?: Date; - - custom?: Record; -} - -export interface FollowUpdatedEvent { - created_at: Date; - - fid: string; - - custom: Record; - - follow: FollowResponse; - - type: string; - - received_at?: Date; -} - -export interface GetActivityResponse { - duration: string; - - activity: ActivityResponse; -} - -export interface GetCommentRepliesResponse { - duration: string; - - comments: ThreadedCommentResponse[]; - - next?: string; - - prev?: string; -} - -export interface GetCommentResponse { - duration: string; - - comment: CommentResponse; -} - -export interface GetCommentsResponse { - duration: string; - - comments: ThreadedCommentResponse[]; - - next?: string; - - prev?: string; -} - -export interface GetFollowSuggestionsResponse { - duration: string; - - suggestions: FeedResponse[]; -} - -export interface GetOrCreateFeedRequest { - comment_limit?: number; - - comment_sort?: 'first' | 'last' | 'popular'; - - limit?: number; - - next?: string; - - prev?: string; - - user_id?: string; - - view?: string; - - watch?: boolean; - - data?: FeedInput; - - external_ranking?: Record; - - filter?: Record; - - follower_pagination?: PagerRequest; - - following_pagination?: PagerRequest; - - member_pagination?: PagerRequest; - - user?: UserRequest; -} - -export interface GetOrCreateFeedResponse { - duration: string; - - activities: ActivityResponse[]; - - aggregated_activities: AggregatedActivityResponse[]; - - followers: FollowResponse[]; - - following: FollowResponse[]; - - members: FeedMemberResponse[]; - - own_capabilities: FeedOwnCapability[]; - - pinned_activities: ActivityPinResponse[]; - - feed: FeedResponse; - - next?: string; - - prev?: string; - - own_follows?: FollowResponse[]; - - followers_pagination?: PagerResponse; - - following_pagination?: PagerResponse; - - member_pagination?: PagerResponse; - - notification_status?: NotificationStatusResponse; - - own_membership?: FeedMemberResponse; -} - -export interface ImageData { - frames: string; - - height: string; - - size: string; - - url: string; - - width: string; -} - -export interface Images { - fixed_height: ImageData; - - fixed_height_downsampled: ImageData; - - fixed_height_still: ImageData; - - fixed_width: ImageData; - - fixed_width_downsampled: ImageData; - - fixed_width_still: ImageData; - - original: ImageData; -} - -export interface MarkActivityRequest { - mark_all_read?: boolean; - - mark_all_seen?: boolean; - - user_id?: string; - - mark_read?: string[]; - - mark_watched?: string[]; - - user?: UserRequest; -} - -export interface ModerationV2Response { - action: string; - - original_text: string; - - blocklist_matched?: string; - - platform_circumvented?: boolean; - - semantic_filter_matched?: string; - - image_harms?: string[]; - - text_harms?: string[]; -} - -export interface NotificationConfig { - track_read?: boolean; - - track_seen?: boolean; -} - -export interface NotificationStatusResponse { - unread: number; - - unseen: number; - - last_seen_at?: Date; - - read_activities?: string[]; -} - -export interface PagerRequest { - limit?: number; - - next?: string; - - prev?: string; -} - -export interface PagerResponse { - next?: string; - - prev?: string; -} - -export interface PinActivityRequest { - user_id?: string; - - user?: UserRequest; -} - -export interface PinActivityResponse { - created_at: Date; - - duration: string; - - fid: string; - - user_id: string; - - activity: ActivityResponse; -} - -export interface PollOptionInput { - text?: string; - - custom?: Record; -} - -export interface PollOptionRequest { - id: string; - - text?: string; - - custom?: Record; -} - -export interface PollOptionResponse { - duration: string; - - poll_option: PollOptionResponseData; -} - -export interface PollOptionResponseData { - id: string; - - text: string; - - custom: Record; -} - -export interface PollResponse { - duration: string; - - poll: PollResponseData; -} - -export interface PollResponseData { - allow_answers: boolean; - - allow_user_suggested_options: boolean; - - answers_count: number; - - created_at: Date; - - created_by_id: string; - - description: string; - - enforce_unique_vote: boolean; - - id: string; - - name: string; - - updated_at: Date; - - vote_count: number; - - voting_visibility: string; - - latest_answers: PollVoteResponseData[]; - - options: PollOptionResponseData[]; - - own_votes: PollVoteResponseData[]; - - custom: Record; - - latest_votes_by_option: Record; - - vote_counts_by_option: Record; - - is_closed?: boolean; - - max_votes_allowed?: number; - - created_by?: UserResponse; -} - -export interface PollVoteResponse { - duration: string; - - vote?: PollVoteResponseData; -} - -export interface PollVoteResponseData { - created_at: Date; - - id: string; - - option_id: string; - - poll_id: string; - - updated_at: Date; - - answer_text?: string; - - is_answer?: boolean; - - user_id?: string; - - user?: UserResponse; -} - -export interface PollVotesResponse { - duration: string; - - votes: PollVoteResponseData[]; - - next?: string; - - prev?: string; -} - -export interface PrivacySettingsResponse { - read_receipts?: ReadReceiptsResponse; - - typing_indicators?: TypingIndicatorsResponse; -} - -export interface PushNotificationSettingsResponse { - disabled?: boolean; - - disabled_until?: Date; -} - -export interface QueryActivitiesRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryActivitiesResponse { - duration: string; - - activities: ActivityResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryActivityReactionsRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryActivityReactionsResponse { - duration: string; - - reactions: FeedsReactionResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryBookmarkFoldersRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryBookmarkFoldersResponse { - duration: string; - - bookmark_folders: BookmarkFolderResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryBookmarksRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryBookmarksResponse { - duration: string; - - bookmarks: BookmarkResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryCommentReactionsRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryCommentReactionsResponse { - duration: string; - - reactions: FeedsReactionResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryCommentsRequest { - filter: Record; - - limit?: number; - - next?: string; - - prev?: string; - - sort?: 'first' | 'last' | 'top' | 'best' | 'controversial'; -} - -export interface QueryCommentsResponse { - duration: string; - - comments: CommentResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryFeedMembersRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryFeedMembersResponse { - duration: string; - - members: FeedMemberResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryFeedsRequest { - limit?: number; - - next?: string; - - prev?: string; - - watch?: boolean; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryFeedsResponse { - duration: string; - - feeds: FeedResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryFollowsRequest { - limit?: number; - - next?: string; - - prev?: string; - - user_id?: string; - - sort?: SortParamRequest[]; - - filter?: Record; - - user?: UserRequest; -} - -export interface QueryFollowsResponse { - duration: string; - - follows: FollowResponse[]; - - next?: string; - - prev?: string; -} - -export interface QueryPollVotesRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryPollsRequest { - limit?: number; - - next?: string; - - prev?: string; - - sort?: SortParamRequest[]; - - filter?: Record; -} - -export interface QueryPollsResponse { - duration: string; - - polls: PollResponseData[]; - - next?: string; - - prev?: string; -} - -export interface RankingConfig { - decay_factor?: number; - - recency_weight?: number; - - score?: string; - - type?: string; - - defaults?: Record; - - functions?: Record; -} - -export interface ReactionGroupResponse { - count: number; - - first_reaction_at: Date; - - last_reaction_at: Date; -} - -export interface ReadReceiptsResponse { - enabled: boolean; -} - -export interface RejectFeedMemberInviteRequest { - user_id?: string; - - user?: UserRequest; -} - -export interface RejectFeedMemberInviteResponse { - duration: string; - - member: FeedMemberResponse; -} - -export interface RejectFollowRequest { - source_fid: string; - - target_fid: string; -} - -export interface RejectFollowResponse { - duration: string; - - follow: FollowResponse; -} - -export interface RepliesMeta { - depth_truncated: boolean; - - has_more: boolean; - - remaining: number; - - next_cursor?: string; -} - -export interface Response { - duration: string; -} - -export interface SingleFollowRequest { - source: string; - - target: string; - - push_preference?: 'all' | 'none'; - - custom?: Record; -} - -export interface SingleFollowResponse { - duration: string; - - follow: FollowResponse; -} - -export interface SortParamRequest { - direction?: number; - - field?: string; -} - -export interface StoriesConfig { - expiration_behaviour?: string; - - skip_watched?: boolean; -} - -export interface ThreadedCommentResponse { - confidence_score: number; - - created_at: Date; - - downvote_count: number; - - id: string; - - object_id: string; - - object_type: string; - - reaction_count: number; - - reply_count: number; - - score: number; - - status: string; - - updated_at: Date; - - upvote_count: number; - - mentioned_users: UserResponse[]; - - user: UserResponse; - - controversy_score?: number; - - deleted_at?: Date; - - parent_id?: string; - - text?: string; - - attachments?: Attachment[]; - - latest_reactions?: FeedsReactionResponse[]; - - replies?: ThreadedCommentResponse[]; - - custom?: Record; - - meta?: RepliesMeta; - - moderation?: ModerationV2Response; - - reaction_groups?: Record; -} - -export interface TypingIndicatorsResponse { - enabled: boolean; -} - -export interface UnfollowBatchRequest { - follows: FollowPair[]; - - user_id?: string; - - user?: UserRequest; -} - -export interface UnfollowBatchResponse { - duration: string; -} - -export interface UnfollowResponse { - duration: string; -} - -export interface UnpinActivityResponse { - duration: string; - - fid: string; - - user_id: string; - - activity: ActivityResponse; -} - -export interface UpdateActivityPartialRequest { - user_id?: string; - - unset?: string[]; - - set?: Record; - - user?: UserRequest; -} - -export interface UpdateActivityPartialResponse { - duration: string; - - activity: ActivityResponse; -} - -export interface UpdateActivityRequest { - expires_at?: Date; - - poll_id?: string; - - text?: string; - - user_id?: string; - - visibility?: string; - - attachments?: Attachment[]; - - filter_tags?: string[]; - - interest_tags?: string[]; - - custom?: Record; - - location?: ActivityLocation; - - user?: UserRequest; -} - -export interface UpdateActivityResponse { - duration: string; - - activity: ActivityResponse; -} - -export interface UpdateBookmarkRequest { - folder_id?: string; - - new_folder_id?: string; - - user_id?: string; - - custom?: Record; - - new_folder?: AddFolderRequest; - - user?: UserRequest; -} - -export interface UpdateBookmarkResponse { - duration: string; - - bookmark: BookmarkResponse; -} - -export interface UpdateCommentRequest { - comment?: string; - - custom?: Record; -} - -export interface UpdateCommentResponse { - duration: string; - - comment: CommentResponse; -} - -export interface UpdateFeedMembersRequest { - operation: 'upsert' | 'remove' | 'set'; - - limit?: number; - - next?: string; - - prev?: string; - - members?: FeedMemberRequest[]; -} - -export interface UpdateFeedMembersResponse { - duration: string; - - added: FeedMemberResponse[]; - - removed_ids: string[]; - - updated: FeedMemberResponse[]; -} - -export interface UpdateFeedRequest { - created_by_id?: string; - - custom?: Record; -} - -export interface UpdateFeedResponse { - duration: string; - - feed: FeedResponse; -} - -export interface UpdateFeedViewRequest { - activity_selectors?: ActivitySelectorConfig[]; - - aggregation?: AggregationConfig; - - ranking?: RankingConfig; -} - -export interface UpdateFeedViewResponse { - duration: string; - - feed_view: FeedViewResponse; -} - -export interface UpdateFollowRequest { - source: string; - - target: string; - - push_preference?: 'all' | 'none'; - - custom?: Record; -} - -export interface UpdateFollowResponse { - duration: string; - - follow: FollowResponse; -} - -export interface UpdatePollOptionRequest { - id: string; - - text: string; - - user_id?: string; - - custom?: Record; - - user?: UserRequest; -} - -export interface UpdatePollPartialRequest { - user_id?: string; - - unset?: string[]; - - set?: Record; - - user?: UserRequest; -} - -export interface UpdatePollRequest { - id: string; - - name: string; - - allow_answers?: boolean; - - allow_user_suggested_options?: boolean; - - description?: string; - - enforce_unique_vote?: boolean; - - is_closed?: boolean; - - max_votes_allowed?: number; - - user_id?: string; - - voting_visibility?: 'anonymous' | 'public'; - - options?: PollOptionRequest[]; - - custom?: Record; - - user?: UserRequest; -} - -export interface UpsertActivitiesRequest { - activities: ActivityRequest[]; -} - -export interface UpsertActivitiesResponse { - duration: string; - - activities: ActivityResponse[]; -} - -export interface UserRequest { - id: string; - - image?: string; - - invisible?: boolean; - - language?: string; - - name?: string; - - role?: string; - - teams?: string[]; - - custom?: Record; - - privacy_settings?: PrivacySettingsResponse; - - teams_role?: Record; -} - -export interface UserResponse { - banned: boolean; - - created_at: Date; - - id: string; - - invisible: boolean; - - language: string; - - online: boolean; - - role: string; - - shadow_banned: boolean; - - updated_at: Date; - - blocked_user_ids: string[]; - - teams: string[]; - - custom: Record; - - ban_expires?: Date; - - deactivated_at?: Date; - - deleted_at?: Date; - - image?: string; - - last_active?: Date; - - name?: string; - - revoke_tokens_issued_before?: Date; - - devices?: DeviceResponse[]; - - privacy_settings?: PrivacySettingsResponse; - - push_notifications?: PushNotificationSettingsResponse; - - teams_role?: Record; -} - -export interface UserResponseCommonFields { - banned: boolean; - - created_at: Date; - - id: string; - - language: string; - - online: boolean; - - role: string; - - updated_at: Date; - - blocked_user_ids: string[]; - - teams: string[]; - - custom: Record; - - deactivated_at?: Date; - - deleted_at?: Date; - - image?: string; - - last_active?: Date; - - name?: string; - - revoke_tokens_issued_before?: Date; - - teams_role?: Record; -} - -export interface VoteData { - answer_text?: string; - - option_id?: string; - - option?: PollOptionResponseData; -} - -export type WebhookEvent = - | ({ type: 'feeds.activity.added' } & ActivityAddedEvent) - | ({ type: 'feeds.activity.deleted' } & ActivityDeletedEvent) - | ({ type: 'feeds.activity.marked' } & ActivityMarkEvent) - | ({ type: 'feeds.activity.pinned' } & ActivityPinnedEvent) - | ({ type: 'feeds.activity.reaction.added' } & ActivityReactionAddedEvent) - | ({ type: 'feeds.activity.reaction.deleted' } & ActivityReactionDeletedEvent) - | ({ - type: 'feeds.activity.removed_from_feed'; - } & ActivityRemovedFromFeedEvent) - | ({ type: 'feeds.activity.unpinned' } & ActivityUnpinnedEvent) - | ({ type: 'feeds.activity.updated' } & ActivityUpdatedEvent) - | ({ type: 'feeds.bookmark.added' } & BookmarkAddedEvent) - | ({ type: 'feeds.bookmark.deleted' } & BookmarkDeletedEvent) - | ({ type: 'feeds.bookmark.updated' } & BookmarkUpdatedEvent) - | ({ type: 'feeds.comment.added' } & CommentAddedEvent) - | ({ type: 'feeds.comment.deleted' } & CommentDeletedEvent) - | ({ type: 'feeds.comment.reaction.added' } & CommentReactionAddedEvent) - | ({ type: 'feeds.comment.reaction.deleted' } & CommentReactionDeletedEvent) - | ({ type: 'feeds.comment.updated' } & CommentUpdatedEvent) - | ({ type: 'feeds.feed.created' } & FeedCreatedEvent) - | ({ type: 'feeds.feed.deleted' } & FeedDeletedEvent) - | ({ type: 'feeds.feed.updated' } & FeedUpdatedEvent) - | ({ type: 'feeds.feed_group.changed' } & FeedGroupChangedEvent) - | ({ type: 'feeds.feed_group.deleted' } & FeedGroupDeletedEvent) - | ({ type: 'feeds.feed_member.added' } & FeedMemberAddedEvent) - | ({ type: 'feeds.feed_member.removed' } & FeedMemberRemovedEvent) - | ({ type: 'feeds.feed_member.updated' } & FeedMemberUpdatedEvent) - | ({ type: 'feeds.follow.created' } & FollowCreatedEvent) - | ({ type: 'feeds.follow.deleted' } & FollowDeletedEvent) - | ({ type: 'feeds.follow.updated' } & FollowUpdatedEvent); diff --git a/src/gen-imports.ts b/src/gen-imports.ts index 3e0d8dd..a107901 100644 --- a/src/gen-imports.ts +++ b/src/gen-imports.ts @@ -2,4 +2,4 @@ export * from './ApiClient'; export * from './gen/chat/ChatApi'; export * from './gen/video/VideoApi'; export * from './types'; -export * from './gen-feeds/feeds/FeedsApi'; +export * from './gen/feeds/FeedsApi'; diff --git a/src/gen/chat/ChannelApi.ts b/src/gen/chat/ChannelApi.ts index a519dca..ef60fa1 100644 --- a/src/gen/chat/ChannelApi.ts +++ b/src/gen/chat/ChannelApi.ts @@ -1,33 +1,913 @@ import { StreamResponse, ChatApi } from '../../gen-imports'; import { + AIImageConfig, + AITextConfig, + AIVideoConfig, + APIError, + APNConfig, + APNConfigFields, + APNS, + AWSRekognitionRule, + AcceptFeedMemberInviteRequest, + AcceptFeedMemberInviteResponse, + AcceptFollowRequest, + AcceptFollowResponse, + Action, + ActionLog, + ActionLogResponse, + ActionSequence, + ActivityAddedEvent, + ActivityAnalyserConfig, + ActivityDeletedEvent, + ActivityLocation, + ActivityMarkEvent, + ActivityMarkedEvent, + ActivityPinResponse, + ActivityPinnedEvent, + ActivityReactionAddedEvent, + ActivityReactionDeletedEvent, + ActivityRemovedFromFeedEvent, + ActivityRequest, + ActivityResponse, + ActivitySelectorConfig, + ActivityUnpinnedEvent, + ActivityUpdatedEvent, + AddActivityRequest, + AddActivityResponse, + AddBookmarkRequest, + AddBookmarkResponse, + AddCommentReactionRequest, + AddCommentReactionResponse, + AddCommentRequest, + AddCommentResponse, + AddCommentsBatchRequest, + AddCommentsBatchResponse, + AddFolderRequest, + AddReactionRequest, + AddReactionResponse, + AggregatedActivityResponse, + AggregationConfig, + AnyEvent, + AppResponseFields, + AsyncBulkImageModerationEvent, + AsyncExportChannelsEvent, + AsyncExportErrorEvent, + AsyncExportModerationLogsEvent, + AsyncExportUsersEvent, + AsyncModerationCallbackConfig, + AsyncModerationConfiguration, + Attachment, + AudioSettings, + AudioSettingsRequest, + AudioSettingsResponse, + AutomodDetails, + AutomodPlatformCircumventionConfig, + AutomodRule, + AutomodSemanticFiltersConfig, + AutomodSemanticFiltersRule, + AutomodToxicityConfig, + AzureRequest, + BackstageSettings, + BackstageSettingsRequest, + BackstageSettingsResponse, + Ban, + BanActionRequest, + BanRequest, + BanResponse, + BlockListConfig, + BlockListOptions, + BlockListResponse, + BlockListRule, + BlockUserRequest, + BlockUserResponse, + BlockUsersRequest, + BlockUsersResponse, + BlockedUserEvent, + BlockedUserResponse, + BodyguardRule, + BodyguardSeverityRule, + BookmarkAddedEvent, + BookmarkDeletedEvent, + BookmarkFolderResponse, + BookmarkResponse, + BookmarkUpdatedEvent, + Bound, + BroadcastSettings, + BroadcastSettingsRequest, + BroadcastSettingsResponse, + BrowserDataResponse, + BulkImageModerationRequest, + BulkImageModerationResponse, + Call, + CallAcceptedEvent, + CallClosedCaption, + CallClosedCaptionsFailedEvent, + CallClosedCaptionsStartedEvent, + CallClosedCaptionsStoppedEvent, + CallCreatedEvent, + CallDeletedEvent, + CallDurationReport, + CallDurationReportResponse, + CallEgress, + CallEndedEvent, + CallFrameRecordingFailedEvent, + CallFrameRecordingFrameReadyEvent, + CallFrameRecordingStartedEvent, + CallFrameRecordingStoppedEvent, + CallHLSBroadcastingFailedEvent, + CallHLSBroadcastingStartedEvent, + CallHLSBroadcastingStoppedEvent, + CallIngressResponse, + CallLiveStartedEvent, + CallMember, + CallMemberAddedEvent, + CallMemberRemovedEvent, + CallMemberUpdatedEvent, + CallMemberUpdatedPermissionEvent, + CallMissedEvent, + CallModerationBlurEvent, + CallModerationWarningEvent, + CallNotificationEvent, + CallParticipant, + CallParticipantCountReport, + CallParticipantCountReportResponse, + CallParticipantResponse, + CallReactionEvent, + CallRecording, + CallRecordingFailedEvent, + CallRecordingReadyEvent, + CallRecordingStartedEvent, + CallRecordingStoppedEvent, + CallRejectedEvent, + CallReportResponse, + CallRequest, + CallResponse, + CallRingEvent, + CallRtmpBroadcastFailedEvent, + CallRtmpBroadcastStartedEvent, + CallRtmpBroadcastStoppedEvent, + CallSession, + CallSessionEndedEvent, + CallSessionParticipantJoinedEvent, + CallSessionParticipantLeftEvent, + CallSessionResponse, + CallSessionStartedEvent, + CallSettings, + CallSettingsRequest, + CallSettingsResponse, + CallStateResponseFields, + CallStatsReportReadyEvent, + CallStatsReportSummaryResponse, + CallTranscription, + CallTranscriptionFailedEvent, + CallTranscriptionReadyEvent, + CallTranscriptionStartedEvent, + CallTranscriptionStoppedEvent, + CallType, + CallTypeResponse, + CallUpdatedEvent, + CallUserFeedbackSubmittedEvent, + CallUserMutedEvent, + CallsPerDayReport, + CallsPerDayReportResponse, + CampaignChannelTemplate, + CampaignCompletedEvent, + CampaignMessageTemplate, + CampaignResponse, + CampaignStartedEvent, + CampaignStatsResponse, + CastPollVoteRequest, + Channel, + ChannelConfig, + ChannelConfigWithInfo, + ChannelCreatedEvent, + ChannelDeletedEvent, + ChannelExport, + ChannelFrozenEvent, ChannelGetOrCreateRequest, + ChannelHiddenEvent, + ChannelInput, + ChannelMember, + ChannelMemberResponse, + ChannelMessages, + ChannelMute, + ChannelMutedEvent, + ChannelOwnCapability, + ChannelPushPreferences, + ChannelResponse, ChannelStateResponse, + ChannelStateResponseFields, + ChannelTruncatedEvent, + ChannelTypeConfig, + ChannelUnFrozenEvent, + ChannelUnmutedEvent, + ChannelUpdatedEvent, + ChannelVisibleEvent, + ChatActivityStatsResponse, + CheckExternalStorageResponse, + CheckPushRequest, + CheckPushResponse, + CheckRequest, + CheckResponse, + CheckSNSRequest, + CheckSNSResponse, + CheckSQSRequest, + CheckSQSResponse, + ClientOSDataResponse, + ClosedCaptionEvent, + CollectUserFeedbackRequest, + CollectUserFeedbackResponse, + Command, + CommentAddedEvent, + CommentDeletedEvent, + CommentReactionAddedEvent, + CommentReactionDeletedEvent, + CommentResponse, + CommentUpdatedEvent, + CommitMessageRequest, + CompositeAppSettings, + ConfigOverrides, + ConfigResponse, + CountByMinuteResponse, + CreateBlockListRequest, + CreateBlockListResponse, + CreateCallTypeRequest, + CreateCallTypeResponse, + CreateChannelTypeRequest, + CreateChannelTypeResponse, + CreateCommandRequest, + CreateCommandResponse, + CreateDeviceRequest, + CreateExternalStorageRequest, + CreateExternalStorageResponse, + CreateFeedGroupRequest, + CreateFeedGroupResponse, + CreateFeedViewRequest, + CreateFeedViewResponse, + CreateFeedsBatchRequest, + CreateFeedsBatchResponse, + CreateGuestRequest, + CreateGuestResponse, + CreateImportRequest, + CreateImportResponse, + CreateImportURLRequest, + CreateImportURLResponse, + CreatePollOptionRequest, + CreatePollRequest, + CreateReminderRequest, + CreateRoleRequest, + CreateRoleResponse, + CustomActionRequest, + CustomCheckFlag, + CustomCheckRequest, + CustomCheckResponse, + CustomVideoEvent, + DailyAggregateCallDurationReportResponse, + DailyAggregateCallParticipantCountReportResponse, + DailyAggregateCallsPerDayReportResponse, + DailyAggregateQualityScoreReportResponse, + DailyAggregateSDKUsageReportResponse, + DailyAggregateUserFeedbackReportResponse, + Data, + DataDogInfo, + DeactivateUserRequest, + DeactivateUserResponse, + DeactivateUsersRequest, + DeactivateUsersResponse, + DecayFunctionConfig, + DeleteActivitiesRequest, + DeleteActivitiesResponse, + DeleteActivityReactionResponse, + DeleteActivityRequest, + DeleteActivityResponse, + DeleteBookmarkResponse, + DeleteCallRequest, + DeleteCallResponse, DeleteChannelResponse, + DeleteChannelsRequest, + DeleteChannelsResponse, + DeleteChannelsResultResponse, + DeleteCommandResponse, + DeleteCommentReactionResponse, + DeleteCommentResponse, + DeleteExternalStorageResponse, + DeleteFeedGroupResponse, + DeleteFeedResponse, + DeleteFeedUserDataResponse, + DeleteFeedViewResponse, + DeleteMessageRequest, + DeleteMessageResponse, + DeleteModerationConfigResponse, + DeleteModerationTemplateResponse, + DeleteReactionRequest, + DeleteReactionResponse, + DeleteRecordingResponse, + DeleteReminderResponse, + DeleteSegmentTargetsRequest, + DeleteTranscriptionResponse, + DeleteUserRequest, + DeleteUsersRequest, + DeleteUsersResponse, + Device, + DeviceDataResponse, + DeviceErrorInfo, + DeviceResponse, + DraftPayloadResponse, + DraftResponse, + EdgeResponse, + EgressHLSResponse, + EgressRTMPResponse, + EgressResponse, + EgressTaskConfig, + EgressUser, + EndCallRequest, + EndCallResponse, + EnrichedActivity, + EnrichedReaction, + EntityCreator, + EntityCreatorResponse, + ErrorResult, + EventHook, + EventNotificationSettings, + EventRequest, EventResponse, + ExportChannelsRequest, + ExportChannelsResponse, + ExportFeedUserDataRequest, + ExportFeedUserDataResponse, + ExportUserResponse, + ExportUsersRequest, + ExportUsersResponse, + ExternalStorage, + ExternalStorageResponse, + FCM, + FeedCreatedEvent, + FeedDeletedEvent, + FeedGroup, + FeedGroupChangedEvent, + FeedGroupDeletedEvent, + FeedGroupResponse, + FeedInput, + FeedMemberAddedEvent, + FeedMemberRemovedEvent, + FeedMemberRequest, + FeedMemberResponse, + FeedMemberUpdatedEvent, + FeedOwnCapability, + FeedRequest, + FeedResponse, + FeedUpdatedEvent, + FeedViewResponse, + FeedsModerationTemplateConfig, + FeedsReactionResponse, + Field, + FileUploadConfig, FileUploadRequest, FileUploadResponse, + FirebaseConfig, + FirebaseConfigFields, + Flag, + FlagDetails, + FlagFeedback, + FlagMessageDetails, + FlagRequest, + FlagResponse, + FlagUpdatedEvent, + FollowBatchRequest, + FollowBatchResponse, + FollowCreatedEvent, + FollowDeletedEvent, + FollowPair, + FollowRequest, + FollowResponse, + FollowUpdatedEvent, + FrameRecordSettings, + FrameRecordingEgressConfig, + FrameRecordingResponse, + FrameRecordingSettingsRequest, + FrameRecordingSettingsResponse, + FullUserResponse, + GeofenceResponse, + GeofenceSettings, + GeofenceSettingsRequest, + GeofenceSettingsResponse, + GetActivityResponse, + GetApplicationResponse, + GetBlockListResponse, + GetBlockedUsersResponse, + GetCallReportResponse, + GetCallResponse, + GetCallTypeResponse, + GetCampaignResponse, + GetChannelTypeResponse, + GetCommandResponse, + GetCommentRepliesResponse, + GetCommentResponse, + GetCommentsResponse, + GetConfigResponse, + GetCustomPermissionResponse, GetDraftResponse, + GetEdgesResponse, + GetFollowSuggestionsResponse, + GetImportResponse, GetManyMessagesResponse, + GetMessageResponse, + GetOGResponse, + GetOrCreateCallRequest, + GetOrCreateCallResponse, + GetOrCreateFeedRequest, + GetOrCreateFeedResponse, + GetPushTemplatesResponse, + GetRateLimitsResponse, + GetReactionsResponse, + GetRepliesResponse, + GetReviewQueueItemResponse, + GetSegmentResponse, + GetTaskResponse, + GetThreadResponse, + GoLiveRequest, + GoLiveResponse, + GoogleVisionConfig, + GroupedStatsResponse, + HLSEgressConfig, + HLSSettings, + HLSSettingsRequest, + HLSSettingsResponse, + HarmConfig, HideChannelRequest, HideChannelResponse, + HuaweiConfig, + HuaweiConfigFields, + ImageData, + ImageSize, ImageUploadRequest, ImageUploadResponse, + Images, + ImportTask, + ImportTaskHistory, + Label, + LabelThresholds, + LayoutSettings, + LayoutSettingsRequest, + LayoutSettingsResponse, + LimitInfo, + LimitsSettings, + LimitsSettingsRequest, + LimitsSettingsResponse, + ListBlockListResponse, + ListCallTypeResponse, + ListChannelTypesResponse, + ListCommandsResponse, + ListDevicesResponse, + ListExternalStorageResponse, + ListImportsResponse, + ListPermissionsResponse, + ListPushProvidersResponse, + ListRecordingsResponse, + ListRolesResponse, + ListTranscriptionsResponse, + MarkActivityRequest, + MarkChannelsReadRequest, MarkReadRequest, MarkReadResponse, + MarkReviewedRequest, MarkUnreadRequest, + MemberAddedEvent, + MemberLookup, + MemberRemovedEvent, + MemberRequest, + MemberResponse, + MemberUpdatedEvent, + MembersResponse, + Message, + MessageActionRequest, + MessageChangeSet, + MessageDeletedEvent, + MessageFlagResponse, + MessageFlaggedEvent, + MessageHistoryEntryResponse, + MessageModerationResult, + MessageNewEvent, + MessageOptions, + MessagePaginationParams, + MessageReadEvent, + MessageReminder, + MessageRequest, + MessageResponse, + MessageStatsResponse, + MessageUnblockedEvent, + MessageUndeletedEvent, + MessageUpdate, + MessageUpdatedEvent, + MessageWithChannelResponse, + ModerationActionConfig, + ModerationCheckCompletedEvent, + ModerationCustomActionEvent, + ModerationDashboardPreferences, + ModerationFlagResponse, + ModerationFlaggedEvent, + ModerationMarkReviewedEvent, + ModerationPayload, + ModerationResponse, + ModerationV2Response, + MuteChannelRequest, + MuteChannelResponse, + MuteRequest, + MuteResponse, + MuteUsersRequest, + MuteUsersResponse, + NetworkMetricsReportResponse, + NoiseCancellationSettings, + NotificationConfig, + NotificationMarkUnreadEvent, + NotificationSettings, + NotificationStatusResponse, + NullTime, + OCRRule, + OnlyUserID, + OwnCapability, + OwnUser, + OwnUserResponse, + PagerRequest, + PagerResponse, + PaginationParams, + ParticipantCountByMinuteResponse, + ParticipantCountOverTimeResponse, + ParticipantReportResponse, + PendingMessageResponse, + PerSDKUsageReport, + Permission, + PermissionRequestEvent, + PinActivityRequest, + PinActivityResponse, + PinRequest, + PinResponse, + PlatformDataResponse, + Policy, + PolicyRequest, + Poll, + PollOption, + PollOptionInput, + PollOptionRequest, + PollOptionResponse, + PollOptionResponseData, + PollResponse, + PollResponseData, + PollVote, + PollVoteResponse, + PollVoteResponseData, + PollVotesResponse, + PrivacySettings, + PrivacySettingsResponse, + PublisherStatsResponse, + PushConfig, + PushNotificationFields, + PushNotificationSettingsResponse, + PushPreferenceInput, + PushPreferences, + PushProvider, + PushProviderResponse, + PushTemplate, + Quality, + QualityScoreReport, + QualityScoreReportResponse, + QueryActivitiesRequest, + QueryActivitiesResponse, + QueryActivityReactionsRequest, + QueryActivityReactionsResponse, + QueryAggregateCallStatsRequest, + QueryAggregateCallStatsResponse, + QueryBannedUsersPayload, + QueryBannedUsersResponse, + QueryBookmarkFoldersRequest, + QueryBookmarkFoldersResponse, + QueryBookmarksRequest, + QueryBookmarksResponse, + QueryCallMembersRequest, + QueryCallMembersResponse, + QueryCallParticipantsRequest, + QueryCallParticipantsResponse, + QueryCallStatsRequest, + QueryCallStatsResponse, + QueryCallsRequest, + QueryCallsResponse, + QueryCampaignsRequest, + QueryCampaignsResponse, + QueryChannelsRequest, + QueryChannelsResponse, + QueryCommentReactionsRequest, + QueryCommentReactionsResponse, + QueryCommentsRequest, + QueryCommentsResponse, + QueryDraftsRequest, + QueryDraftsResponse, + QueryFeedMembersRequest, + QueryFeedMembersResponse, + QueryFeedModerationTemplate, + QueryFeedModerationTemplatesResponse, + QueryFeedsRequest, + QueryFeedsResponse, + QueryFollowsRequest, + QueryFollowsResponse, + QueryMembersPayload, + QueryMessageFlagsPayload, + QueryMessageFlagsResponse, + QueryMessageHistoryRequest, + QueryMessageHistoryResponse, + QueryModerationConfigsRequest, + QueryModerationConfigsResponse, + QueryModerationFlagsRequest, + QueryModerationFlagsResponse, + QueryModerationLogsRequest, + QueryModerationLogsResponse, + QueryPollVotesRequest, + QueryPollsRequest, + QueryPollsResponse, + QueryReactionsRequest, + QueryReactionsResponse, + QueryRemindersRequest, + QueryRemindersResponse, + QueryReviewQueueRequest, + QueryReviewQueueResponse, + QuerySegmentTargetsRequest, + QuerySegmentTargetsResponse, + QuerySegmentsRequest, + QuerySegmentsResponse, + QueryThreadsRequest, + QueryThreadsResponse, + QueryUserFeedbackRequest, + QueryUserFeedbackResponse, + QueryUsersPayload, + QueryUsersResponse, + RTMPBroadcastRequest, + RTMPEgressConfig, + RTMPIngress, + RTMPLocation, + RTMPSettings, + RTMPSettingsRequest, + RTMPSettingsResponse, + RankingConfig, + Reaction, + ReactionDeletedEvent, + ReactionGroupResponse, + ReactionNewEvent, + ReactionRequest, + ReactionResponse, + ReactionUpdatedEvent, + ReactivateUserRequest, + ReactivateUserResponse, + ReactivateUsersRequest, + ReactivateUsersResponse, + ReadReceipts, + ReadReceiptsResponse, + ReadStateResponse, + RecordSettings, + RecordSettingsRequest, + RecordSettingsResponse, + RecordingEgressConfig, + RejectFeedMemberInviteRequest, + RejectFeedMemberInviteResponse, + RejectFollowRequest, + RejectFollowResponse, + ReminderResponseData, + RepliesMeta, + ReportByHistogramBucket, + ReportResponse, + Response, + RestoreActionRequest, + RestoreUsersRequest, + ReviewQueueItem, + ReviewQueueItemNewEvent, + ReviewQueueItemResponse, + ReviewQueueItemUpdatedEvent, + RingSettings, + RingSettingsRequest, + RingSettingsResponse, + Role, + RuleBuilderAction, + RuleBuilderCondition, + RuleBuilderConfig, + RuleBuilderRule, + S3Request, + SDKUsageReport, + SDKUsageReportResponse, + SFUIDLastSeen, + STTEgressConfig, + ScreensharingSettings, + ScreensharingSettingsRequest, + ScreensharingSettingsResponse, + SearchPayload, + SearchResponse, + SearchResult, + SearchResultMessage, + SearchWarning, + Segment, + SegmentResponse, + SegmentTargetResponse, + SendCallEventRequest, + SendCallEventResponse, SendEventRequest, SendMessageRequest, SendMessageResponse, + SendReactionRequest, + SendReactionResponse, + SendUserCustomEventRequest, + SessionSettings, + SessionSettingsRequest, + SessionSettingsResponse, + ShadowBlockActionRequest, ShowChannelRequest, ShowChannelResponse, + SingleFollowRequest, + SingleFollowResponse, + SortParam, + SortParamRequest, + StartCampaignRequest, + StartCampaignResponse, + StartClosedCaptionsRequest, + StartClosedCaptionsResponse, + StartFrameRecordingRequest, + StartFrameRecordingResponse, + StartHLSBroadcastingRequest, + StartHLSBroadcastingResponse, + StartRTMPBroadcastsRequest, + StartRTMPBroadcastsResponse, + StartRecordingRequest, + StartRecordingResponse, + StartTranscriptionRequest, + StartTranscriptionResponse, + StopAllRTMPBroadcastsRequest, + StopAllRTMPBroadcastsResponse, + StopCampaignRequest, + StopClosedCaptionsRequest, + StopClosedCaptionsResponse, + StopFrameRecordingRequest, + StopFrameRecordingResponse, + StopHLSBroadcastingRequest, + StopHLSBroadcastingResponse, + StopLiveRequest, + StopLiveResponse, + StopRTMPBroadcastsRequest, + StopRTMPBroadcastsResponse, + StopRecordingRequest, + StopRecordingResponse, + StopTranscriptionRequest, + StopTranscriptionResponse, + StoriesConfig, + SubmitActionRequest, + SubmitActionResponse, + SubscriberStatsResponse, + TargetResolution, + ThreadParticipant, + ThreadResponse, + ThreadStateResponse, + ThreadUpdatedEvent, + ThreadedCommentResponse, + Thresholds, + ThumbnailResponse, + ThumbnailsSettings, + ThumbnailsSettingsRequest, + ThumbnailsSettingsResponse, + Time, + TrackStatsResponse, + TranscriptionSettings, + TranscriptionSettingsRequest, + TranscriptionSettingsResponse, + TranslateMessageRequest, TruncateChannelRequest, TruncateChannelResponse, + TypingIndicators, + TypingIndicatorsResponse, + UnbanActionRequest, + UnbanRequest, + UnbanResponse, + UnblockActionRequest, + UnblockUserRequest, + UnblockUserResponse, + UnblockUsersRequest, + UnblockUsersResponse, + UnblockedUserEvent, + UnfollowBatchRequest, + UnfollowBatchResponse, + UnfollowResponse, + UnmuteChannelRequest, + UnmuteRequest, + UnmuteResponse, + UnpinActivityResponse, + UnpinRequest, + UnpinResponse, + UnreadCountsBatchRequest, + UnreadCountsBatchResponse, + UnreadCountsChannel, + UnreadCountsChannelType, + UnreadCountsResponse, + UnreadCountsThread, + UpdateActivityPartialRequest, + UpdateActivityPartialResponse, + UpdateActivityRequest, + UpdateActivityResponse, + UpdateAppRequest, + UpdateBlockListRequest, + UpdateBlockListResponse, + UpdateBookmarkRequest, + UpdateBookmarkResponse, + UpdateCallMembersRequest, + UpdateCallMembersResponse, + UpdateCallRequest, + UpdateCallResponse, + UpdateCallTypeRequest, + UpdateCallTypeResponse, UpdateChannelPartialRequest, UpdateChannelPartialResponse, UpdateChannelRequest, UpdateChannelResponse, + UpdateChannelTypeRequest, + UpdateChannelTypeResponse, + UpdateCommandRequest, + UpdateCommandResponse, + UpdateCommentRequest, + UpdateCommentResponse, + UpdateExternalStorageRequest, + UpdateExternalStorageResponse, + UpdateFeedMembersRequest, + UpdateFeedMembersResponse, + UpdateFeedRequest, + UpdateFeedResponse, + UpdateFeedViewRequest, + UpdateFeedViewResponse, + UpdateFollowRequest, + UpdateFollowResponse, UpdateMemberPartialRequest, UpdateMemberPartialResponse, + UpdateMessagePartialRequest, + UpdateMessagePartialResponse, + UpdateMessageRequest, + UpdateMessageResponse, + UpdatePollOptionRequest, + UpdatePollPartialRequest, + UpdatePollRequest, + UpdateReminderRequest, + UpdateReminderResponse, + UpdateThreadPartialRequest, + UpdateThreadPartialResponse, + UpdateUserPartialRequest, + UpdateUserPermissionsRequest, + UpdateUserPermissionsResponse, + UpdateUsersPartialRequest, + UpdateUsersRequest, + UpdateUsersResponse, + UpdatedCallPermissionsEvent, + UpsertActivitiesRequest, + UpsertActivitiesResponse, + UpsertConfigRequest, + UpsertConfigResponse, + UpsertModerationTemplateRequest, + UpsertModerationTemplateResponse, + UpsertPushPreferencesRequest, + UpsertPushPreferencesResponse, + UpsertPushProviderRequest, + UpsertPushProviderResponse, + UpsertPushTemplateRequest, + UpsertPushTemplateResponse, + User, + UserBannedEvent, + UserCustomEventRequest, + UserDeactivatedEvent, + UserDeletedEvent, + UserFeedbackReport, + UserFeedbackReportResponse, + UserFeedbackResponse, + UserFlaggedEvent, + UserMute, + UserMuteResponse, + UserMutedEvent, + UserRatingReportResponse, + UserReactivatedEvent, + UserRequest, + UserResponse, + UserResponseCommonFields, + UserResponsePrivacyFields, + UserUnbannedEvent, + UserUnmutedEvent, + UserUnreadReminderEvent, + UserUpdatedEvent, + VelocityFilterConfig, + VelocityFilterConfigRule, + VideoCallRuleConfig, + VideoEndCallRequest, + VideoKickUserRequest, + VideoOrientation, + VideoReactionOverTimeResponse, + VideoReactionsResponse, + VideoSettings, + VideoSettingsRequest, + VideoSettingsResponse, + VoteData, + WSEvent, + WebhookEvent, + WrappedUnreadCountsResponse, + XiaomiConfig, + XiaomiConfigFields, } from '../models'; export class ChannelApi { @@ -234,7 +1114,7 @@ export class ChannelApi { } getManyMessages(request: { - ids: string[]; + ids: Array; }): Promise> { if (!this.id) { throw new Error( diff --git a/src/gen/chat/ChatApi.ts b/src/gen/chat/ChatApi.ts index 875ff0b..279aca6 100644 --- a/src/gen/chat/ChatApi.ts +++ b/src/gen/chat/ChatApi.ts @@ -1,91 +1,822 @@ import { ApiClient, StreamResponse } from '../../gen-imports'; import { + AIImageConfig, + AITextConfig, + AIVideoConfig, + APIError, + APNConfig, + APNConfigFields, + APNS, + AWSRekognitionRule, + AcceptFeedMemberInviteRequest, + AcceptFeedMemberInviteResponse, + AcceptFollowRequest, + AcceptFollowResponse, + Action, + ActionLog, + ActionLogResponse, + ActionSequence, + ActivityAddedEvent, + ActivityAnalyserConfig, + ActivityDeletedEvent, + ActivityLocation, + ActivityMarkEvent, + ActivityMarkedEvent, + ActivityPinResponse, + ActivityPinnedEvent, + ActivityReactionAddedEvent, + ActivityReactionDeletedEvent, + ActivityRemovedFromFeedEvent, + ActivityRequest, + ActivityResponse, + ActivitySelectorConfig, + ActivityUnpinnedEvent, + ActivityUpdatedEvent, + AddActivityRequest, + AddActivityResponse, + AddBookmarkRequest, + AddBookmarkResponse, + AddCommentReactionRequest, + AddCommentReactionResponse, + AddCommentRequest, + AddCommentResponse, + AddCommentsBatchRequest, + AddCommentsBatchResponse, + AddFolderRequest, + AddReactionRequest, + AddReactionResponse, + AggregatedActivityResponse, + AggregationConfig, + AnyEvent, + AppResponseFields, + AsyncBulkImageModerationEvent, + AsyncExportChannelsEvent, + AsyncExportErrorEvent, + AsyncExportModerationLogsEvent, + AsyncExportUsersEvent, + AsyncModerationCallbackConfig, + AsyncModerationConfiguration, + Attachment, + AudioSettings, + AudioSettingsRequest, + AudioSettingsResponse, + AutomodDetails, + AutomodPlatformCircumventionConfig, + AutomodRule, + AutomodSemanticFiltersConfig, + AutomodSemanticFiltersRule, + AutomodToxicityConfig, + AzureRequest, + BackstageSettings, + BackstageSettingsRequest, + BackstageSettingsResponse, + Ban, + BanActionRequest, + BanRequest, + BanResponse, + BlockListConfig, + BlockListOptions, + BlockListResponse, + BlockListRule, + BlockUserRequest, + BlockUserResponse, + BlockUsersRequest, + BlockUsersResponse, + BlockedUserEvent, + BlockedUserResponse, + BodyguardRule, + BodyguardSeverityRule, + BookmarkAddedEvent, + BookmarkDeletedEvent, + BookmarkFolderResponse, + BookmarkResponse, + BookmarkUpdatedEvent, + Bound, + BroadcastSettings, + BroadcastSettingsRequest, + BroadcastSettingsResponse, + BrowserDataResponse, + BulkImageModerationRequest, + BulkImageModerationResponse, + Call, + CallAcceptedEvent, + CallClosedCaption, + CallClosedCaptionsFailedEvent, + CallClosedCaptionsStartedEvent, + CallClosedCaptionsStoppedEvent, + CallCreatedEvent, + CallDeletedEvent, + CallDurationReport, + CallDurationReportResponse, + CallEgress, + CallEndedEvent, + CallFrameRecordingFailedEvent, + CallFrameRecordingFrameReadyEvent, + CallFrameRecordingStartedEvent, + CallFrameRecordingStoppedEvent, + CallHLSBroadcastingFailedEvent, + CallHLSBroadcastingStartedEvent, + CallHLSBroadcastingStoppedEvent, + CallIngressResponse, + CallLiveStartedEvent, + CallMember, + CallMemberAddedEvent, + CallMemberRemovedEvent, + CallMemberUpdatedEvent, + CallMemberUpdatedPermissionEvent, + CallMissedEvent, + CallModerationBlurEvent, + CallModerationWarningEvent, + CallNotificationEvent, + CallParticipant, + CallParticipantCountReport, + CallParticipantCountReportResponse, + CallParticipantResponse, + CallReactionEvent, + CallRecording, + CallRecordingFailedEvent, + CallRecordingReadyEvent, + CallRecordingStartedEvent, + CallRecordingStoppedEvent, + CallRejectedEvent, + CallReportResponse, + CallRequest, + CallResponse, + CallRingEvent, + CallRtmpBroadcastFailedEvent, + CallRtmpBroadcastStartedEvent, + CallRtmpBroadcastStoppedEvent, + CallSession, + CallSessionEndedEvent, + CallSessionParticipantJoinedEvent, + CallSessionParticipantLeftEvent, + CallSessionResponse, + CallSessionStartedEvent, + CallSettings, + CallSettingsRequest, + CallSettingsResponse, + CallStateResponseFields, + CallStatsReportReadyEvent, + CallStatsReportSummaryResponse, + CallTranscription, + CallTranscriptionFailedEvent, + CallTranscriptionReadyEvent, + CallTranscriptionStartedEvent, + CallTranscriptionStoppedEvent, + CallType, + CallTypeResponse, + CallUpdatedEvent, + CallUserFeedbackSubmittedEvent, + CallUserMutedEvent, + CallsPerDayReport, + CallsPerDayReportResponse, + CampaignChannelTemplate, + CampaignCompletedEvent, + CampaignMessageTemplate, CampaignResponse, + CampaignStartedEvent, + CampaignStatsResponse, + CastPollVoteRequest, + Channel, + ChannelConfig, + ChannelConfigWithInfo, + ChannelCreatedEvent, + ChannelDeletedEvent, + ChannelExport, + ChannelFrozenEvent, ChannelGetOrCreateRequest, + ChannelHiddenEvent, + ChannelInput, + ChannelMember, + ChannelMemberResponse, + ChannelMessages, + ChannelMute, + ChannelMutedEvent, + ChannelOwnCapability, + ChannelPushPreferences, + ChannelResponse, ChannelStateResponse, + ChannelStateResponseFields, + ChannelTruncatedEvent, + ChannelTypeConfig, + ChannelUnFrozenEvent, + ChannelUnmutedEvent, + ChannelUpdatedEvent, + ChannelVisibleEvent, + ChatActivityStatsResponse, + CheckExternalStorageResponse, + CheckPushRequest, + CheckPushResponse, + CheckRequest, + CheckResponse, + CheckSNSRequest, + CheckSNSResponse, + CheckSQSRequest, + CheckSQSResponse, + ClientOSDataResponse, + ClosedCaptionEvent, + CollectUserFeedbackRequest, + CollectUserFeedbackResponse, + Command, + CommentAddedEvent, + CommentDeletedEvent, + CommentReactionAddedEvent, + CommentReactionDeletedEvent, + CommentResponse, + CommentUpdatedEvent, CommitMessageRequest, + CompositeAppSettings, + ConfigOverrides, + ConfigResponse, + CountByMinuteResponse, + CreateBlockListRequest, + CreateBlockListResponse, + CreateCallTypeRequest, + CreateCallTypeResponse, CreateChannelTypeRequest, CreateChannelTypeResponse, CreateCommandRequest, CreateCommandResponse, + CreateDeviceRequest, + CreateExternalStorageRequest, + CreateExternalStorageResponse, + CreateFeedGroupRequest, + CreateFeedGroupResponse, + CreateFeedViewRequest, + CreateFeedViewResponse, + CreateFeedsBatchRequest, + CreateFeedsBatchResponse, + CreateGuestRequest, + CreateGuestResponse, + CreateImportRequest, + CreateImportResponse, + CreateImportURLRequest, + CreateImportURLResponse, + CreatePollOptionRequest, + CreatePollRequest, + CreateReminderRequest, + CreateRoleRequest, + CreateRoleResponse, + CustomActionRequest, + CustomCheckFlag, + CustomCheckRequest, + CustomCheckResponse, + CustomVideoEvent, + DailyAggregateCallDurationReportResponse, + DailyAggregateCallParticipantCountReportResponse, + DailyAggregateCallsPerDayReportResponse, + DailyAggregateQualityScoreReportResponse, + DailyAggregateSDKUsageReportResponse, + DailyAggregateUserFeedbackReportResponse, + Data, + DataDogInfo, + DeactivateUserRequest, + DeactivateUserResponse, + DeactivateUsersRequest, + DeactivateUsersResponse, + DecayFunctionConfig, + DeleteActivitiesRequest, + DeleteActivitiesResponse, + DeleteActivityReactionResponse, + DeleteActivityRequest, + DeleteActivityResponse, + DeleteBookmarkResponse, + DeleteCallRequest, + DeleteCallResponse, DeleteChannelResponse, DeleteChannelsRequest, DeleteChannelsResponse, + DeleteChannelsResultResponse, DeleteCommandResponse, + DeleteCommentReactionResponse, + DeleteCommentResponse, + DeleteExternalStorageResponse, + DeleteFeedGroupResponse, + DeleteFeedResponse, + DeleteFeedUserDataResponse, + DeleteFeedViewResponse, + DeleteMessageRequest, DeleteMessageResponse, + DeleteModerationConfigResponse, + DeleteModerationTemplateResponse, + DeleteReactionRequest, DeleteReactionResponse, + DeleteRecordingResponse, + DeleteReminderResponse, DeleteSegmentTargetsRequest, + DeleteTranscriptionResponse, + DeleteUserRequest, + DeleteUsersRequest, + DeleteUsersResponse, + Device, + DeviceDataResponse, + DeviceErrorInfo, + DeviceResponse, + DraftPayloadResponse, + DraftResponse, + EdgeResponse, + EgressHLSResponse, + EgressRTMPResponse, + EgressResponse, + EgressTaskConfig, + EgressUser, + EndCallRequest, + EndCallResponse, + EnrichedActivity, + EnrichedReaction, + EntityCreator, + EntityCreatorResponse, + ErrorResult, + EventHook, + EventNotificationSettings, + EventRequest, EventResponse, ExportChannelsRequest, ExportChannelsResponse, + ExportFeedUserDataRequest, + ExportFeedUserDataResponse, + ExportUserResponse, + ExportUsersRequest, + ExportUsersResponse, + ExternalStorage, + ExternalStorageResponse, + FCM, + FeedCreatedEvent, + FeedDeletedEvent, + FeedGroup, + FeedGroupChangedEvent, + FeedGroupDeletedEvent, + FeedGroupResponse, + FeedInput, + FeedMemberAddedEvent, + FeedMemberRemovedEvent, + FeedMemberRequest, + FeedMemberResponse, + FeedMemberUpdatedEvent, + FeedOwnCapability, + FeedRequest, + FeedResponse, + FeedUpdatedEvent, + FeedViewResponse, + FeedsModerationTemplateConfig, + FeedsReactionResponse, + Field, + FileUploadConfig, FileUploadRequest, FileUploadResponse, + FirebaseConfig, + FirebaseConfigFields, + Flag, + FlagDetails, + FlagFeedback, + FlagMessageDetails, + FlagRequest, + FlagResponse, + FlagUpdatedEvent, + FollowBatchRequest, + FollowBatchResponse, + FollowCreatedEvent, + FollowDeletedEvent, + FollowPair, + FollowRequest, + FollowResponse, + FollowUpdatedEvent, + FrameRecordSettings, + FrameRecordingEgressConfig, + FrameRecordingResponse, + FrameRecordingSettingsRequest, + FrameRecordingSettingsResponse, + FullUserResponse, + GeofenceResponse, + GeofenceSettings, + GeofenceSettingsRequest, + GeofenceSettingsResponse, + GetActivityResponse, + GetApplicationResponse, + GetBlockListResponse, + GetBlockedUsersResponse, + GetCallReportResponse, + GetCallResponse, + GetCallTypeResponse, GetCampaignResponse, GetChannelTypeResponse, GetCommandResponse, + GetCommentRepliesResponse, + GetCommentResponse, + GetCommentsResponse, + GetConfigResponse, + GetCustomPermissionResponse, GetDraftResponse, + GetEdgesResponse, + GetFollowSuggestionsResponse, + GetImportResponse, GetManyMessagesResponse, GetMessageResponse, + GetOGResponse, + GetOrCreateCallRequest, + GetOrCreateCallResponse, + GetOrCreateFeedRequest, + GetOrCreateFeedResponse, + GetPushTemplatesResponse, + GetRateLimitsResponse, GetReactionsResponse, GetRepliesResponse, + GetReviewQueueItemResponse, GetSegmentResponse, + GetTaskResponse, GetThreadResponse, + GoLiveRequest, + GoLiveResponse, + GoogleVisionConfig, + GroupedStatsResponse, + HLSEgressConfig, + HLSSettings, + HLSSettingsRequest, + HLSSettingsResponse, + HarmConfig, HideChannelRequest, HideChannelResponse, + HuaweiConfig, + HuaweiConfigFields, + ImageData, + ImageSize, ImageUploadRequest, ImageUploadResponse, + Images, + ImportTask, + ImportTaskHistory, + Label, + LabelThresholds, + LayoutSettings, + LayoutSettingsRequest, + LayoutSettingsResponse, + LimitInfo, + LimitsSettings, + LimitsSettingsRequest, + LimitsSettingsResponse, + ListBlockListResponse, + ListCallTypeResponse, ListChannelTypesResponse, ListCommandsResponse, + ListDevicesResponse, + ListExternalStorageResponse, + ListImportsResponse, + ListPermissionsResponse, + ListPushProvidersResponse, + ListRecordingsResponse, + ListRolesResponse, + ListTranscriptionsResponse, + MarkActivityRequest, MarkChannelsReadRequest, MarkReadRequest, MarkReadResponse, + MarkReviewedRequest, MarkUnreadRequest, + MemberAddedEvent, + MemberLookup, + MemberRemovedEvent, + MemberRequest, + MemberResponse, + MemberUpdatedEvent, MembersResponse, + Message, MessageActionRequest, + MessageChangeSet, + MessageDeletedEvent, + MessageFlagResponse, + MessageFlaggedEvent, + MessageHistoryEntryResponse, + MessageModerationResult, + MessageNewEvent, + MessageOptions, + MessagePaginationParams, + MessageReadEvent, + MessageReminder, + MessageRequest, MessageResponse, + MessageStatsResponse, + MessageUnblockedEvent, + MessageUndeletedEvent, + MessageUpdate, + MessageUpdatedEvent, + MessageWithChannelResponse, + ModerationActionConfig, + ModerationCheckCompletedEvent, + ModerationCustomActionEvent, + ModerationDashboardPreferences, + ModerationFlagResponse, + ModerationFlaggedEvent, + ModerationMarkReviewedEvent, + ModerationPayload, + ModerationResponse, + ModerationV2Response, MuteChannelRequest, MuteChannelResponse, + MuteRequest, + MuteResponse, + MuteUsersRequest, + MuteUsersResponse, + NetworkMetricsReportResponse, + NoiseCancellationSettings, + NotificationConfig, + NotificationMarkUnreadEvent, + NotificationSettings, + NotificationStatusResponse, + NullTime, + OCRRule, + OnlyUserID, + OwnCapability, + OwnUser, + OwnUserResponse, + PagerRequest, + PagerResponse, + PaginationParams, + ParticipantCountByMinuteResponse, + ParticipantCountOverTimeResponse, + ParticipantReportResponse, + PendingMessageResponse, + PerSDKUsageReport, + Permission, + PermissionRequestEvent, + PinActivityRequest, + PinActivityResponse, + PinRequest, + PinResponse, + PlatformDataResponse, + Policy, + PolicyRequest, + Poll, + PollOption, + PollOptionInput, + PollOptionRequest, + PollOptionResponse, + PollOptionResponseData, + PollResponse, + PollResponseData, + PollVote, + PollVoteResponse, + PollVoteResponseData, + PollVotesResponse, + PrivacySettings, + PrivacySettingsResponse, + PublisherStatsResponse, + PushConfig, + PushNotificationFields, + PushNotificationSettingsResponse, + PushPreferenceInput, + PushPreferences, + PushProvider, + PushProviderResponse, + PushTemplate, + Quality, + QualityScoreReport, + QualityScoreReportResponse, + QueryActivitiesRequest, + QueryActivitiesResponse, + QueryActivityReactionsRequest, + QueryActivityReactionsResponse, + QueryAggregateCallStatsRequest, + QueryAggregateCallStatsResponse, QueryBannedUsersPayload, QueryBannedUsersResponse, + QueryBookmarkFoldersRequest, + QueryBookmarkFoldersResponse, + QueryBookmarksRequest, + QueryBookmarksResponse, + QueryCallMembersRequest, + QueryCallMembersResponse, + QueryCallParticipantsRequest, + QueryCallParticipantsResponse, + QueryCallStatsRequest, + QueryCallStatsResponse, + QueryCallsRequest, + QueryCallsResponse, QueryCampaignsRequest, QueryCampaignsResponse, QueryChannelsRequest, QueryChannelsResponse, + QueryCommentReactionsRequest, + QueryCommentReactionsResponse, + QueryCommentsRequest, + QueryCommentsResponse, QueryDraftsRequest, QueryDraftsResponse, + QueryFeedMembersRequest, + QueryFeedMembersResponse, + QueryFeedModerationTemplate, + QueryFeedModerationTemplatesResponse, + QueryFeedsRequest, + QueryFeedsResponse, + QueryFollowsRequest, + QueryFollowsResponse, QueryMembersPayload, QueryMessageFlagsPayload, QueryMessageFlagsResponse, QueryMessageHistoryRequest, QueryMessageHistoryResponse, + QueryModerationConfigsRequest, + QueryModerationConfigsResponse, + QueryModerationFlagsRequest, + QueryModerationFlagsResponse, + QueryModerationLogsRequest, + QueryModerationLogsResponse, + QueryPollVotesRequest, + QueryPollsRequest, + QueryPollsResponse, QueryReactionsRequest, QueryReactionsResponse, + QueryRemindersRequest, + QueryRemindersResponse, + QueryReviewQueueRequest, + QueryReviewQueueResponse, QuerySegmentTargetsRequest, QuerySegmentTargetsResponse, QuerySegmentsRequest, QuerySegmentsResponse, QueryThreadsRequest, QueryThreadsResponse, + QueryUserFeedbackRequest, + QueryUserFeedbackResponse, + QueryUsersPayload, + QueryUsersResponse, + RTMPBroadcastRequest, + RTMPEgressConfig, + RTMPIngress, + RTMPLocation, + RTMPSettings, + RTMPSettingsRequest, + RTMPSettingsResponse, + RankingConfig, + Reaction, + ReactionDeletedEvent, + ReactionGroupResponse, + ReactionNewEvent, + ReactionRequest, + ReactionResponse, + ReactionUpdatedEvent, + ReactivateUserRequest, + ReactivateUserResponse, + ReactivateUsersRequest, + ReactivateUsersResponse, + ReadReceipts, + ReadReceiptsResponse, + ReadStateResponse, + RecordSettings, + RecordSettingsRequest, + RecordSettingsResponse, + RecordingEgressConfig, + RejectFeedMemberInviteRequest, + RejectFeedMemberInviteResponse, + RejectFollowRequest, + RejectFollowResponse, + ReminderResponseData, + RepliesMeta, + ReportByHistogramBucket, + ReportResponse, + Response, + RestoreActionRequest, + RestoreUsersRequest, + ReviewQueueItem, + ReviewQueueItemNewEvent, + ReviewQueueItemResponse, + ReviewQueueItemUpdatedEvent, + RingSettings, + RingSettingsRequest, + RingSettingsResponse, + Role, + RuleBuilderAction, + RuleBuilderCondition, + RuleBuilderConfig, + RuleBuilderRule, + S3Request, + SDKUsageReport, + SDKUsageReportResponse, + SFUIDLastSeen, + STTEgressConfig, + ScreensharingSettings, + ScreensharingSettingsRequest, + ScreensharingSettingsResponse, SearchPayload, SearchResponse, + SearchResult, + SearchResultMessage, + SearchWarning, + Segment, + SegmentResponse, + SegmentTargetResponse, + SendCallEventRequest, + SendCallEventResponse, SendEventRequest, SendMessageRequest, SendMessageResponse, SendReactionRequest, SendReactionResponse, SendUserCustomEventRequest, + SessionSettings, + SessionSettingsRequest, + SessionSettingsResponse, + ShadowBlockActionRequest, ShowChannelRequest, ShowChannelResponse, + SingleFollowRequest, + SingleFollowResponse, + SortParam, + SortParamRequest, StartCampaignRequest, StartCampaignResponse, + StartClosedCaptionsRequest, + StartClosedCaptionsResponse, + StartFrameRecordingRequest, + StartFrameRecordingResponse, + StartHLSBroadcastingRequest, + StartHLSBroadcastingResponse, + StartRTMPBroadcastsRequest, + StartRTMPBroadcastsResponse, + StartRecordingRequest, + StartRecordingResponse, + StartTranscriptionRequest, + StartTranscriptionResponse, + StopAllRTMPBroadcastsRequest, + StopAllRTMPBroadcastsResponse, StopCampaignRequest, + StopClosedCaptionsRequest, + StopClosedCaptionsResponse, + StopFrameRecordingRequest, + StopFrameRecordingResponse, + StopHLSBroadcastingRequest, + StopHLSBroadcastingResponse, + StopLiveRequest, + StopLiveResponse, + StopRTMPBroadcastsRequest, + StopRTMPBroadcastsResponse, + StopRecordingRequest, + StopRecordingResponse, + StopTranscriptionRequest, + StopTranscriptionResponse, + StoriesConfig, + SubmitActionRequest, + SubmitActionResponse, + SubscriberStatsResponse, + TargetResolution, + ThreadParticipant, + ThreadResponse, + ThreadStateResponse, + ThreadUpdatedEvent, + ThreadedCommentResponse, + Thresholds, + ThumbnailResponse, + ThumbnailsSettings, + ThumbnailsSettingsRequest, + ThumbnailsSettingsResponse, + Time, + TrackStatsResponse, + TranscriptionSettings, + TranscriptionSettingsRequest, + TranscriptionSettingsResponse, TranslateMessageRequest, TruncateChannelRequest, TruncateChannelResponse, + TypingIndicators, + TypingIndicatorsResponse, + UnbanActionRequest, + UnbanRequest, + UnbanResponse, + UnblockActionRequest, + UnblockUserRequest, + UnblockUserResponse, + UnblockUsersRequest, + UnblockUsersResponse, + UnblockedUserEvent, + UnfollowBatchRequest, + UnfollowBatchResponse, + UnfollowResponse, UnmuteChannelRequest, + UnmuteRequest, UnmuteResponse, + UnpinActivityResponse, + UnpinRequest, + UnpinResponse, UnreadCountsBatchRequest, UnreadCountsBatchResponse, + UnreadCountsChannel, + UnreadCountsChannelType, + UnreadCountsResponse, + UnreadCountsThread, + UpdateActivityPartialRequest, + UpdateActivityPartialResponse, + UpdateActivityRequest, + UpdateActivityResponse, + UpdateAppRequest, + UpdateBlockListRequest, + UpdateBlockListResponse, + UpdateBookmarkRequest, + UpdateBookmarkResponse, + UpdateCallMembersRequest, + UpdateCallMembersResponse, + UpdateCallRequest, + UpdateCallResponse, + UpdateCallTypeRequest, + UpdateCallTypeResponse, UpdateChannelPartialRequest, UpdateChannelPartialResponse, UpdateChannelRequest, @@ -94,35 +825,91 @@ import { UpdateChannelTypeResponse, UpdateCommandRequest, UpdateCommandResponse, + UpdateCommentRequest, + UpdateCommentResponse, + UpdateExternalStorageRequest, + UpdateExternalStorageResponse, + UpdateFeedMembersRequest, + UpdateFeedMembersResponse, + UpdateFeedRequest, + UpdateFeedResponse, + UpdateFeedViewRequest, + UpdateFeedViewResponse, + UpdateFollowRequest, + UpdateFollowResponse, UpdateMemberPartialRequest, UpdateMemberPartialResponse, UpdateMessagePartialRequest, UpdateMessagePartialResponse, UpdateMessageRequest, UpdateMessageResponse, + UpdatePollOptionRequest, + UpdatePollPartialRequest, + UpdatePollRequest, + UpdateReminderRequest, + UpdateReminderResponse, UpdateThreadPartialRequest, UpdateThreadPartialResponse, + UpdateUserPartialRequest, + UpdateUserPermissionsRequest, + UpdateUserPermissionsResponse, + UpdateUsersPartialRequest, + UpdateUsersRequest, + UpdateUsersResponse, + UpdatedCallPermissionsEvent, + UpsertActivitiesRequest, + UpsertActivitiesResponse, + UpsertConfigRequest, + UpsertConfigResponse, + UpsertModerationTemplateRequest, + UpsertModerationTemplateResponse, UpsertPushPreferencesRequest, UpsertPushPreferencesResponse, + UpsertPushProviderRequest, + UpsertPushProviderResponse, + UpsertPushTemplateRequest, + UpsertPushTemplateResponse, + User, + UserBannedEvent, + UserCustomEventRequest, + UserDeactivatedEvent, + UserDeletedEvent, + UserFeedbackReport, + UserFeedbackReportResponse, + UserFeedbackResponse, + UserFlaggedEvent, + UserMute, + UserMuteResponse, + UserMutedEvent, + UserRatingReportResponse, + UserReactivatedEvent, + UserRequest, + UserResponse, + UserResponseCommonFields, + UserResponsePrivacyFields, + UserUnbannedEvent, + UserUnmutedEvent, + UserUnreadReminderEvent, + UserUpdatedEvent, + VelocityFilterConfig, + VelocityFilterConfigRule, + VideoCallRuleConfig, + VideoEndCallRequest, + VideoKickUserRequest, + VideoOrientation, + VideoReactionOverTimeResponse, + VideoReactionsResponse, + VideoSettings, + VideoSettingsRequest, + VideoSettingsResponse, + VoteData, + WSEvent, + WebhookEvent, WrappedUnreadCountsResponse, + XiaomiConfig, + XiaomiConfigFields, } from '../models'; import { decoders } from '../model-decoders/decoders'; -import { - CastPollVoteRequest, - CreatePollOptionRequest, - CreatePollRequest, - PollOptionResponse, - PollResponse, - PollVoteResponse, - PollVotesResponse, - QueryPollsRequest, - QueryPollsResponse, - QueryPollVotesRequest, - SortParamRequest, - UpdatePollOptionRequest, - UpdatePollPartialRequest, - UpdatePollRequest, -} from '../../gen-feeds/models'; export class ChatApi { constructor(public readonly apiClient: ApiClient) {} @@ -143,7 +930,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/campaigns/query', undefined, undefined, body); - decoders.QueryCampaignsResponse?.(response.body); + decoders['QueryCampaignsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -167,7 +954,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/campaigns/{id}', pathParams, queryParams); - decoders.GetCampaignResponse?.(response.body); + decoders['GetCampaignResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -187,7 +974,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/campaigns/{id}/start', pathParams, undefined, body); - decoders.StartCampaignResponse?.(response.body); + decoders['StartCampaignResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -204,7 +991,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/campaigns/{id}/stop', pathParams, undefined, body); - decoders.CampaignResponse?.(response.body); + decoders['CampaignResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -228,7 +1015,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/channels', undefined, undefined, body); - decoders.QueryChannelsResponse?.(response.body); + decoders['QueryChannelsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -245,7 +1032,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/channels/delete', undefined, undefined, body); - decoders.DeleteChannelsResponse?.(response.body); + decoders['DeleteChannelsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -263,7 +1050,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/channels/read', undefined, undefined, body); - decoders.MarkReadResponse?.(response.body); + decoders['MarkReadResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -294,7 +1081,7 @@ export class ChatApi { body, ); - decoders.ChannelStateResponse?.(response.body); + decoders['ChannelStateResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -316,7 +1103,7 @@ export class ChatApi { StreamResponse >('DELETE', '/api/v2/chat/channels/{type}/{id}', pathParams, queryParams); - decoders.DeleteChannelResponse?.(response.body); + decoders['DeleteChannelResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -345,7 +1132,7 @@ export class ChatApi { body, ); - decoders.UpdateChannelPartialResponse?.(response.body); + decoders['UpdateChannelPartialResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -379,7 +1166,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/channels/{type}/{id}', pathParams, undefined, body); - decoders.UpdateChannelResponse?.(response.body); + decoders['UpdateChannelResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -406,7 +1193,7 @@ export class ChatApi { queryParams, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -435,7 +1222,7 @@ export class ChatApi { queryParams, ); - decoders.GetDraftResponse?.(response.body); + decoders['GetDraftResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -461,7 +1248,7 @@ export class ChatApi { body, ); - decoders.EventResponse?.(response.body); + decoders['EventResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -486,7 +1273,7 @@ export class ChatApi { queryParams, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -513,7 +1300,7 @@ export class ChatApi { body, ); - decoders.FileUploadResponse?.(response.body); + decoders['FileUploadResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -541,7 +1328,7 @@ export class ChatApi { body, ); - decoders.HideChannelResponse?.(response.body); + decoders['HideChannelResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -566,7 +1353,7 @@ export class ChatApi { queryParams, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -594,7 +1381,7 @@ export class ChatApi { body, ); - decoders.ImageUploadResponse?.(response.body); + decoders['ImageUploadResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -628,7 +1415,7 @@ export class ChatApi { body, ); - decoders.UpdateMemberPartialResponse?.(response.body); + decoders['UpdateMemberPartialResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -660,7 +1447,7 @@ export class ChatApi { body, ); - decoders.SendMessageResponse?.(response.body); + decoders['SendMessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -668,7 +1455,7 @@ export class ChatApi { async getManyMessages(request: { type: string; id: string; - ids: string[]; + ids: Array; }): Promise> { const queryParams = { ids: request?.ids, @@ -687,7 +1474,7 @@ export class ChatApi { queryParams, ); - decoders.GetManyMessagesResponse?.(response.body); + decoders['GetManyMessagesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -719,7 +1506,7 @@ export class ChatApi { body, ); - decoders.ChannelStateResponse?.(response.body); + decoders['ChannelStateResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -748,7 +1535,7 @@ export class ChatApi { body, ); - decoders.MarkReadResponse?.(response.body); + decoders['MarkReadResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -775,7 +1562,7 @@ export class ChatApi { body, ); - decoders.ShowChannelResponse?.(response.body); + decoders['ShowChannelResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -807,7 +1594,7 @@ export class ChatApi { body, ); - decoders.TruncateChannelResponse?.(response.body); + decoders['TruncateChannelResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -834,7 +1621,7 @@ export class ChatApi { body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -844,7 +1631,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/channeltypes', undefined, undefined); - decoders.ListChannelTypesResponse?.(response.body); + decoders['ListChannelTypesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -877,6 +1664,7 @@ export class ChatApi { typing_events: request?.typing_events, uploads: request?.uploads, url_enrichment: request?.url_enrichment, + user_message_reminders: request?.user_message_reminders, blocklists: request?.blocklists, commands: request?.commands, permissions: request?.permissions, @@ -887,7 +1675,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/channeltypes', undefined, undefined, body); - decoders.CreateChannelTypeResponse?.(response.body); + decoders['CreateChannelTypeResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -906,7 +1694,7 @@ export class ChatApi { undefined, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -922,7 +1710,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/channeltypes/{name}', pathParams, undefined); - decoders.GetChannelTypeResponse?.(response.body); + decoders['GetChannelTypeResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -958,6 +1746,7 @@ export class ChatApi { typing_events: request?.typing_events, uploads: request?.uploads, url_enrichment: request?.url_enrichment, + user_message_reminders: request?.user_message_reminders, allowed_flag_reasons: request?.allowed_flag_reasons, blocklists: request?.blocklists, commands: request?.commands, @@ -970,7 +1759,7 @@ export class ChatApi { StreamResponse >('PUT', '/api/v2/chat/channeltypes/{name}', pathParams, undefined, body); - decoders.UpdateChannelTypeResponse?.(response.body); + decoders['UpdateChannelTypeResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -980,7 +1769,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/commands', undefined, undefined); - decoders.ListCommandsResponse?.(response.body); + decoders['ListCommandsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -999,7 +1788,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/commands', undefined, undefined, body); - decoders.CreateCommandResponse?.(response.body); + decoders['CreateCommandResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1015,7 +1804,7 @@ export class ChatApi { StreamResponse >('DELETE', '/api/v2/chat/commands/{name}', pathParams, undefined); - decoders.DeleteCommandResponse?.(response.body); + decoders['DeleteCommandResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1031,7 +1820,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/commands/{name}', pathParams, undefined); - decoders.GetCommandResponse?.(response.body); + decoders['GetCommandResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1052,7 +1841,7 @@ export class ChatApi { StreamResponse >('PUT', '/api/v2/chat/commands/{name}', pathParams, undefined, body); - decoders.UpdateCommandResponse?.(response.body); + decoders['UpdateCommandResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1074,7 +1863,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/drafts/query', undefined, undefined, body); - decoders.QueryDraftsResponse?.(response.body); + decoders['QueryDraftsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1095,7 +1884,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/export_channels', undefined, undefined, body); - decoders.ExportChannelsResponse?.(response.body); + decoders['ExportChannelsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1111,7 +1900,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/members', undefined, queryParams); - decoders.MembersResponse?.(response.body); + decoders['MembersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1131,7 +1920,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/messages/history', undefined, undefined, body); - decoders.QueryMessageHistoryResponse?.(response.body); + decoders['QueryMessageHistoryResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1153,7 +1942,7 @@ export class ChatApi { StreamResponse >('DELETE', '/api/v2/chat/messages/{id}', pathParams, queryParams); - decoders.DeleteMessageResponse?.(response.body); + decoders['DeleteMessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1173,7 +1962,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/messages/{id}', pathParams, queryParams); - decoders.GetMessageResponse?.(response.body); + decoders['GetMessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1187,13 +1976,14 @@ export class ChatApi { const body = { message: request?.message, skip_enrich_url: request?.skip_enrich_url, + skip_push: request?.skip_push, }; const response = await this.apiClient.sendRequest< StreamResponse >('POST', '/api/v2/chat/messages/{id}', pathParams, undefined, body); - decoders.UpdateMessageResponse?.(response.body); + decoders['UpdateMessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1216,7 +2006,7 @@ export class ChatApi { StreamResponse >('PUT', '/api/v2/chat/messages/{id}', pathParams, undefined, body); - decoders.UpdateMessagePartialResponse?.(response.body); + decoders['UpdateMessagePartialResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1237,7 +2027,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/messages/{id}/action', pathParams, undefined, body); - decoders.MessageResponse?.(response.body); + decoders['MessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1254,7 +2044,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/messages/{id}/commit', pathParams, undefined, body); - decoders.MessageResponse?.(response.body); + decoders['MessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1281,7 +2071,7 @@ export class ChatApi { body, ); - decoders.SendReactionResponse?.(response.body); + decoders['SendReactionResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1308,7 +2098,7 @@ export class ChatApi { queryParams, ); - decoders.DeleteReactionResponse?.(response.body); + decoders['DeleteReactionResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1330,7 +2120,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/messages/{id}/reactions', pathParams, queryParams); - decoders.GetReactionsResponse?.(response.body); + decoders['GetReactionsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1361,7 +2151,7 @@ export class ChatApi { body, ); - decoders.QueryReactionsResponse?.(response.body); + decoders['QueryReactionsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1386,7 +2176,7 @@ export class ChatApi { body, ); - decoders.MessageResponse?.(response.body); + decoders['MessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1400,6 +2190,7 @@ export class ChatApi { const body = { message: request?.message, skip_enrich_url: request?.skip_enrich_url, + skip_push: request?.skip_push, }; const response = await this.apiClient.sendRequest< @@ -1412,7 +2203,7 @@ export class ChatApi { body, ); - decoders.UpdateMessageResponse?.(response.body); + decoders['UpdateMessageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1440,7 +2231,7 @@ export class ChatApi { body, ); - decoders.PollVoteResponse?.(response.body); + decoders['PollVoteResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1469,7 +2260,86 @@ export class ChatApi { queryParams, ); - decoders.PollVoteResponse?.(response.body); + decoders['PollVoteResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteReminder(request: { + message_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + message_id: request?.message_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'DELETE', + '/api/v2/chat/messages/{message_id}/reminders', + pathParams, + queryParams, + ); + + decoders['DeleteReminderResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updateReminder( + request: UpdateReminderRequest & { message_id: string }, + ): Promise> { + const pathParams = { + message_id: request?.message_id, + }; + const body = { + remind_at: request?.remind_at, + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'PATCH', + '/api/v2/chat/messages/{message_id}/reminders', + pathParams, + undefined, + body, + ); + + decoders['UpdateReminderResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createReminder( + request: CreateReminderRequest & { message_id: string }, + ): Promise> { + const pathParams = { + message_id: request?.message_id, + }; + const body = { + remind_at: request?.remind_at, + user_id: request?.user_id, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'POST', + '/api/v2/chat/messages/{message_id}/reminders', + pathParams, + undefined, + body, + ); + + decoders['ReminderResponseData']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1488,7 +2358,7 @@ export class ChatApi { created_at_before?: Date; id_around?: string; created_at_around?: Date; - sort?: SortParamRequest[]; + sort?: Array; }): Promise> { const queryParams = { limit: request?.limit, @@ -1518,7 +2388,7 @@ export class ChatApi { queryParams, ); - decoders.GetRepliesResponse?.(response.body); + decoders['GetRepliesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1534,7 +2404,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/moderation/flags/message', undefined, queryParams); - decoders.QueryMessageFlagsResponse?.(response.body); + decoders['QueryMessageFlagsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1559,7 +2429,7 @@ export class ChatApi { body, ); - decoders.MuteChannelResponse?.(response.body); + decoders['MuteChannelResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1584,325 +2454,99 @@ export class ChatApi { body, ); - decoders.UnmuteResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async createPoll( - request: CreatePollRequest, - ): Promise> { - const body = { - name: request?.name, - allow_answers: request?.allow_answers, - allow_user_suggested_options: request?.allow_user_suggested_options, - description: request?.description, - enforce_unique_vote: request?.enforce_unique_vote, - id: request?.id, - is_closed: request?.is_closed, - max_votes_allowed: request?.max_votes_allowed, - user_id: request?.user_id, - voting_visibility: request?.voting_visibility, - options: request?.options, - custom: request?.custom, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('POST', '/api/v2/chat/polls', undefined, undefined, body); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updatePoll( - request: UpdatePollRequest, - ): Promise> { - const body = { - id: request?.id, - name: request?.name, - allow_answers: request?.allow_answers, - allow_user_suggested_options: request?.allow_user_suggested_options, - description: request?.description, - enforce_unique_vote: request?.enforce_unique_vote, - is_closed: request?.is_closed, - max_votes_allowed: request?.max_votes_allowed, - user_id: request?.user_id, - voting_visibility: request?.voting_visibility, - options: request?.options, - custom: request?.custom, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('PUT', '/api/v2/chat/polls', undefined, undefined, body); - - decoders.PollResponse?.(response.body); + decoders['UnmuteResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } - async queryPolls( - request?: QueryPollsRequest & { user_id?: string }, - ): Promise> { - const queryParams = { - user_id: request?.user_id, - }; + async updatePushNotificationPreferences( + request: UpsertPushPreferencesRequest, + ): Promise> { const body = { - limit: request?.limit, - next: request?.next, - prev: request?.prev, - sort: request?.sort, - filter: request?.filter, + preferences: request?.preferences, }; const response = await this.apiClient.sendRequest< - StreamResponse - >('POST', '/api/v2/chat/polls/query', undefined, queryParams, body); - - decoders.QueryPollsResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async deletePoll(request: { - poll_id: string; - user_id?: string; - }): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - }; - - const response = await this.apiClient.sendRequest>( - 'DELETE', - '/api/v2/chat/polls/{poll_id}', - pathParams, - queryParams, - ); + StreamResponse + >('POST', '/api/v2/chat/push_preferences', undefined, undefined, body); - decoders.Response?.(response.body); + decoders['UpsertPushPreferencesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } - async getPoll(request: { - poll_id: string; - user_id?: string; - }): Promise> { + async getPushTemplates(request: { + push_provider_type: string; + push_provider_name?: string; + }): Promise> { const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('GET', '/api/v2/chat/polls/{poll_id}', pathParams, queryParams); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updatePollPartial( - request: UpdatePollPartialRequest & { poll_id: string }, - ): Promise> { - const pathParams = { - poll_id: request?.poll_id, - }; - const body = { - user_id: request?.user_id, - unset: request?.unset, - set: request?.set, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('PATCH', '/api/v2/chat/polls/{poll_id}', pathParams, undefined, body); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async createPollOption( - request: CreatePollOptionRequest & { poll_id: string }, - ): Promise> { - const pathParams = { - poll_id: request?.poll_id, - }; - const body = { - text: request?.text, - position: request?.position, - user_id: request?.user_id, - custom: request?.custom, - user: request?.user, + push_provider_type: request?.push_provider_type, + push_provider_name: request?.push_provider_name, }; const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v2/chat/polls/{poll_id}/options', - pathParams, - undefined, - body, - ); + StreamResponse + >('GET', '/api/v2/chat/push_templates', undefined, queryParams); - decoders.PollOptionResponse?.(response.body); + decoders['GetPushTemplatesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } - async updatePollOption( - request: UpdatePollOptionRequest & { poll_id: string }, - ): Promise> { - const pathParams = { - poll_id: request?.poll_id, - }; + async upsertPushTemplate( + request: UpsertPushTemplateRequest, + ): Promise> { const body = { - id: request?.id, - text: request?.text, - user_id: request?.user_id, - custom: request?.custom, - user: request?.user, + event_type: request?.event_type, + push_provider_type: request?.push_provider_type, + enable_push: request?.enable_push, + push_provider_name: request?.push_provider_name, + template: request?.template, }; const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'PUT', - '/api/v2/chat/polls/{poll_id}/options', - pathParams, - undefined, - body, - ); + StreamResponse + >('POST', '/api/v2/chat/push_templates', undefined, undefined, body); - decoders.PollOptionResponse?.(response.body); + decoders['UpsertPushTemplateResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } - async deletePollOption(request: { - poll_id: string; - option_id: string; - user_id?: string; - }): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - option_id: request?.option_id, - }; - - const response = await this.apiClient.sendRequest>( - 'DELETE', - '/api/v2/chat/polls/{poll_id}/options/{option_id}', - pathParams, - queryParams, - ); - - decoders.Response?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getPollOption(request: { - poll_id: string; - option_id: string; - user_id?: string; - }): Promise> { + async queryBannedUsers(request?: { + payload?: QueryBannedUsersPayload; + }): Promise> { const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - option_id: request?.option_id, + payload: request?.payload, }; const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'GET', - '/api/v2/chat/polls/{poll_id}/options/{option_id}', - pathParams, - queryParams, - ); + StreamResponse + >('GET', '/api/v2/chat/query_banned_users', undefined, queryParams); - decoders.PollOptionResponse?.(response.body); + decoders['QueryBannedUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } - async queryPollVotes( - request: QueryPollVotesRequest & { poll_id: string; user_id?: string }, - ): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - }; + async queryReminders( + request?: QueryRemindersRequest, + ): Promise> { const body = { limit: request?.limit, next: request?.next, prev: request?.prev, + user_id: request?.user_id, sort: request?.sort, filter: request?.filter, + user: request?.user, }; const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v2/chat/polls/{poll_id}/votes', - pathParams, - queryParams, - body, - ); - - decoders.PollVotesResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updatePushNotificationPreferences( - request: UpsertPushPreferencesRequest, - ): Promise> { - const body = { - preferences: request?.preferences, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('POST', '/api/v2/chat/push_preferences', undefined, undefined, body); - - decoders.UpsertPushPreferencesResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async queryBannedUsers(request?: { - payload?: QueryBannedUsersPayload; - }): Promise> { - const queryParams = { - payload: request?.payload, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('GET', '/api/v2/chat/query_banned_users', undefined, queryParams); + StreamResponse + >('POST', '/api/v2/chat/reminders/query', undefined, undefined, body); - decoders.QueryBannedUsersResponse?.(response.body); + decoders['QueryRemindersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1918,7 +2562,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/search', undefined, queryParams); - decoders.SearchResponse?.(response.body); + decoders['SearchResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1938,7 +2582,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/segments/query', undefined, undefined, body); - decoders.QuerySegmentsResponse?.(response.body); + decoders['QuerySegmentsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1957,7 +2601,7 @@ export class ChatApi { undefined, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1973,7 +2617,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/segments/{id}', pathParams, undefined); - decoders.GetSegmentResponse?.(response.body); + decoders['GetSegmentResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1996,7 +2640,7 @@ export class ChatApi { body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2017,7 +2661,7 @@ export class ChatApi { undefined, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2046,7 +2690,7 @@ export class ChatApi { body, ); - decoders.QuerySegmentTargetsResponse?.(response.body); + decoders['QuerySegmentTargetsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2071,7 +2715,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/threads', undefined, undefined, body); - decoders.QueryThreadsResponse?.(response.body); + decoders['QueryThreadsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2095,7 +2739,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/threads/{message_id}', pathParams, queryParams); - decoders.GetThreadResponse?.(response.body); + decoders['GetThreadResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2123,7 +2767,7 @@ export class ChatApi { body, ); - decoders.UpdateThreadPartialResponse?.(response.body); + decoders['UpdateThreadPartialResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2133,7 +2777,7 @@ export class ChatApi { StreamResponse >('GET', '/api/v2/chat/unread', undefined, undefined); - decoders.WrappedUnreadCountsResponse?.(response.body); + decoders['WrappedUnreadCountsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2149,7 +2793,7 @@ export class ChatApi { StreamResponse >('POST', '/api/v2/chat/unread_batch', undefined, undefined, body); - decoders.UnreadCountsBatchResponse?.(response.body); + decoders['UnreadCountsBatchResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -2172,7 +2816,7 @@ export class ChatApi { body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } diff --git a/src/gen/common/CommonApi.ts b/src/gen/common/CommonApi.ts index 162ce72..5c2e359 100644 --- a/src/gen/common/CommonApi.ts +++ b/src/gen/common/CommonApi.ts @@ -1,71 +1,913 @@ import { ApiClient, StreamResponse } from '../../gen-imports'; import { + AIImageConfig, + AITextConfig, + AIVideoConfig, + APIError, + APNConfig, + APNConfigFields, + APNS, + AWSRekognitionRule, + AcceptFeedMemberInviteRequest, + AcceptFeedMemberInviteResponse, + AcceptFollowRequest, + AcceptFollowResponse, + Action, + ActionLog, + ActionLogResponse, + ActionSequence, + ActivityAddedEvent, + ActivityAnalyserConfig, + ActivityDeletedEvent, + ActivityLocation, + ActivityMarkEvent, + ActivityMarkedEvent, + ActivityPinResponse, + ActivityPinnedEvent, + ActivityReactionAddedEvent, + ActivityReactionDeletedEvent, + ActivityRemovedFromFeedEvent, + ActivityRequest, + ActivityResponse, + ActivitySelectorConfig, + ActivityUnpinnedEvent, + ActivityUpdatedEvent, + AddActivityRequest, + AddActivityResponse, + AddBookmarkRequest, + AddBookmarkResponse, + AddCommentReactionRequest, + AddCommentReactionResponse, + AddCommentRequest, + AddCommentResponse, + AddCommentsBatchRequest, + AddCommentsBatchResponse, + AddFolderRequest, + AddReactionRequest, + AddReactionResponse, + AggregatedActivityResponse, + AggregationConfig, + AnyEvent, + AppResponseFields, + AsyncBulkImageModerationEvent, + AsyncExportChannelsEvent, + AsyncExportErrorEvent, + AsyncExportModerationLogsEvent, + AsyncExportUsersEvent, + AsyncModerationCallbackConfig, + AsyncModerationConfiguration, + Attachment, + AudioSettings, + AudioSettingsRequest, + AudioSettingsResponse, + AutomodDetails, + AutomodPlatformCircumventionConfig, + AutomodRule, + AutomodSemanticFiltersConfig, + AutomodSemanticFiltersRule, + AutomodToxicityConfig, + AzureRequest, + BackstageSettings, + BackstageSettingsRequest, + BackstageSettingsResponse, + Ban, + BanActionRequest, + BanRequest, + BanResponse, + BlockListConfig, + BlockListOptions, + BlockListResponse, + BlockListRule, + BlockUserRequest, + BlockUserResponse, BlockUsersRequest, BlockUsersResponse, + BlockedUserEvent, + BlockedUserResponse, + BodyguardRule, + BodyguardSeverityRule, + BookmarkAddedEvent, + BookmarkDeletedEvent, + BookmarkFolderResponse, + BookmarkResponse, + BookmarkUpdatedEvent, + Bound, + BroadcastSettings, + BroadcastSettingsRequest, + BroadcastSettingsResponse, + BrowserDataResponse, + BulkImageModerationRequest, + BulkImageModerationResponse, + Call, + CallAcceptedEvent, + CallClosedCaption, + CallClosedCaptionsFailedEvent, + CallClosedCaptionsStartedEvent, + CallClosedCaptionsStoppedEvent, + CallCreatedEvent, + CallDeletedEvent, + CallDurationReport, + CallDurationReportResponse, + CallEgress, + CallEndedEvent, + CallFrameRecordingFailedEvent, + CallFrameRecordingFrameReadyEvent, + CallFrameRecordingStartedEvent, + CallFrameRecordingStoppedEvent, + CallHLSBroadcastingFailedEvent, + CallHLSBroadcastingStartedEvent, + CallHLSBroadcastingStoppedEvent, + CallIngressResponse, + CallLiveStartedEvent, + CallMember, + CallMemberAddedEvent, + CallMemberRemovedEvent, + CallMemberUpdatedEvent, + CallMemberUpdatedPermissionEvent, + CallMissedEvent, + CallModerationBlurEvent, + CallModerationWarningEvent, + CallNotificationEvent, + CallParticipant, + CallParticipantCountReport, + CallParticipantCountReportResponse, + CallParticipantResponse, + CallReactionEvent, + CallRecording, + CallRecordingFailedEvent, + CallRecordingReadyEvent, + CallRecordingStartedEvent, + CallRecordingStoppedEvent, + CallRejectedEvent, + CallReportResponse, + CallRequest, + CallResponse, + CallRingEvent, + CallRtmpBroadcastFailedEvent, + CallRtmpBroadcastStartedEvent, + CallRtmpBroadcastStoppedEvent, + CallSession, + CallSessionEndedEvent, + CallSessionParticipantJoinedEvent, + CallSessionParticipantLeftEvent, + CallSessionResponse, + CallSessionStartedEvent, + CallSettings, + CallSettingsRequest, + CallSettingsResponse, + CallStateResponseFields, + CallStatsReportReadyEvent, + CallStatsReportSummaryResponse, + CallTranscription, + CallTranscriptionFailedEvent, + CallTranscriptionReadyEvent, + CallTranscriptionStartedEvent, + CallTranscriptionStoppedEvent, + CallType, + CallTypeResponse, + CallUpdatedEvent, + CallUserFeedbackSubmittedEvent, + CallUserMutedEvent, + CallsPerDayReport, + CallsPerDayReportResponse, + CampaignChannelTemplate, + CampaignCompletedEvent, + CampaignMessageTemplate, + CampaignResponse, + CampaignStartedEvent, + CampaignStatsResponse, + CastPollVoteRequest, + Channel, + ChannelConfig, + ChannelConfigWithInfo, + ChannelCreatedEvent, + ChannelDeletedEvent, + ChannelExport, + ChannelFrozenEvent, + ChannelGetOrCreateRequest, + ChannelHiddenEvent, + ChannelInput, + ChannelMember, + ChannelMemberResponse, + ChannelMessages, + ChannelMute, + ChannelMutedEvent, + ChannelOwnCapability, + ChannelPushPreferences, + ChannelResponse, + ChannelStateResponse, + ChannelStateResponseFields, + ChannelTruncatedEvent, + ChannelTypeConfig, + ChannelUnFrozenEvent, + ChannelUnmutedEvent, + ChannelUpdatedEvent, + ChannelVisibleEvent, + ChatActivityStatsResponse, CheckExternalStorageResponse, CheckPushRequest, CheckPushResponse, + CheckRequest, + CheckResponse, CheckSNSRequest, CheckSNSResponse, CheckSQSRequest, CheckSQSResponse, + ClientOSDataResponse, + ClosedCaptionEvent, + CollectUserFeedbackRequest, + CollectUserFeedbackResponse, + Command, + CommentAddedEvent, + CommentDeletedEvent, + CommentReactionAddedEvent, + CommentReactionDeletedEvent, + CommentResponse, + CommentUpdatedEvent, + CommitMessageRequest, + CompositeAppSettings, + ConfigOverrides, + ConfigResponse, + CountByMinuteResponse, CreateBlockListRequest, CreateBlockListResponse, + CreateCallTypeRequest, + CreateCallTypeResponse, + CreateChannelTypeRequest, + CreateChannelTypeResponse, + CreateCommandRequest, + CreateCommandResponse, CreateDeviceRequest, CreateExternalStorageRequest, CreateExternalStorageResponse, + CreateFeedGroupRequest, + CreateFeedGroupResponse, + CreateFeedViewRequest, + CreateFeedViewResponse, + CreateFeedsBatchRequest, + CreateFeedsBatchResponse, CreateGuestRequest, CreateGuestResponse, CreateImportRequest, CreateImportResponse, CreateImportURLRequest, CreateImportURLResponse, + CreatePollOptionRequest, + CreatePollRequest, + CreateReminderRequest, CreateRoleRequest, CreateRoleResponse, + CustomActionRequest, + CustomCheckFlag, + CustomCheckRequest, + CustomCheckResponse, + CustomVideoEvent, + DailyAggregateCallDurationReportResponse, + DailyAggregateCallParticipantCountReportResponse, + DailyAggregateCallsPerDayReportResponse, + DailyAggregateQualityScoreReportResponse, + DailyAggregateSDKUsageReportResponse, + DailyAggregateUserFeedbackReportResponse, + Data, + DataDogInfo, DeactivateUserRequest, DeactivateUserResponse, DeactivateUsersRequest, DeactivateUsersResponse, + DecayFunctionConfig, + DeleteActivitiesRequest, + DeleteActivitiesResponse, + DeleteActivityReactionResponse, + DeleteActivityRequest, + DeleteActivityResponse, + DeleteBookmarkResponse, + DeleteCallRequest, + DeleteCallResponse, + DeleteChannelResponse, + DeleteChannelsRequest, + DeleteChannelsResponse, + DeleteChannelsResultResponse, + DeleteCommandResponse, + DeleteCommentReactionResponse, + DeleteCommentResponse, DeleteExternalStorageResponse, + DeleteFeedGroupResponse, + DeleteFeedResponse, + DeleteFeedUserDataResponse, + DeleteFeedViewResponse, + DeleteMessageRequest, + DeleteMessageResponse, + DeleteModerationConfigResponse, + DeleteModerationTemplateResponse, + DeleteReactionRequest, + DeleteReactionResponse, + DeleteRecordingResponse, + DeleteReminderResponse, + DeleteSegmentTargetsRequest, + DeleteTranscriptionResponse, + DeleteUserRequest, DeleteUsersRequest, DeleteUsersResponse, + Device, + DeviceDataResponse, + DeviceErrorInfo, + DeviceResponse, + DraftPayloadResponse, + DraftResponse, + EdgeResponse, + EgressHLSResponse, + EgressRTMPResponse, + EgressResponse, + EgressTaskConfig, + EgressUser, + EndCallRequest, + EndCallResponse, + EnrichedActivity, + EnrichedReaction, + EntityCreator, + EntityCreatorResponse, + ErrorResult, + EventHook, + EventNotificationSettings, + EventRequest, + EventResponse, + ExportChannelsRequest, + ExportChannelsResponse, + ExportFeedUserDataRequest, + ExportFeedUserDataResponse, ExportUserResponse, ExportUsersRequest, ExportUsersResponse, + ExternalStorage, + ExternalStorageResponse, + FCM, + FeedCreatedEvent, + FeedDeletedEvent, + FeedGroup, + FeedGroupChangedEvent, + FeedGroupDeletedEvent, + FeedGroupResponse, + FeedInput, + FeedMemberAddedEvent, + FeedMemberRemovedEvent, + FeedMemberRequest, + FeedMemberResponse, + FeedMemberUpdatedEvent, + FeedOwnCapability, + FeedRequest, + FeedResponse, + FeedUpdatedEvent, + FeedViewResponse, + FeedsModerationTemplateConfig, + FeedsReactionResponse, + Field, + FileUploadConfig, + FileUploadRequest, + FileUploadResponse, + FirebaseConfig, + FirebaseConfigFields, + Flag, + FlagDetails, + FlagFeedback, + FlagMessageDetails, + FlagRequest, + FlagResponse, + FlagUpdatedEvent, + FollowBatchRequest, + FollowBatchResponse, + FollowCreatedEvent, + FollowDeletedEvent, + FollowPair, + FollowRequest, + FollowResponse, + FollowUpdatedEvent, + FrameRecordSettings, + FrameRecordingEgressConfig, + FrameRecordingResponse, + FrameRecordingSettingsRequest, + FrameRecordingSettingsResponse, + FullUserResponse, + GeofenceResponse, + GeofenceSettings, + GeofenceSettingsRequest, + GeofenceSettingsResponse, + GetActivityResponse, GetApplicationResponse, GetBlockListResponse, GetBlockedUsersResponse, + GetCallReportResponse, + GetCallResponse, + GetCallTypeResponse, + GetCampaignResponse, + GetChannelTypeResponse, + GetCommandResponse, + GetCommentRepliesResponse, + GetCommentResponse, + GetCommentsResponse, + GetConfigResponse, GetCustomPermissionResponse, + GetDraftResponse, + GetEdgesResponse, + GetFollowSuggestionsResponse, GetImportResponse, + GetManyMessagesResponse, + GetMessageResponse, GetOGResponse, + GetOrCreateCallRequest, + GetOrCreateCallResponse, + GetOrCreateFeedRequest, + GetOrCreateFeedResponse, + GetPushTemplatesResponse, GetRateLimitsResponse, + GetReactionsResponse, + GetRepliesResponse, + GetReviewQueueItemResponse, + GetSegmentResponse, GetTaskResponse, + GetThreadResponse, + GoLiveRequest, + GoLiveResponse, + GoogleVisionConfig, + GroupedStatsResponse, + HLSEgressConfig, + HLSSettings, + HLSSettingsRequest, + HLSSettingsResponse, + HarmConfig, + HideChannelRequest, + HideChannelResponse, + HuaweiConfig, + HuaweiConfigFields, + ImageData, + ImageSize, + ImageUploadRequest, + ImageUploadResponse, + Images, + ImportTask, + ImportTaskHistory, + Label, + LabelThresholds, + LayoutSettings, + LayoutSettingsRequest, + LayoutSettingsResponse, + LimitInfo, + LimitsSettings, + LimitsSettingsRequest, + LimitsSettingsResponse, ListBlockListResponse, + ListCallTypeResponse, + ListChannelTypesResponse, + ListCommandsResponse, ListDevicesResponse, ListExternalStorageResponse, ListImportsResponse, ListPermissionsResponse, ListPushProvidersResponse, + ListRecordingsResponse, ListRolesResponse, + ListTranscriptionsResponse, + MarkActivityRequest, + MarkChannelsReadRequest, + MarkReadRequest, + MarkReadResponse, + MarkReviewedRequest, + MarkUnreadRequest, + MemberAddedEvent, + MemberLookup, + MemberRemovedEvent, + MemberRequest, + MemberResponse, + MemberUpdatedEvent, + MembersResponse, + Message, + MessageActionRequest, + MessageChangeSet, + MessageDeletedEvent, + MessageFlagResponse, + MessageFlaggedEvent, + MessageHistoryEntryResponse, + MessageModerationResult, + MessageNewEvent, + MessageOptions, + MessagePaginationParams, + MessageReadEvent, + MessageReminder, + MessageRequest, + MessageResponse, + MessageStatsResponse, + MessageUnblockedEvent, + MessageUndeletedEvent, + MessageUpdate, + MessageUpdatedEvent, + MessageWithChannelResponse, + ModerationActionConfig, + ModerationCheckCompletedEvent, + ModerationCustomActionEvent, + ModerationDashboardPreferences, + ModerationFlagResponse, + ModerationFlaggedEvent, + ModerationMarkReviewedEvent, + ModerationPayload, + ModerationResponse, + ModerationV2Response, + MuteChannelRequest, + MuteChannelResponse, + MuteRequest, + MuteResponse, + MuteUsersRequest, + MuteUsersResponse, + NetworkMetricsReportResponse, + NoiseCancellationSettings, + NotificationConfig, + NotificationMarkUnreadEvent, + NotificationSettings, + NotificationStatusResponse, + NullTime, + OCRRule, + OnlyUserID, + OwnCapability, + OwnUser, + OwnUserResponse, + PagerRequest, + PagerResponse, + PaginationParams, + ParticipantCountByMinuteResponse, + ParticipantCountOverTimeResponse, + ParticipantReportResponse, + PendingMessageResponse, + PerSDKUsageReport, + Permission, + PermissionRequestEvent, + PinActivityRequest, + PinActivityResponse, + PinRequest, + PinResponse, + PlatformDataResponse, + Policy, + PolicyRequest, + Poll, + PollOption, + PollOptionInput, + PollOptionRequest, + PollOptionResponse, + PollOptionResponseData, + PollResponse, + PollResponseData, + PollVote, + PollVoteResponse, + PollVoteResponseData, + PollVotesResponse, + PrivacySettings, + PrivacySettingsResponse, + PublisherStatsResponse, + PushConfig, + PushNotificationFields, + PushNotificationSettingsResponse, + PushPreferenceInput, + PushPreferences, + PushProvider, + PushProviderResponse, + PushTemplate, + Quality, + QualityScoreReport, + QualityScoreReportResponse, + QueryActivitiesRequest, + QueryActivitiesResponse, + QueryActivityReactionsRequest, + QueryActivityReactionsResponse, + QueryAggregateCallStatsRequest, + QueryAggregateCallStatsResponse, + QueryBannedUsersPayload, + QueryBannedUsersResponse, + QueryBookmarkFoldersRequest, + QueryBookmarkFoldersResponse, + QueryBookmarksRequest, + QueryBookmarksResponse, + QueryCallMembersRequest, + QueryCallMembersResponse, + QueryCallParticipantsRequest, + QueryCallParticipantsResponse, + QueryCallStatsRequest, + QueryCallStatsResponse, + QueryCallsRequest, + QueryCallsResponse, + QueryCampaignsRequest, + QueryCampaignsResponse, + QueryChannelsRequest, + QueryChannelsResponse, + QueryCommentReactionsRequest, + QueryCommentReactionsResponse, + QueryCommentsRequest, + QueryCommentsResponse, + QueryDraftsRequest, + QueryDraftsResponse, + QueryFeedMembersRequest, + QueryFeedMembersResponse, + QueryFeedModerationTemplate, + QueryFeedModerationTemplatesResponse, + QueryFeedsRequest, + QueryFeedsResponse, + QueryFollowsRequest, + QueryFollowsResponse, + QueryMembersPayload, + QueryMessageFlagsPayload, + QueryMessageFlagsResponse, + QueryMessageHistoryRequest, + QueryMessageHistoryResponse, + QueryModerationConfigsRequest, + QueryModerationConfigsResponse, + QueryModerationFlagsRequest, + QueryModerationFlagsResponse, + QueryModerationLogsRequest, + QueryModerationLogsResponse, + QueryPollVotesRequest, + QueryPollsRequest, + QueryPollsResponse, + QueryReactionsRequest, + QueryReactionsResponse, + QueryRemindersRequest, + QueryRemindersResponse, + QueryReviewQueueRequest, + QueryReviewQueueResponse, + QuerySegmentTargetsRequest, + QuerySegmentTargetsResponse, + QuerySegmentsRequest, + QuerySegmentsResponse, + QueryThreadsRequest, + QueryThreadsResponse, + QueryUserFeedbackRequest, + QueryUserFeedbackResponse, QueryUsersPayload, QueryUsersResponse, + RTMPBroadcastRequest, + RTMPEgressConfig, + RTMPIngress, + RTMPLocation, + RTMPSettings, + RTMPSettingsRequest, + RTMPSettingsResponse, + RankingConfig, + Reaction, + ReactionDeletedEvent, + ReactionGroupResponse, + ReactionNewEvent, + ReactionRequest, + ReactionResponse, + ReactionUpdatedEvent, ReactivateUserRequest, ReactivateUserResponse, ReactivateUsersRequest, ReactivateUsersResponse, + ReadReceipts, + ReadReceiptsResponse, + ReadStateResponse, + RecordSettings, + RecordSettingsRequest, + RecordSettingsResponse, + RecordingEgressConfig, + RejectFeedMemberInviteRequest, + RejectFeedMemberInviteResponse, + RejectFollowRequest, + RejectFollowResponse, + ReminderResponseData, + RepliesMeta, + ReportByHistogramBucket, + ReportResponse, + Response, + RestoreActionRequest, RestoreUsersRequest, + ReviewQueueItem, + ReviewQueueItemNewEvent, + ReviewQueueItemResponse, + ReviewQueueItemUpdatedEvent, + RingSettings, + RingSettingsRequest, + RingSettingsResponse, + Role, + RuleBuilderAction, + RuleBuilderCondition, + RuleBuilderConfig, + RuleBuilderRule, + S3Request, + SDKUsageReport, + SDKUsageReportResponse, + SFUIDLastSeen, + STTEgressConfig, + ScreensharingSettings, + ScreensharingSettingsRequest, + ScreensharingSettingsResponse, + SearchPayload, + SearchResponse, + SearchResult, + SearchResultMessage, + SearchWarning, + Segment, + SegmentResponse, + SegmentTargetResponse, + SendCallEventRequest, + SendCallEventResponse, + SendEventRequest, + SendMessageRequest, + SendMessageResponse, + SendReactionRequest, + SendReactionResponse, + SendUserCustomEventRequest, + SessionSettings, + SessionSettingsRequest, + SessionSettingsResponse, + ShadowBlockActionRequest, + ShowChannelRequest, + ShowChannelResponse, + SingleFollowRequest, + SingleFollowResponse, + SortParam, + SortParamRequest, + StartCampaignRequest, + StartCampaignResponse, + StartClosedCaptionsRequest, + StartClosedCaptionsResponse, + StartFrameRecordingRequest, + StartFrameRecordingResponse, + StartHLSBroadcastingRequest, + StartHLSBroadcastingResponse, + StartRTMPBroadcastsRequest, + StartRTMPBroadcastsResponse, + StartRecordingRequest, + StartRecordingResponse, + StartTranscriptionRequest, + StartTranscriptionResponse, + StopAllRTMPBroadcastsRequest, + StopAllRTMPBroadcastsResponse, + StopCampaignRequest, + StopClosedCaptionsRequest, + StopClosedCaptionsResponse, + StopFrameRecordingRequest, + StopFrameRecordingResponse, + StopHLSBroadcastingRequest, + StopHLSBroadcastingResponse, + StopLiveRequest, + StopLiveResponse, + StopRTMPBroadcastsRequest, + StopRTMPBroadcastsResponse, + StopRecordingRequest, + StopRecordingResponse, + StopTranscriptionRequest, + StopTranscriptionResponse, + StoriesConfig, + SubmitActionRequest, + SubmitActionResponse, + SubscriberStatsResponse, + TargetResolution, + ThreadParticipant, + ThreadResponse, + ThreadStateResponse, + ThreadUpdatedEvent, + ThreadedCommentResponse, + Thresholds, + ThumbnailResponse, + ThumbnailsSettings, + ThumbnailsSettingsRequest, + ThumbnailsSettingsResponse, + Time, + TrackStatsResponse, + TranscriptionSettings, + TranscriptionSettingsRequest, + TranscriptionSettingsResponse, + TranslateMessageRequest, + TruncateChannelRequest, + TruncateChannelResponse, + TypingIndicators, + TypingIndicatorsResponse, + UnbanActionRequest, + UnbanRequest, + UnbanResponse, + UnblockActionRequest, + UnblockUserRequest, + UnblockUserResponse, UnblockUsersRequest, UnblockUsersResponse, + UnblockedUserEvent, + UnfollowBatchRequest, + UnfollowBatchResponse, + UnfollowResponse, + UnmuteChannelRequest, + UnmuteRequest, + UnmuteResponse, + UnpinActivityResponse, + UnpinRequest, + UnpinResponse, + UnreadCountsBatchRequest, + UnreadCountsBatchResponse, + UnreadCountsChannel, + UnreadCountsChannelType, + UnreadCountsResponse, + UnreadCountsThread, + UpdateActivityPartialRequest, + UpdateActivityPartialResponse, + UpdateActivityRequest, + UpdateActivityResponse, UpdateAppRequest, UpdateBlockListRequest, UpdateBlockListResponse, + UpdateBookmarkRequest, + UpdateBookmarkResponse, + UpdateCallMembersRequest, + UpdateCallMembersResponse, + UpdateCallRequest, + UpdateCallResponse, + UpdateCallTypeRequest, + UpdateCallTypeResponse, + UpdateChannelPartialRequest, + UpdateChannelPartialResponse, + UpdateChannelRequest, + UpdateChannelResponse, + UpdateChannelTypeRequest, + UpdateChannelTypeResponse, + UpdateCommandRequest, + UpdateCommandResponse, + UpdateCommentRequest, + UpdateCommentResponse, UpdateExternalStorageRequest, UpdateExternalStorageResponse, + UpdateFeedMembersRequest, + UpdateFeedMembersResponse, + UpdateFeedRequest, + UpdateFeedResponse, + UpdateFeedViewRequest, + UpdateFeedViewResponse, + UpdateFollowRequest, + UpdateFollowResponse, + UpdateMemberPartialRequest, + UpdateMemberPartialResponse, + UpdateMessagePartialRequest, + UpdateMessagePartialResponse, + UpdateMessageRequest, + UpdateMessageResponse, + UpdatePollOptionRequest, + UpdatePollPartialRequest, + UpdatePollRequest, + UpdateReminderRequest, + UpdateReminderResponse, + UpdateThreadPartialRequest, + UpdateThreadPartialResponse, + UpdateUserPartialRequest, + UpdateUserPermissionsRequest, + UpdateUserPermissionsResponse, UpdateUsersPartialRequest, UpdateUsersRequest, UpdateUsersResponse, + UpdatedCallPermissionsEvent, + UpsertActivitiesRequest, + UpsertActivitiesResponse, + UpsertConfigRequest, + UpsertConfigResponse, + UpsertModerationTemplateRequest, + UpsertModerationTemplateResponse, + UpsertPushPreferencesRequest, + UpsertPushPreferencesResponse, UpsertPushProviderRequest, UpsertPushProviderResponse, + UpsertPushTemplateRequest, + UpsertPushTemplateResponse, + User, + UserBannedEvent, + UserCustomEventRequest, + UserDeactivatedEvent, + UserDeletedEvent, + UserFeedbackReport, + UserFeedbackReportResponse, + UserFeedbackResponse, + UserFlaggedEvent, + UserMute, + UserMuteResponse, + UserMutedEvent, + UserRatingReportResponse, + UserReactivatedEvent, + UserRequest, + UserResponse, + UserResponseCommonFields, + UserResponsePrivacyFields, + UserUnbannedEvent, + UserUnmutedEvent, + UserUnreadReminderEvent, + UserUpdatedEvent, + VelocityFilterConfig, + VelocityFilterConfigRule, + VideoCallRuleConfig, + VideoEndCallRequest, + VideoKickUserRequest, + VideoOrientation, + VideoReactionOverTimeResponse, + VideoReactionsResponse, + VideoSettings, + VideoSettingsRequest, + VideoSettingsResponse, + VoteData, + WSEvent, + WebhookEvent, + WrappedUnreadCountsResponse, + XiaomiConfig, + XiaomiConfigFields, } from '../models'; import { decoders } from '../model-decoders/decoders'; @@ -77,7 +919,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/app', undefined, undefined); - decoders.GetApplicationResponse?.(response.body); + decoders['GetApplicationResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -115,6 +957,7 @@ export class CommonApi { sqs_url: request?.sqs_url, webhook_url: request?.webhook_url, allowed_flag_reasons: request?.allowed_flag_reasons, + event_hooks: request?.event_hooks, image_moderation_block_labels: request?.image_moderation_block_labels, image_moderation_labels: request?.image_moderation_labels, user_search_disallowed_roles: request?.user_search_disallowed_roles, @@ -127,6 +970,8 @@ export class CommonApi { grants: request?.grants, huawei_config: request?.huawei_config, image_upload_config: request?.image_upload_config, + moderation_dashboard_preferences: + request?.moderation_dashboard_preferences, push_config: request?.push_config, xiaomi_config: request?.xiaomi_config, }; @@ -139,7 +984,7 @@ export class CommonApi { body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -155,7 +1000,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/blocklists', undefined, queryParams); - decoders.ListBlockListResponse?.(response.body); + decoders['ListBlockListResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -174,7 +1019,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/blocklists', undefined, undefined, body); - decoders.CreateBlockListResponse?.(response.body); + decoders['CreateBlockListResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -197,7 +1042,7 @@ export class CommonApi { queryParams, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -217,7 +1062,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/blocklists/{name}', pathParams, queryParams); - decoders.GetBlockListResponse?.(response.body); + decoders['GetBlockListResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -237,7 +1082,7 @@ export class CommonApi { StreamResponse >('PUT', '/api/v2/blocklists/{name}', pathParams, undefined, body); - decoders.UpdateBlockListResponse?.(response.body); + decoders['UpdateBlockListResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -247,6 +1092,7 @@ export class CommonApi { ): Promise> { const body = { apn_template: request?.apn_template, + event_type: request?.event_type, firebase_data_template: request?.firebase_data_template, firebase_template: request?.firebase_template, message_id: request?.message_id, @@ -261,7 +1107,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/check_push', undefined, undefined, body); - decoders.CheckPushResponse?.(response.body); + decoders['CheckPushResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -279,7 +1125,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/check_sns', undefined, undefined, body); - decoders.CheckSNSResponse?.(response.body); + decoders['CheckSNSResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -297,7 +1143,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/check_sqs', undefined, undefined, body); - decoders.CheckSQSResponse?.(response.body); + decoders['CheckSQSResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -318,7 +1164,7 @@ export class CommonApi { queryParams, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -334,7 +1180,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/devices', undefined, queryParams); - decoders.ListDevicesResponse?.(response.body); + decoders['ListDevicesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -359,7 +1205,7 @@ export class CommonApi { body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -375,7 +1221,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/export/users', undefined, undefined, body); - decoders.ExportUsersResponse?.(response.body); + decoders['ExportUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -387,7 +1233,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/external_storage', undefined, undefined); - decoders.ListExternalStorageResponse?.(response.body); + decoders['ListExternalStorageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -409,7 +1255,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/external_storage', undefined, undefined, body); - decoders.CreateExternalStorageResponse?.(response.body); + decoders['CreateExternalStorageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -425,7 +1271,7 @@ export class CommonApi { StreamResponse >('DELETE', '/api/v2/external_storage/{name}', pathParams, undefined); - decoders.DeleteExternalStorageResponse?.(response.body); + decoders['DeleteExternalStorageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -449,7 +1295,7 @@ export class CommonApi { StreamResponse >('PUT', '/api/v2/external_storage/{name}', pathParams, undefined, body); - decoders.UpdateExternalStorageResponse?.(response.body); + decoders['UpdateExternalStorageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -465,7 +1311,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/external_storage/{name}/check', pathParams, undefined); - decoders.CheckExternalStorageResponse?.(response.body); + decoders['CheckExternalStorageResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -481,7 +1327,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/guest', undefined, undefined, body); - decoders.CreateGuestResponse?.(response.body); + decoders['CreateGuestResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -497,7 +1343,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/import_urls', undefined, undefined, body); - decoders.CreateImportURLResponse?.(response.body); + decoders['CreateImportURLResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -507,7 +1353,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/imports', undefined, undefined); - decoders.ListImportsResponse?.(response.body); + decoders['ListImportsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -524,7 +1370,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/imports', undefined, undefined, body); - decoders.CreateImportResponse?.(response.body); + decoders['CreateImportResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -540,7 +1386,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/imports/{id}', pathParams, undefined); - decoders.GetImportResponse?.(response.body); + decoders['GetImportResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -556,7 +1402,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/og', undefined, queryParams); - decoders.GetOGResponse?.(response.body); + decoders['GetOGResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -566,7 +1412,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/permissions', undefined, undefined); - decoders.ListPermissionsResponse?.(response.body); + decoders['ListPermissionsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -582,7 +1428,274 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/permissions/{id}', pathParams, undefined); - decoders.GetCustomPermissionResponse?.(response.body); + decoders['GetCustomPermissionResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createPoll( + request: CreatePollRequest, + ): Promise> { + const body = { + name: request?.name, + allow_answers: request?.allow_answers, + allow_user_suggested_options: request?.allow_user_suggested_options, + description: request?.description, + enforce_unique_vote: request?.enforce_unique_vote, + id: request?.id, + is_closed: request?.is_closed, + max_votes_allowed: request?.max_votes_allowed, + user_id: request?.user_id, + voting_visibility: request?.voting_visibility, + options: request?.options, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/polls', undefined, undefined, body); + + decoders['PollResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updatePoll( + request: UpdatePollRequest, + ): Promise> { + const body = { + id: request?.id, + name: request?.name, + allow_answers: request?.allow_answers, + allow_user_suggested_options: request?.allow_user_suggested_options, + description: request?.description, + enforce_unique_vote: request?.enforce_unique_vote, + is_closed: request?.is_closed, + max_votes_allowed: request?.max_votes_allowed, + user_id: request?.user_id, + voting_visibility: request?.voting_visibility, + options: request?.options, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PUT', '/api/v2/polls', undefined, undefined, body); + + decoders['PollResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryPolls( + request?: QueryPollsRequest & { user_id?: string }, + ): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/polls/query', undefined, queryParams, body); + + decoders['QueryPollsResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deletePoll(request: { + poll_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/api/v2/polls/{poll_id}', + pathParams, + queryParams, + ); + + decoders['Response']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getPoll(request: { + poll_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('GET', '/api/v2/polls/{poll_id}', pathParams, queryParams); + + decoders['PollResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updatePollPartial( + request: UpdatePollPartialRequest & { poll_id: string }, + ): Promise> { + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + user_id: request?.user_id, + unset: request?.unset, + set: request?.set, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PATCH', '/api/v2/polls/{poll_id}', pathParams, undefined, body); + + decoders['PollResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async createPollOption( + request: CreatePollOptionRequest & { poll_id: string }, + ): Promise> { + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + text: request?.text, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/polls/{poll_id}/options', pathParams, undefined, body); + + decoders['PollOptionResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async updatePollOption( + request: UpdatePollOptionRequest & { poll_id: string }, + ): Promise> { + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + id: request?.id, + text: request?.text, + user_id: request?.user_id, + custom: request?.custom, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('PUT', '/api/v2/polls/{poll_id}/options', pathParams, undefined, body); + + decoders['PollOptionResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deletePollOption(request: { + poll_id: string; + option_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + option_id: request?.option_id, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/api/v2/polls/{poll_id}/options/{option_id}', + pathParams, + queryParams, + ); + + decoders['Response']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async getPollOption(request: { + poll_id: string; + option_id: string; + user_id?: string; + }): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + option_id: request?.option_id, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >( + 'GET', + '/api/v2/polls/{poll_id}/options/{option_id}', + pathParams, + queryParams, + ); + + decoders['PollOptionResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async queryPollVotes( + request: QueryPollVotesRequest & { poll_id: string; user_id?: string }, + ): Promise> { + const queryParams = { + user_id: request?.user_id, + }; + const pathParams = { + poll_id: request?.poll_id, + }; + const body = { + limit: request?.limit, + next: request?.next, + prev: request?.prev, + sort: request?.sort, + filter: request?.filter, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/polls/{poll_id}/votes', pathParams, queryParams, body); + + decoders['PollVotesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -594,7 +1707,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/push_providers', undefined, undefined); - decoders.ListPushProvidersResponse?.(response.body); + decoders['ListPushProvidersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -610,7 +1723,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/push_providers', undefined, undefined, body); - decoders.UpsertPushProviderResponse?.(response.body); + decoders['UpsertPushProviderResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -631,7 +1744,7 @@ export class CommonApi { undefined, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -655,7 +1768,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/rate_limits', undefined, queryParams); - decoders.GetRateLimitsResponse?.(response.body); + decoders['GetRateLimitsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -665,7 +1778,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/roles', undefined, undefined); - decoders.ListRolesResponse?.(response.body); + decoders['ListRolesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -681,7 +1794,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/roles', undefined, undefined, body); - decoders.CreateRoleResponse?.(response.body); + decoders['CreateRoleResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -700,7 +1813,7 @@ export class CommonApi { undefined, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -716,7 +1829,80 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/tasks/{id}', pathParams, undefined); - decoders.GetTaskResponse?.(response.body); + decoders['GetTaskResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteFileGlobal(request?: { + url?: string; + }): Promise> { + const queryParams = { + url: request?.url, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/api/v2/uploads/file', + undefined, + queryParams, + ); + + decoders['Response']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async uploadFileGlobal( + request?: FileUploadRequest, + ): Promise> { + const body = { + file: request?.file, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/uploads/file', undefined, undefined, body); + + decoders['FileUploadResponse']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async deleteImageGlobal(request?: { + url?: string; + }): Promise> { + const queryParams = { + url: request?.url, + }; + + const response = await this.apiClient.sendRequest>( + 'DELETE', + '/api/v2/uploads/image', + undefined, + queryParams, + ); + + decoders['Response']?.(response.body); + + return { ...response.body, metadata: response.metadata }; + } + + async uploadImageGlobal( + request?: ImageUploadRequest, + ): Promise> { + const body = { + file: request?.file, + upload_sizes: request?.upload_sizes, + user: request?.user, + }; + + const response = await this.apiClient.sendRequest< + StreamResponse + >('POST', '/api/v2/uploads/image', undefined, undefined, body); + + decoders['ImageUploadResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -732,7 +1918,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/users', undefined, queryParams); - decoders.QueryUsersResponse?.(response.body); + decoders['QueryUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -748,7 +1934,7 @@ export class CommonApi { StreamResponse >('PATCH', '/api/v2/users', undefined, undefined, body); - decoders.UpdateUsersResponse?.(response.body); + decoders['UpdateUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -764,7 +1950,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/users', undefined, undefined, body); - decoders.UpdateUsersResponse?.(response.body); + decoders['UpdateUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -780,7 +1966,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/users/block', undefined, queryParams); - decoders.GetBlockedUsersResponse?.(response.body); + decoders['GetBlockedUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -798,7 +1984,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/users/block', undefined, undefined, body); - decoders.BlockUsersResponse?.(response.body); + decoders['BlockUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -817,7 +2003,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/users/deactivate', undefined, undefined, body); - decoders.DeactivateUsersResponse?.(response.body); + decoders['DeactivateUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -839,7 +2025,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/users/delete', undefined, undefined, body); - decoders.DeleteUsersResponse?.(response.body); + decoders['DeleteUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -858,7 +2044,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/users/reactivate', undefined, undefined, body); - decoders.ReactivateUsersResponse?.(response.body); + decoders['ReactivateUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -878,7 +2064,7 @@ export class CommonApi { body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -896,7 +2082,7 @@ export class CommonApi { StreamResponse >('POST', '/api/v2/users/unblock', undefined, undefined, body); - decoders.UnblockUsersResponse?.(response.body); + decoders['UnblockUsersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -922,7 +2108,7 @@ export class CommonApi { body, ); - decoders.DeactivateUserResponse?.(response.body); + decoders['DeactivateUserResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -938,7 +2124,7 @@ export class CommonApi { StreamResponse >('GET', '/api/v2/users/{user_id}/export', pathParams, undefined); - decoders.ExportUserResponse?.(response.body); + decoders['ExportUserResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -965,7 +2151,7 @@ export class CommonApi { body, ); - decoders.ReactivateUserResponse?.(response.body); + decoders['ReactivateUserResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } diff --git a/src/gen/feeds/FeedApi.ts b/src/gen/feeds/FeedApi.ts new file mode 100644 index 0000000..9f9e555 --- /dev/null +++ b/src/gen/feeds/FeedApi.ts @@ -0,0 +1,1019 @@ +import { StreamResponse, FeedsApi } from '../../gen-imports'; +import { + AIImageConfig, + AITextConfig, + AIVideoConfig, + APIError, + APNConfig, + APNConfigFields, + APNS, + AWSRekognitionRule, + AcceptFeedMemberInviteRequest, + AcceptFeedMemberInviteResponse, + AcceptFollowRequest, + AcceptFollowResponse, + Action, + ActionLog, + ActionLogResponse, + ActionSequence, + ActivityAddedEvent, + ActivityAnalyserConfig, + ActivityDeletedEvent, + ActivityLocation, + ActivityMarkEvent, + ActivityMarkedEvent, + ActivityPinResponse, + ActivityPinnedEvent, + ActivityReactionAddedEvent, + ActivityReactionDeletedEvent, + ActivityRemovedFromFeedEvent, + ActivityRequest, + ActivityResponse, + ActivitySelectorConfig, + ActivityUnpinnedEvent, + ActivityUpdatedEvent, + AddActivityRequest, + AddActivityResponse, + AddBookmarkRequest, + AddBookmarkResponse, + AddCommentReactionRequest, + AddCommentReactionResponse, + AddCommentRequest, + AddCommentResponse, + AddCommentsBatchRequest, + AddCommentsBatchResponse, + AddFolderRequest, + AddReactionRequest, + AddReactionResponse, + AggregatedActivityResponse, + AggregationConfig, + AnyEvent, + AppResponseFields, + AsyncBulkImageModerationEvent, + AsyncExportChannelsEvent, + AsyncExportErrorEvent, + AsyncExportModerationLogsEvent, + AsyncExportUsersEvent, + AsyncModerationCallbackConfig, + AsyncModerationConfiguration, + Attachment, + AudioSettings, + AudioSettingsRequest, + AudioSettingsResponse, + AutomodDetails, + AutomodPlatformCircumventionConfig, + AutomodRule, + AutomodSemanticFiltersConfig, + AutomodSemanticFiltersRule, + AutomodToxicityConfig, + AzureRequest, + BackstageSettings, + BackstageSettingsRequest, + BackstageSettingsResponse, + Ban, + BanActionRequest, + BanRequest, + BanResponse, + BlockListConfig, + BlockListOptions, + BlockListResponse, + BlockListRule, + BlockUserRequest, + BlockUserResponse, + BlockUsersRequest, + BlockUsersResponse, + BlockedUserEvent, + BlockedUserResponse, + BodyguardRule, + BodyguardSeverityRule, + BookmarkAddedEvent, + BookmarkDeletedEvent, + BookmarkFolderResponse, + BookmarkResponse, + BookmarkUpdatedEvent, + Bound, + BroadcastSettings, + BroadcastSettingsRequest, + BroadcastSettingsResponse, + BrowserDataResponse, + BulkImageModerationRequest, + BulkImageModerationResponse, + Call, + CallAcceptedEvent, + CallClosedCaption, + CallClosedCaptionsFailedEvent, + CallClosedCaptionsStartedEvent, + CallClosedCaptionsStoppedEvent, + CallCreatedEvent, + CallDeletedEvent, + CallDurationReport, + CallDurationReportResponse, + CallEgress, + CallEndedEvent, + CallFrameRecordingFailedEvent, + CallFrameRecordingFrameReadyEvent, + CallFrameRecordingStartedEvent, + CallFrameRecordingStoppedEvent, + CallHLSBroadcastingFailedEvent, + CallHLSBroadcastingStartedEvent, + CallHLSBroadcastingStoppedEvent, + CallIngressResponse, + CallLiveStartedEvent, + CallMember, + CallMemberAddedEvent, + CallMemberRemovedEvent, + CallMemberUpdatedEvent, + CallMemberUpdatedPermissionEvent, + CallMissedEvent, + CallModerationBlurEvent, + CallModerationWarningEvent, + CallNotificationEvent, + CallParticipant, + CallParticipantCountReport, + CallParticipantCountReportResponse, + CallParticipantResponse, + CallReactionEvent, + CallRecording, + CallRecordingFailedEvent, + CallRecordingReadyEvent, + CallRecordingStartedEvent, + CallRecordingStoppedEvent, + CallRejectedEvent, + CallReportResponse, + CallRequest, + CallResponse, + CallRingEvent, + CallRtmpBroadcastFailedEvent, + CallRtmpBroadcastStartedEvent, + CallRtmpBroadcastStoppedEvent, + CallSession, + CallSessionEndedEvent, + CallSessionParticipantJoinedEvent, + CallSessionParticipantLeftEvent, + CallSessionResponse, + CallSessionStartedEvent, + CallSettings, + CallSettingsRequest, + CallSettingsResponse, + CallStateResponseFields, + CallStatsReportReadyEvent, + CallStatsReportSummaryResponse, + CallTranscription, + CallTranscriptionFailedEvent, + CallTranscriptionReadyEvent, + CallTranscriptionStartedEvent, + CallTranscriptionStoppedEvent, + CallType, + CallTypeResponse, + CallUpdatedEvent, + CallUserFeedbackSubmittedEvent, + CallUserMutedEvent, + CallsPerDayReport, + CallsPerDayReportResponse, + CampaignChannelTemplate, + CampaignCompletedEvent, + CampaignMessageTemplate, + CampaignResponse, + CampaignStartedEvent, + CampaignStatsResponse, + CastPollVoteRequest, + Channel, + ChannelConfig, + ChannelConfigWithInfo, + ChannelCreatedEvent, + ChannelDeletedEvent, + ChannelExport, + ChannelFrozenEvent, + ChannelGetOrCreateRequest, + ChannelHiddenEvent, + ChannelInput, + ChannelMember, + ChannelMemberResponse, + ChannelMessages, + ChannelMute, + ChannelMutedEvent, + ChannelOwnCapability, + ChannelPushPreferences, + ChannelResponse, + ChannelStateResponse, + ChannelStateResponseFields, + ChannelTruncatedEvent, + ChannelTypeConfig, + ChannelUnFrozenEvent, + ChannelUnmutedEvent, + ChannelUpdatedEvent, + ChannelVisibleEvent, + ChatActivityStatsResponse, + CheckExternalStorageResponse, + CheckPushRequest, + CheckPushResponse, + CheckRequest, + CheckResponse, + CheckSNSRequest, + CheckSNSResponse, + CheckSQSRequest, + CheckSQSResponse, + ClientOSDataResponse, + ClosedCaptionEvent, + CollectUserFeedbackRequest, + CollectUserFeedbackResponse, + Command, + CommentAddedEvent, + CommentDeletedEvent, + CommentReactionAddedEvent, + CommentReactionDeletedEvent, + CommentResponse, + CommentUpdatedEvent, + CommitMessageRequest, + CompositeAppSettings, + ConfigOverrides, + ConfigResponse, + CountByMinuteResponse, + CreateBlockListRequest, + CreateBlockListResponse, + CreateCallTypeRequest, + CreateCallTypeResponse, + CreateChannelTypeRequest, + CreateChannelTypeResponse, + CreateCommandRequest, + CreateCommandResponse, + CreateDeviceRequest, + CreateExternalStorageRequest, + CreateExternalStorageResponse, + CreateFeedGroupRequest, + CreateFeedGroupResponse, + CreateFeedViewRequest, + CreateFeedViewResponse, + CreateFeedsBatchRequest, + CreateFeedsBatchResponse, + CreateGuestRequest, + CreateGuestResponse, + CreateImportRequest, + CreateImportResponse, + CreateImportURLRequest, + CreateImportURLResponse, + CreatePollOptionRequest, + CreatePollRequest, + CreateReminderRequest, + CreateRoleRequest, + CreateRoleResponse, + CustomActionRequest, + CustomCheckFlag, + CustomCheckRequest, + CustomCheckResponse, + CustomVideoEvent, + DailyAggregateCallDurationReportResponse, + DailyAggregateCallParticipantCountReportResponse, + DailyAggregateCallsPerDayReportResponse, + DailyAggregateQualityScoreReportResponse, + DailyAggregateSDKUsageReportResponse, + DailyAggregateUserFeedbackReportResponse, + Data, + DataDogInfo, + DeactivateUserRequest, + DeactivateUserResponse, + DeactivateUsersRequest, + DeactivateUsersResponse, + DecayFunctionConfig, + DeleteActivitiesRequest, + DeleteActivitiesResponse, + DeleteActivityReactionResponse, + DeleteActivityRequest, + DeleteActivityResponse, + DeleteBookmarkResponse, + DeleteCallRequest, + DeleteCallResponse, + DeleteChannelResponse, + DeleteChannelsRequest, + DeleteChannelsResponse, + DeleteChannelsResultResponse, + DeleteCommandResponse, + DeleteCommentReactionResponse, + DeleteCommentResponse, + DeleteExternalStorageResponse, + DeleteFeedGroupResponse, + DeleteFeedResponse, + DeleteFeedUserDataResponse, + DeleteFeedViewResponse, + DeleteMessageRequest, + DeleteMessageResponse, + DeleteModerationConfigResponse, + DeleteModerationTemplateResponse, + DeleteReactionRequest, + DeleteReactionResponse, + DeleteRecordingResponse, + DeleteReminderResponse, + DeleteSegmentTargetsRequest, + DeleteTranscriptionResponse, + DeleteUserRequest, + DeleteUsersRequest, + DeleteUsersResponse, + Device, + DeviceDataResponse, + DeviceErrorInfo, + DeviceResponse, + DraftPayloadResponse, + DraftResponse, + EdgeResponse, + EgressHLSResponse, + EgressRTMPResponse, + EgressResponse, + EgressTaskConfig, + EgressUser, + EndCallRequest, + EndCallResponse, + EnrichedActivity, + EnrichedReaction, + EntityCreator, + EntityCreatorResponse, + ErrorResult, + EventHook, + EventNotificationSettings, + EventRequest, + EventResponse, + ExportChannelsRequest, + ExportChannelsResponse, + ExportFeedUserDataRequest, + ExportFeedUserDataResponse, + ExportUserResponse, + ExportUsersRequest, + ExportUsersResponse, + ExternalStorage, + ExternalStorageResponse, + FCM, + FeedCreatedEvent, + FeedDeletedEvent, + FeedGroup, + FeedGroupChangedEvent, + FeedGroupDeletedEvent, + FeedGroupResponse, + FeedInput, + FeedMemberAddedEvent, + FeedMemberRemovedEvent, + FeedMemberRequest, + FeedMemberResponse, + FeedMemberUpdatedEvent, + FeedOwnCapability, + FeedRequest, + FeedResponse, + FeedUpdatedEvent, + FeedViewResponse, + FeedsModerationTemplateConfig, + FeedsReactionResponse, + Field, + FileUploadConfig, + FileUploadRequest, + FileUploadResponse, + FirebaseConfig, + FirebaseConfigFields, + Flag, + FlagDetails, + FlagFeedback, + FlagMessageDetails, + FlagRequest, + FlagResponse, + FlagUpdatedEvent, + FollowBatchRequest, + FollowBatchResponse, + FollowCreatedEvent, + FollowDeletedEvent, + FollowPair, + FollowRequest, + FollowResponse, + FollowUpdatedEvent, + FrameRecordSettings, + FrameRecordingEgressConfig, + FrameRecordingResponse, + FrameRecordingSettingsRequest, + FrameRecordingSettingsResponse, + FullUserResponse, + GeofenceResponse, + GeofenceSettings, + GeofenceSettingsRequest, + GeofenceSettingsResponse, + GetActivityResponse, + GetApplicationResponse, + GetBlockListResponse, + GetBlockedUsersResponse, + GetCallReportResponse, + GetCallResponse, + GetCallTypeResponse, + GetCampaignResponse, + GetChannelTypeResponse, + GetCommandResponse, + GetCommentRepliesResponse, + GetCommentResponse, + GetCommentsResponse, + GetConfigResponse, + GetCustomPermissionResponse, + GetDraftResponse, + GetEdgesResponse, + GetFollowSuggestionsResponse, + GetImportResponse, + GetManyMessagesResponse, + GetMessageResponse, + GetOGResponse, + GetOrCreateCallRequest, + GetOrCreateCallResponse, + GetOrCreateFeedRequest, + GetOrCreateFeedResponse, + GetPushTemplatesResponse, + GetRateLimitsResponse, + GetReactionsResponse, + GetRepliesResponse, + GetReviewQueueItemResponse, + GetSegmentResponse, + GetTaskResponse, + GetThreadResponse, + GoLiveRequest, + GoLiveResponse, + GoogleVisionConfig, + GroupedStatsResponse, + HLSEgressConfig, + HLSSettings, + HLSSettingsRequest, + HLSSettingsResponse, + HarmConfig, + HideChannelRequest, + HideChannelResponse, + HuaweiConfig, + HuaweiConfigFields, + ImageData, + ImageSize, + ImageUploadRequest, + ImageUploadResponse, + Images, + ImportTask, + ImportTaskHistory, + Label, + LabelThresholds, + LayoutSettings, + LayoutSettingsRequest, + LayoutSettingsResponse, + LimitInfo, + LimitsSettings, + LimitsSettingsRequest, + LimitsSettingsResponse, + ListBlockListResponse, + ListCallTypeResponse, + ListChannelTypesResponse, + ListCommandsResponse, + ListDevicesResponse, + ListExternalStorageResponse, + ListImportsResponse, + ListPermissionsResponse, + ListPushProvidersResponse, + ListRecordingsResponse, + ListRolesResponse, + ListTranscriptionsResponse, + MarkActivityRequest, + MarkChannelsReadRequest, + MarkReadRequest, + MarkReadResponse, + MarkReviewedRequest, + MarkUnreadRequest, + MemberAddedEvent, + MemberLookup, + MemberRemovedEvent, + MemberRequest, + MemberResponse, + MemberUpdatedEvent, + MembersResponse, + Message, + MessageActionRequest, + MessageChangeSet, + MessageDeletedEvent, + MessageFlagResponse, + MessageFlaggedEvent, + MessageHistoryEntryResponse, + MessageModerationResult, + MessageNewEvent, + MessageOptions, + MessagePaginationParams, + MessageReadEvent, + MessageReminder, + MessageRequest, + MessageResponse, + MessageStatsResponse, + MessageUnblockedEvent, + MessageUndeletedEvent, + MessageUpdate, + MessageUpdatedEvent, + MessageWithChannelResponse, + ModerationActionConfig, + ModerationCheckCompletedEvent, + ModerationCustomActionEvent, + ModerationDashboardPreferences, + ModerationFlagResponse, + ModerationFlaggedEvent, + ModerationMarkReviewedEvent, + ModerationPayload, + ModerationResponse, + ModerationV2Response, + MuteChannelRequest, + MuteChannelResponse, + MuteRequest, + MuteResponse, + MuteUsersRequest, + MuteUsersResponse, + NetworkMetricsReportResponse, + NoiseCancellationSettings, + NotificationConfig, + NotificationMarkUnreadEvent, + NotificationSettings, + NotificationStatusResponse, + NullTime, + OCRRule, + OnlyUserID, + OwnCapability, + OwnUser, + OwnUserResponse, + PagerRequest, + PagerResponse, + PaginationParams, + ParticipantCountByMinuteResponse, + ParticipantCountOverTimeResponse, + ParticipantReportResponse, + PendingMessageResponse, + PerSDKUsageReport, + Permission, + PermissionRequestEvent, + PinActivityRequest, + PinActivityResponse, + PinRequest, + PinResponse, + PlatformDataResponse, + Policy, + PolicyRequest, + Poll, + PollOption, + PollOptionInput, + PollOptionRequest, + PollOptionResponse, + PollOptionResponseData, + PollResponse, + PollResponseData, + PollVote, + PollVoteResponse, + PollVoteResponseData, + PollVotesResponse, + PrivacySettings, + PrivacySettingsResponse, + PublisherStatsResponse, + PushConfig, + PushNotificationFields, + PushNotificationSettingsResponse, + PushPreferenceInput, + PushPreferences, + PushProvider, + PushProviderResponse, + PushTemplate, + Quality, + QualityScoreReport, + QualityScoreReportResponse, + QueryActivitiesRequest, + QueryActivitiesResponse, + QueryActivityReactionsRequest, + QueryActivityReactionsResponse, + QueryAggregateCallStatsRequest, + QueryAggregateCallStatsResponse, + QueryBannedUsersPayload, + QueryBannedUsersResponse, + QueryBookmarkFoldersRequest, + QueryBookmarkFoldersResponse, + QueryBookmarksRequest, + QueryBookmarksResponse, + QueryCallMembersRequest, + QueryCallMembersResponse, + QueryCallParticipantsRequest, + QueryCallParticipantsResponse, + QueryCallStatsRequest, + QueryCallStatsResponse, + QueryCallsRequest, + QueryCallsResponse, + QueryCampaignsRequest, + QueryCampaignsResponse, + QueryChannelsRequest, + QueryChannelsResponse, + QueryCommentReactionsRequest, + QueryCommentReactionsResponse, + QueryCommentsRequest, + QueryCommentsResponse, + QueryDraftsRequest, + QueryDraftsResponse, + QueryFeedMembersRequest, + QueryFeedMembersResponse, + QueryFeedModerationTemplate, + QueryFeedModerationTemplatesResponse, + QueryFeedsRequest, + QueryFeedsResponse, + QueryFollowsRequest, + QueryFollowsResponse, + QueryMembersPayload, + QueryMessageFlagsPayload, + QueryMessageFlagsResponse, + QueryMessageHistoryRequest, + QueryMessageHistoryResponse, + QueryModerationConfigsRequest, + QueryModerationConfigsResponse, + QueryModerationFlagsRequest, + QueryModerationFlagsResponse, + QueryModerationLogsRequest, + QueryModerationLogsResponse, + QueryPollVotesRequest, + QueryPollsRequest, + QueryPollsResponse, + QueryReactionsRequest, + QueryReactionsResponse, + QueryRemindersRequest, + QueryRemindersResponse, + QueryReviewQueueRequest, + QueryReviewQueueResponse, + QuerySegmentTargetsRequest, + QuerySegmentTargetsResponse, + QuerySegmentsRequest, + QuerySegmentsResponse, + QueryThreadsRequest, + QueryThreadsResponse, + QueryUserFeedbackRequest, + QueryUserFeedbackResponse, + QueryUsersPayload, + QueryUsersResponse, + RTMPBroadcastRequest, + RTMPEgressConfig, + RTMPIngress, + RTMPLocation, + RTMPSettings, + RTMPSettingsRequest, + RTMPSettingsResponse, + RankingConfig, + Reaction, + ReactionDeletedEvent, + ReactionGroupResponse, + ReactionNewEvent, + ReactionRequest, + ReactionResponse, + ReactionUpdatedEvent, + ReactivateUserRequest, + ReactivateUserResponse, + ReactivateUsersRequest, + ReactivateUsersResponse, + ReadReceipts, + ReadReceiptsResponse, + ReadStateResponse, + RecordSettings, + RecordSettingsRequest, + RecordSettingsResponse, + RecordingEgressConfig, + RejectFeedMemberInviteRequest, + RejectFeedMemberInviteResponse, + RejectFollowRequest, + RejectFollowResponse, + ReminderResponseData, + RepliesMeta, + ReportByHistogramBucket, + ReportResponse, + Response, + RestoreActionRequest, + RestoreUsersRequest, + ReviewQueueItem, + ReviewQueueItemNewEvent, + ReviewQueueItemResponse, + ReviewQueueItemUpdatedEvent, + RingSettings, + RingSettingsRequest, + RingSettingsResponse, + Role, + RuleBuilderAction, + RuleBuilderCondition, + RuleBuilderConfig, + RuleBuilderRule, + S3Request, + SDKUsageReport, + SDKUsageReportResponse, + SFUIDLastSeen, + STTEgressConfig, + ScreensharingSettings, + ScreensharingSettingsRequest, + ScreensharingSettingsResponse, + SearchPayload, + SearchResponse, + SearchResult, + SearchResultMessage, + SearchWarning, + Segment, + SegmentResponse, + SegmentTargetResponse, + SendCallEventRequest, + SendCallEventResponse, + SendEventRequest, + SendMessageRequest, + SendMessageResponse, + SendReactionRequest, + SendReactionResponse, + SendUserCustomEventRequest, + SessionSettings, + SessionSettingsRequest, + SessionSettingsResponse, + ShadowBlockActionRequest, + ShowChannelRequest, + ShowChannelResponse, + SingleFollowRequest, + SingleFollowResponse, + SortParam, + SortParamRequest, + StartCampaignRequest, + StartCampaignResponse, + StartClosedCaptionsRequest, + StartClosedCaptionsResponse, + StartFrameRecordingRequest, + StartFrameRecordingResponse, + StartHLSBroadcastingRequest, + StartHLSBroadcastingResponse, + StartRTMPBroadcastsRequest, + StartRTMPBroadcastsResponse, + StartRecordingRequest, + StartRecordingResponse, + StartTranscriptionRequest, + StartTranscriptionResponse, + StopAllRTMPBroadcastsRequest, + StopAllRTMPBroadcastsResponse, + StopCampaignRequest, + StopClosedCaptionsRequest, + StopClosedCaptionsResponse, + StopFrameRecordingRequest, + StopFrameRecordingResponse, + StopHLSBroadcastingRequest, + StopHLSBroadcastingResponse, + StopLiveRequest, + StopLiveResponse, + StopRTMPBroadcastsRequest, + StopRTMPBroadcastsResponse, + StopRecordingRequest, + StopRecordingResponse, + StopTranscriptionRequest, + StopTranscriptionResponse, + StoriesConfig, + SubmitActionRequest, + SubmitActionResponse, + SubscriberStatsResponse, + TargetResolution, + ThreadParticipant, + ThreadResponse, + ThreadStateResponse, + ThreadUpdatedEvent, + ThreadedCommentResponse, + Thresholds, + ThumbnailResponse, + ThumbnailsSettings, + ThumbnailsSettingsRequest, + ThumbnailsSettingsResponse, + Time, + TrackStatsResponse, + TranscriptionSettings, + TranscriptionSettingsRequest, + TranscriptionSettingsResponse, + TranslateMessageRequest, + TruncateChannelRequest, + TruncateChannelResponse, + TypingIndicators, + TypingIndicatorsResponse, + UnbanActionRequest, + UnbanRequest, + UnbanResponse, + UnblockActionRequest, + UnblockUserRequest, + UnblockUserResponse, + UnblockUsersRequest, + UnblockUsersResponse, + UnblockedUserEvent, + UnfollowBatchRequest, + UnfollowBatchResponse, + UnfollowResponse, + UnmuteChannelRequest, + UnmuteRequest, + UnmuteResponse, + UnpinActivityResponse, + UnpinRequest, + UnpinResponse, + UnreadCountsBatchRequest, + UnreadCountsBatchResponse, + UnreadCountsChannel, + UnreadCountsChannelType, + UnreadCountsResponse, + UnreadCountsThread, + UpdateActivityPartialRequest, + UpdateActivityPartialResponse, + UpdateActivityRequest, + UpdateActivityResponse, + UpdateAppRequest, + UpdateBlockListRequest, + UpdateBlockListResponse, + UpdateBookmarkRequest, + UpdateBookmarkResponse, + UpdateCallMembersRequest, + UpdateCallMembersResponse, + UpdateCallRequest, + UpdateCallResponse, + UpdateCallTypeRequest, + UpdateCallTypeResponse, + UpdateChannelPartialRequest, + UpdateChannelPartialResponse, + UpdateChannelRequest, + UpdateChannelResponse, + UpdateChannelTypeRequest, + UpdateChannelTypeResponse, + UpdateCommandRequest, + UpdateCommandResponse, + UpdateCommentRequest, + UpdateCommentResponse, + UpdateExternalStorageRequest, + UpdateExternalStorageResponse, + UpdateFeedMembersRequest, + UpdateFeedMembersResponse, + UpdateFeedRequest, + UpdateFeedResponse, + UpdateFeedViewRequest, + UpdateFeedViewResponse, + UpdateFollowRequest, + UpdateFollowResponse, + UpdateMemberPartialRequest, + UpdateMemberPartialResponse, + UpdateMessagePartialRequest, + UpdateMessagePartialResponse, + UpdateMessageRequest, + UpdateMessageResponse, + UpdatePollOptionRequest, + UpdatePollPartialRequest, + UpdatePollRequest, + UpdateReminderRequest, + UpdateReminderResponse, + UpdateThreadPartialRequest, + UpdateThreadPartialResponse, + UpdateUserPartialRequest, + UpdateUserPermissionsRequest, + UpdateUserPermissionsResponse, + UpdateUsersPartialRequest, + UpdateUsersRequest, + UpdateUsersResponse, + UpdatedCallPermissionsEvent, + UpsertActivitiesRequest, + UpsertActivitiesResponse, + UpsertConfigRequest, + UpsertConfigResponse, + UpsertModerationTemplateRequest, + UpsertModerationTemplateResponse, + UpsertPushPreferencesRequest, + UpsertPushPreferencesResponse, + UpsertPushProviderRequest, + UpsertPushProviderResponse, + UpsertPushTemplateRequest, + UpsertPushTemplateResponse, + User, + UserBannedEvent, + UserCustomEventRequest, + UserDeactivatedEvent, + UserDeletedEvent, + UserFeedbackReport, + UserFeedbackReportResponse, + UserFeedbackResponse, + UserFlaggedEvent, + UserMute, + UserMuteResponse, + UserMutedEvent, + UserRatingReportResponse, + UserReactivatedEvent, + UserRequest, + UserResponse, + UserResponseCommonFields, + UserResponsePrivacyFields, + UserUnbannedEvent, + UserUnmutedEvent, + UserUnreadReminderEvent, + UserUpdatedEvent, + VelocityFilterConfig, + VelocityFilterConfigRule, + VideoCallRuleConfig, + VideoEndCallRequest, + VideoKickUserRequest, + VideoOrientation, + VideoReactionOverTimeResponse, + VideoReactionsResponse, + VideoSettings, + VideoSettingsRequest, + VideoSettingsResponse, + VoteData, + WSEvent, + WebhookEvent, + WrappedUnreadCountsResponse, + XiaomiConfig, + XiaomiConfigFields, +} from '../models'; + +export class FeedApi { + constructor( + protected feedsApi: FeedsApi, + public readonly group: string, + public readonly id: string, + ) {} + + delete(request?: { + hard_delete?: boolean; + }): Promise> { + return this.feedsApi.deleteFeed({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + getOrCreate( + request?: GetOrCreateFeedRequest, + ): Promise> { + return this.feedsApi.getOrCreateFeed({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + update( + request?: UpdateFeedRequest, + ): Promise> { + return this.feedsApi.updateFeed({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + markActivity( + request?: MarkActivityRequest, + ): Promise> { + return this.feedsApi.markActivity({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + unpinActivity(request: { + activity_id: string; + }): Promise> { + return this.feedsApi.unpinActivity({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + pinActivity( + request: PinActivityRequest & { activity_id: string }, + ): Promise> { + return this.feedsApi.pinActivity({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + updateFeedMembers( + request: UpdateFeedMembersRequest, + ): Promise> { + return this.feedsApi.updateFeedMembers({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + acceptFeedMemberInvite( + request?: AcceptFeedMemberInviteRequest, + ): Promise> { + return this.feedsApi.acceptFeedMemberInvite({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + queryFeedMembers( + request?: QueryFeedMembersRequest, + ): Promise> { + return this.feedsApi.queryFeedMembers({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } + + rejectFeedMemberInvite( + request?: RejectFeedMemberInviteRequest, + ): Promise> { + return this.feedsApi.rejectFeedMemberInvite({ + feed_id: this.id, + feed_group_id: this.group, + ...request, + }); + } +} diff --git a/src/gen-feeds/feeds/FeedsApi.ts b/src/gen/feeds/FeedsApi.ts similarity index 57% rename from src/gen-feeds/feeds/FeedsApi.ts rename to src/gen/feeds/FeedsApi.ts index 2060d76..b8a5e8f 100644 --- a/src/gen-feeds/feeds/FeedsApi.ts +++ b/src/gen/feeds/FeedsApi.ts @@ -1,9 +1,37 @@ import { ApiClient, StreamResponse } from '../../gen-imports'; import { + AIImageConfig, + AITextConfig, + AIVideoConfig, + APIError, + APNConfig, + APNConfigFields, + APNS, + AWSRekognitionRule, AcceptFeedMemberInviteRequest, AcceptFeedMemberInviteResponse, AcceptFollowRequest, AcceptFollowResponse, + Action, + ActionLog, + ActionLogResponse, + ActionSequence, + ActivityAddedEvent, + ActivityAnalyserConfig, + ActivityDeletedEvent, + ActivityLocation, + ActivityMarkEvent, + ActivityMarkedEvent, + ActivityPinResponse, + ActivityPinnedEvent, + ActivityReactionAddedEvent, + ActivityReactionDeletedEvent, + ActivityRemovedFromFeedEvent, + ActivityRequest, + ActivityResponse, + ActivitySelectorConfig, + ActivityUnpinnedEvent, + ActivityUpdatedEvent, AddActivityRequest, AddActivityResponse, AddBookmarkRequest, @@ -14,85 +42,793 @@ import { AddCommentResponse, AddCommentsBatchRequest, AddCommentsBatchResponse, + AddFolderRequest, AddReactionRequest, AddReactionResponse, + AggregatedActivityResponse, + AggregationConfig, + AnyEvent, + AppResponseFields, + AsyncBulkImageModerationEvent, + AsyncExportChannelsEvent, + AsyncExportErrorEvent, + AsyncExportModerationLogsEvent, + AsyncExportUsersEvent, + AsyncModerationCallbackConfig, + AsyncModerationConfiguration, + Attachment, + AudioSettings, + AudioSettingsRequest, + AudioSettingsResponse, + AutomodDetails, + AutomodPlatformCircumventionConfig, + AutomodRule, + AutomodSemanticFiltersConfig, + AutomodSemanticFiltersRule, + AutomodToxicityConfig, + AzureRequest, + BackstageSettings, + BackstageSettingsRequest, + BackstageSettingsResponse, + Ban, + BanActionRequest, + BanRequest, + BanResponse, + BlockListConfig, + BlockListOptions, + BlockListResponse, + BlockListRule, + BlockUserRequest, + BlockUserResponse, + BlockUsersRequest, + BlockUsersResponse, + BlockedUserEvent, + BlockedUserResponse, + BodyguardRule, + BodyguardSeverityRule, + BookmarkAddedEvent, + BookmarkDeletedEvent, + BookmarkFolderResponse, + BookmarkResponse, + BookmarkUpdatedEvent, + Bound, + BroadcastSettings, + BroadcastSettingsRequest, + BroadcastSettingsResponse, + BrowserDataResponse, + BulkImageModerationRequest, + BulkImageModerationResponse, + Call, + CallAcceptedEvent, + CallClosedCaption, + CallClosedCaptionsFailedEvent, + CallClosedCaptionsStartedEvent, + CallClosedCaptionsStoppedEvent, + CallCreatedEvent, + CallDeletedEvent, + CallDurationReport, + CallDurationReportResponse, + CallEgress, + CallEndedEvent, + CallFrameRecordingFailedEvent, + CallFrameRecordingFrameReadyEvent, + CallFrameRecordingStartedEvent, + CallFrameRecordingStoppedEvent, + CallHLSBroadcastingFailedEvent, + CallHLSBroadcastingStartedEvent, + CallHLSBroadcastingStoppedEvent, + CallIngressResponse, + CallLiveStartedEvent, + CallMember, + CallMemberAddedEvent, + CallMemberRemovedEvent, + CallMemberUpdatedEvent, + CallMemberUpdatedPermissionEvent, + CallMissedEvent, + CallModerationBlurEvent, + CallModerationWarningEvent, + CallNotificationEvent, + CallParticipant, + CallParticipantCountReport, + CallParticipantCountReportResponse, + CallParticipantResponse, + CallReactionEvent, + CallRecording, + CallRecordingFailedEvent, + CallRecordingReadyEvent, + CallRecordingStartedEvent, + CallRecordingStoppedEvent, + CallRejectedEvent, + CallReportResponse, + CallRequest, + CallResponse, + CallRingEvent, + CallRtmpBroadcastFailedEvent, + CallRtmpBroadcastStartedEvent, + CallRtmpBroadcastStoppedEvent, + CallSession, + CallSessionEndedEvent, + CallSessionParticipantJoinedEvent, + CallSessionParticipantLeftEvent, + CallSessionResponse, + CallSessionStartedEvent, + CallSettings, + CallSettingsRequest, + CallSettingsResponse, + CallStateResponseFields, + CallStatsReportReadyEvent, + CallStatsReportSummaryResponse, + CallTranscription, + CallTranscriptionFailedEvent, + CallTranscriptionReadyEvent, + CallTranscriptionStartedEvent, + CallTranscriptionStoppedEvent, + CallType, + CallTypeResponse, + CallUpdatedEvent, + CallUserFeedbackSubmittedEvent, + CallUserMutedEvent, + CallsPerDayReport, + CallsPerDayReportResponse, + CampaignChannelTemplate, + CampaignCompletedEvent, + CampaignMessageTemplate, + CampaignResponse, + CampaignStartedEvent, + CampaignStatsResponse, CastPollVoteRequest, + Channel, + ChannelConfig, + ChannelConfigWithInfo, + ChannelCreatedEvent, + ChannelDeletedEvent, + ChannelExport, + ChannelFrozenEvent, + ChannelGetOrCreateRequest, + ChannelHiddenEvent, + ChannelInput, + ChannelMember, + ChannelMemberResponse, + ChannelMessages, + ChannelMute, + ChannelMutedEvent, + ChannelOwnCapability, + ChannelPushPreferences, + ChannelResponse, + ChannelStateResponse, + ChannelStateResponseFields, + ChannelTruncatedEvent, + ChannelTypeConfig, + ChannelUnFrozenEvent, + ChannelUnmutedEvent, + ChannelUpdatedEvent, + ChannelVisibleEvent, + ChatActivityStatsResponse, + CheckExternalStorageResponse, + CheckPushRequest, + CheckPushResponse, + CheckRequest, + CheckResponse, + CheckSNSRequest, + CheckSNSResponse, + CheckSQSRequest, + CheckSQSResponse, + ClientOSDataResponse, + ClosedCaptionEvent, + CollectUserFeedbackRequest, + CollectUserFeedbackResponse, + Command, + CommentAddedEvent, + CommentDeletedEvent, + CommentReactionAddedEvent, + CommentReactionDeletedEvent, + CommentResponse, + CommentUpdatedEvent, + CommitMessageRequest, + CompositeAppSettings, + ConfigOverrides, + ConfigResponse, + CountByMinuteResponse, + CreateBlockListRequest, + CreateBlockListResponse, + CreateCallTypeRequest, + CreateCallTypeResponse, + CreateChannelTypeRequest, + CreateChannelTypeResponse, + CreateCommandRequest, + CreateCommandResponse, + CreateDeviceRequest, + CreateExternalStorageRequest, + CreateExternalStorageResponse, CreateFeedGroupRequest, CreateFeedGroupResponse, CreateFeedViewRequest, CreateFeedViewResponse, CreateFeedsBatchRequest, CreateFeedsBatchResponse, + CreateGuestRequest, + CreateGuestResponse, + CreateImportRequest, + CreateImportResponse, + CreateImportURLRequest, + CreateImportURLResponse, CreatePollOptionRequest, CreatePollRequest, + CreateReminderRequest, + CreateRoleRequest, + CreateRoleResponse, + CustomActionRequest, + CustomCheckFlag, + CustomCheckRequest, + CustomCheckResponse, + CustomVideoEvent, + DailyAggregateCallDurationReportResponse, + DailyAggregateCallParticipantCountReportResponse, + DailyAggregateCallsPerDayReportResponse, + DailyAggregateQualityScoreReportResponse, + DailyAggregateSDKUsageReportResponse, + DailyAggregateUserFeedbackReportResponse, + Data, + DataDogInfo, + DeactivateUserRequest, + DeactivateUserResponse, + DeactivateUsersRequest, + DeactivateUsersResponse, + DecayFunctionConfig, DeleteActivitiesRequest, DeleteActivitiesResponse, DeleteActivityReactionResponse, + DeleteActivityRequest, DeleteActivityResponse, DeleteBookmarkResponse, + DeleteCallRequest, + DeleteCallResponse, + DeleteChannelResponse, + DeleteChannelsRequest, + DeleteChannelsResponse, + DeleteChannelsResultResponse, + DeleteCommandResponse, DeleteCommentReactionResponse, DeleteCommentResponse, + DeleteExternalStorageResponse, DeleteFeedGroupResponse, DeleteFeedResponse, DeleteFeedUserDataResponse, DeleteFeedViewResponse, + DeleteMessageRequest, + DeleteMessageResponse, + DeleteModerationConfigResponse, + DeleteModerationTemplateResponse, + DeleteReactionRequest, + DeleteReactionResponse, + DeleteRecordingResponse, + DeleteReminderResponse, + DeleteSegmentTargetsRequest, + DeleteTranscriptionResponse, + DeleteUserRequest, + DeleteUsersRequest, + DeleteUsersResponse, + Device, + DeviceDataResponse, + DeviceErrorInfo, + DeviceResponse, + DraftPayloadResponse, + DraftResponse, + EdgeResponse, + EgressHLSResponse, + EgressRTMPResponse, + EgressResponse, + EgressTaskConfig, + EgressUser, + EndCallRequest, + EndCallResponse, + EnrichedActivity, + EnrichedReaction, + EntityCreator, + EntityCreatorResponse, + ErrorResult, + EventHook, + EventNotificationSettings, + EventRequest, + EventResponse, + ExportChannelsRequest, + ExportChannelsResponse, + ExportFeedUserDataRequest, ExportFeedUserDataResponse, + ExportUserResponse, + ExportUsersRequest, + ExportUsersResponse, + ExternalStorage, + ExternalStorageResponse, + FCM, + FeedCreatedEvent, + FeedDeletedEvent, + FeedGroup, + FeedGroupChangedEvent, + FeedGroupDeletedEvent, + FeedGroupResponse, + FeedInput, + FeedMemberAddedEvent, + FeedMemberRemovedEvent, + FeedMemberRequest, + FeedMemberResponse, + FeedMemberUpdatedEvent, + FeedOwnCapability, + FeedRequest, + FeedResponse, + FeedUpdatedEvent, + FeedViewResponse, + FeedsModerationTemplateConfig, + FeedsReactionResponse, + Field, + FileUploadConfig, + FileUploadRequest, + FileUploadResponse, + FirebaseConfig, + FirebaseConfigFields, + Flag, + FlagDetails, + FlagFeedback, + FlagMessageDetails, + FlagRequest, + FlagResponse, + FlagUpdatedEvent, FollowBatchRequest, FollowBatchResponse, + FollowCreatedEvent, + FollowDeletedEvent, + FollowPair, + FollowRequest, + FollowResponse, + FollowUpdatedEvent, + FrameRecordSettings, + FrameRecordingEgressConfig, + FrameRecordingResponse, + FrameRecordingSettingsRequest, + FrameRecordingSettingsResponse, + FullUserResponse, + GeofenceResponse, + GeofenceSettings, + GeofenceSettingsRequest, + GeofenceSettingsResponse, GetActivityResponse, + GetApplicationResponse, + GetBlockListResponse, + GetBlockedUsersResponse, + GetCallReportResponse, + GetCallResponse, + GetCallTypeResponse, + GetCampaignResponse, + GetChannelTypeResponse, + GetCommandResponse, GetCommentRepliesResponse, GetCommentResponse, GetCommentsResponse, + GetConfigResponse, + GetCustomPermissionResponse, + GetDraftResponse, + GetEdgesResponse, GetFollowSuggestionsResponse, + GetImportResponse, + GetManyMessagesResponse, + GetMessageResponse, + GetOGResponse, + GetOrCreateCallRequest, + GetOrCreateCallResponse, GetOrCreateFeedRequest, GetOrCreateFeedResponse, + GetPushTemplatesResponse, + GetRateLimitsResponse, + GetReactionsResponse, + GetRepliesResponse, + GetReviewQueueItemResponse, + GetSegmentResponse, + GetTaskResponse, + GetThreadResponse, + GoLiveRequest, + GoLiveResponse, + GoogleVisionConfig, + GroupedStatsResponse, + HLSEgressConfig, + HLSSettings, + HLSSettingsRequest, + HLSSettingsResponse, + HarmConfig, + HideChannelRequest, + HideChannelResponse, + HuaweiConfig, + HuaweiConfigFields, + ImageData, + ImageSize, + ImageUploadRequest, + ImageUploadResponse, + Images, + ImportTask, + ImportTaskHistory, + Label, + LabelThresholds, + LayoutSettings, + LayoutSettingsRequest, + LayoutSettingsResponse, + LimitInfo, + LimitsSettings, + LimitsSettingsRequest, + LimitsSettingsResponse, + ListBlockListResponse, + ListCallTypeResponse, + ListChannelTypesResponse, + ListCommandsResponse, + ListDevicesResponse, + ListExternalStorageResponse, + ListImportsResponse, + ListPermissionsResponse, + ListPushProvidersResponse, + ListRecordingsResponse, + ListRolesResponse, + ListTranscriptionsResponse, MarkActivityRequest, + MarkChannelsReadRequest, + MarkReadRequest, + MarkReadResponse, + MarkReviewedRequest, + MarkUnreadRequest, + MemberAddedEvent, + MemberLookup, + MemberRemovedEvent, + MemberRequest, + MemberResponse, + MemberUpdatedEvent, + MembersResponse, + Message, + MessageActionRequest, + MessageChangeSet, + MessageDeletedEvent, + MessageFlagResponse, + MessageFlaggedEvent, + MessageHistoryEntryResponse, + MessageModerationResult, + MessageNewEvent, + MessageOptions, + MessagePaginationParams, + MessageReadEvent, + MessageReminder, + MessageRequest, + MessageResponse, + MessageStatsResponse, + MessageUnblockedEvent, + MessageUndeletedEvent, + MessageUpdate, + MessageUpdatedEvent, + MessageWithChannelResponse, + ModerationActionConfig, + ModerationCheckCompletedEvent, + ModerationCustomActionEvent, + ModerationDashboardPreferences, + ModerationFlagResponse, + ModerationFlaggedEvent, + ModerationMarkReviewedEvent, + ModerationPayload, + ModerationResponse, + ModerationV2Response, + MuteChannelRequest, + MuteChannelResponse, + MuteRequest, + MuteResponse, + MuteUsersRequest, + MuteUsersResponse, + NetworkMetricsReportResponse, + NoiseCancellationSettings, + NotificationConfig, + NotificationMarkUnreadEvent, + NotificationSettings, + NotificationStatusResponse, + NullTime, + OCRRule, + OnlyUserID, + OwnCapability, + OwnUser, + OwnUserResponse, + PagerRequest, + PagerResponse, + PaginationParams, + ParticipantCountByMinuteResponse, + ParticipantCountOverTimeResponse, + ParticipantReportResponse, + PendingMessageResponse, + PerSDKUsageReport, + Permission, + PermissionRequestEvent, PinActivityRequest, PinActivityResponse, + PinRequest, + PinResponse, + PlatformDataResponse, + Policy, + PolicyRequest, + Poll, + PollOption, + PollOptionInput, + PollOptionRequest, PollOptionResponse, + PollOptionResponseData, PollResponse, + PollResponseData, + PollVote, PollVoteResponse, + PollVoteResponseData, PollVotesResponse, + PrivacySettings, + PrivacySettingsResponse, + PublisherStatsResponse, + PushConfig, + PushNotificationFields, + PushNotificationSettingsResponse, + PushPreferenceInput, + PushPreferences, + PushProvider, + PushProviderResponse, + PushTemplate, + Quality, + QualityScoreReport, + QualityScoreReportResponse, QueryActivitiesRequest, QueryActivitiesResponse, QueryActivityReactionsRequest, QueryActivityReactionsResponse, + QueryAggregateCallStatsRequest, + QueryAggregateCallStatsResponse, + QueryBannedUsersPayload, + QueryBannedUsersResponse, QueryBookmarkFoldersRequest, QueryBookmarkFoldersResponse, QueryBookmarksRequest, QueryBookmarksResponse, + QueryCallMembersRequest, + QueryCallMembersResponse, + QueryCallParticipantsRequest, + QueryCallParticipantsResponse, + QueryCallStatsRequest, + QueryCallStatsResponse, + QueryCallsRequest, + QueryCallsResponse, + QueryCampaignsRequest, + QueryCampaignsResponse, + QueryChannelsRequest, + QueryChannelsResponse, QueryCommentReactionsRequest, QueryCommentReactionsResponse, QueryCommentsRequest, QueryCommentsResponse, + QueryDraftsRequest, + QueryDraftsResponse, QueryFeedMembersRequest, QueryFeedMembersResponse, + QueryFeedModerationTemplate, + QueryFeedModerationTemplatesResponse, QueryFeedsRequest, QueryFeedsResponse, QueryFollowsRequest, QueryFollowsResponse, + QueryMembersPayload, + QueryMessageFlagsPayload, + QueryMessageFlagsResponse, + QueryMessageHistoryRequest, + QueryMessageHistoryResponse, + QueryModerationConfigsRequest, + QueryModerationConfigsResponse, + QueryModerationFlagsRequest, + QueryModerationFlagsResponse, + QueryModerationLogsRequest, + QueryModerationLogsResponse, QueryPollVotesRequest, QueryPollsRequest, QueryPollsResponse, + QueryReactionsRequest, + QueryReactionsResponse, + QueryRemindersRequest, + QueryRemindersResponse, + QueryReviewQueueRequest, + QueryReviewQueueResponse, + QuerySegmentTargetsRequest, + QuerySegmentTargetsResponse, + QuerySegmentsRequest, + QuerySegmentsResponse, + QueryThreadsRequest, + QueryThreadsResponse, + QueryUserFeedbackRequest, + QueryUserFeedbackResponse, + QueryUsersPayload, + QueryUsersResponse, + RTMPBroadcastRequest, + RTMPEgressConfig, + RTMPIngress, + RTMPLocation, + RTMPSettings, + RTMPSettingsRequest, + RTMPSettingsResponse, + RankingConfig, + Reaction, + ReactionDeletedEvent, + ReactionGroupResponse, + ReactionNewEvent, + ReactionRequest, + ReactionResponse, + ReactionUpdatedEvent, + ReactivateUserRequest, + ReactivateUserResponse, + ReactivateUsersRequest, + ReactivateUsersResponse, + ReadReceipts, + ReadReceiptsResponse, + ReadStateResponse, + RecordSettings, + RecordSettingsRequest, + RecordSettingsResponse, + RecordingEgressConfig, RejectFeedMemberInviteRequest, RejectFeedMemberInviteResponse, RejectFollowRequest, RejectFollowResponse, + ReminderResponseData, + RepliesMeta, + ReportByHistogramBucket, + ReportResponse, Response, + RestoreActionRequest, + RestoreUsersRequest, + ReviewQueueItem, + ReviewQueueItemNewEvent, + ReviewQueueItemResponse, + ReviewQueueItemUpdatedEvent, + RingSettings, + RingSettingsRequest, + RingSettingsResponse, + Role, + RuleBuilderAction, + RuleBuilderCondition, + RuleBuilderConfig, + RuleBuilderRule, + S3Request, + SDKUsageReport, + SDKUsageReportResponse, + SFUIDLastSeen, + STTEgressConfig, + ScreensharingSettings, + ScreensharingSettingsRequest, + ScreensharingSettingsResponse, + SearchPayload, + SearchResponse, + SearchResult, + SearchResultMessage, + SearchWarning, + Segment, + SegmentResponse, + SegmentTargetResponse, + SendCallEventRequest, + SendCallEventResponse, + SendEventRequest, + SendMessageRequest, + SendMessageResponse, + SendReactionRequest, + SendReactionResponse, + SendUserCustomEventRequest, + SessionSettings, + SessionSettingsRequest, + SessionSettingsResponse, + ShadowBlockActionRequest, + ShowChannelRequest, + ShowChannelResponse, SingleFollowRequest, SingleFollowResponse, + SortParam, + SortParamRequest, + StartCampaignRequest, + StartCampaignResponse, + StartClosedCaptionsRequest, + StartClosedCaptionsResponse, + StartFrameRecordingRequest, + StartFrameRecordingResponse, + StartHLSBroadcastingRequest, + StartHLSBroadcastingResponse, + StartRTMPBroadcastsRequest, + StartRTMPBroadcastsResponse, + StartRecordingRequest, + StartRecordingResponse, + StartTranscriptionRequest, + StartTranscriptionResponse, + StopAllRTMPBroadcastsRequest, + StopAllRTMPBroadcastsResponse, + StopCampaignRequest, + StopClosedCaptionsRequest, + StopClosedCaptionsResponse, + StopFrameRecordingRequest, + StopFrameRecordingResponse, + StopHLSBroadcastingRequest, + StopHLSBroadcastingResponse, + StopLiveRequest, + StopLiveResponse, + StopRTMPBroadcastsRequest, + StopRTMPBroadcastsResponse, + StopRecordingRequest, + StopRecordingResponse, + StopTranscriptionRequest, + StopTranscriptionResponse, + StoriesConfig, + SubmitActionRequest, + SubmitActionResponse, + SubscriberStatsResponse, + TargetResolution, + ThreadParticipant, + ThreadResponse, + ThreadStateResponse, + ThreadUpdatedEvent, + ThreadedCommentResponse, + Thresholds, + ThumbnailResponse, + ThumbnailsSettings, + ThumbnailsSettingsRequest, + ThumbnailsSettingsResponse, + Time, + TrackStatsResponse, + TranscriptionSettings, + TranscriptionSettingsRequest, + TranscriptionSettingsResponse, + TranslateMessageRequest, + TruncateChannelRequest, + TruncateChannelResponse, + TypingIndicators, + TypingIndicatorsResponse, + UnbanActionRequest, + UnbanRequest, + UnbanResponse, + UnblockActionRequest, + UnblockUserRequest, + UnblockUserResponse, + UnblockUsersRequest, + UnblockUsersResponse, + UnblockedUserEvent, UnfollowBatchRequest, UnfollowBatchResponse, UnfollowResponse, + UnmuteChannelRequest, + UnmuteRequest, + UnmuteResponse, UnpinActivityResponse, + UnpinRequest, + UnpinResponse, + UnreadCountsBatchRequest, + UnreadCountsBatchResponse, + UnreadCountsChannel, + UnreadCountsChannelType, + UnreadCountsResponse, + UnreadCountsThread, UpdateActivityPartialRequest, UpdateActivityPartialResponse, UpdateActivityRequest, UpdateActivityResponse, + UpdateAppRequest, + UpdateBlockListRequest, + UpdateBlockListResponse, UpdateBookmarkRequest, UpdateBookmarkResponse, + UpdateCallMembersRequest, + UpdateCallMembersResponse, + UpdateCallRequest, + UpdateCallResponse, + UpdateCallTypeRequest, + UpdateCallTypeResponse, + UpdateChannelPartialRequest, + UpdateChannelPartialResponse, + UpdateChannelRequest, + UpdateChannelResponse, + UpdateChannelTypeRequest, + UpdateChannelTypeResponse, + UpdateCommandRequest, + UpdateCommandResponse, UpdateCommentRequest, UpdateCommentResponse, + UpdateExternalStorageRequest, + UpdateExternalStorageResponse, UpdateFeedMembersRequest, UpdateFeedMembersResponse, UpdateFeedRequest, @@ -101,11 +837,77 @@ import { UpdateFeedViewResponse, UpdateFollowRequest, UpdateFollowResponse, + UpdateMemberPartialRequest, + UpdateMemberPartialResponse, + UpdateMessagePartialRequest, + UpdateMessagePartialResponse, + UpdateMessageRequest, + UpdateMessageResponse, UpdatePollOptionRequest, UpdatePollPartialRequest, UpdatePollRequest, + UpdateReminderRequest, + UpdateReminderResponse, + UpdateThreadPartialRequest, + UpdateThreadPartialResponse, + UpdateUserPartialRequest, + UpdateUserPermissionsRequest, + UpdateUserPermissionsResponse, + UpdateUsersPartialRequest, + UpdateUsersRequest, + UpdateUsersResponse, + UpdatedCallPermissionsEvent, UpsertActivitiesRequest, UpsertActivitiesResponse, + UpsertConfigRequest, + UpsertConfigResponse, + UpsertModerationTemplateRequest, + UpsertModerationTemplateResponse, + UpsertPushPreferencesRequest, + UpsertPushPreferencesResponse, + UpsertPushProviderRequest, + UpsertPushProviderResponse, + UpsertPushTemplateRequest, + UpsertPushTemplateResponse, + User, + UserBannedEvent, + UserCustomEventRequest, + UserDeactivatedEvent, + UserDeletedEvent, + UserFeedbackReport, + UserFeedbackReportResponse, + UserFeedbackResponse, + UserFlaggedEvent, + UserMute, + UserMuteResponse, + UserMutedEvent, + UserRatingReportResponse, + UserReactivatedEvent, + UserRequest, + UserResponse, + UserResponseCommonFields, + UserResponsePrivacyFields, + UserUnbannedEvent, + UserUnmutedEvent, + UserUnreadReminderEvent, + UserUpdatedEvent, + VelocityFilterConfig, + VelocityFilterConfigRule, + VideoCallRuleConfig, + VideoEndCallRequest, + VideoKickUserRequest, + VideoOrientation, + VideoReactionOverTimeResponse, + VideoReactionsResponse, + VideoSettings, + VideoSettingsRequest, + VideoSettingsResponse, + VoteData, + WSEvent, + WebhookEvent, + WrappedUnreadCountsResponse, + XiaomiConfig, + XiaomiConfigFields, } from '../models'; import { decoders } from '../model-decoders/decoders'; @@ -137,9 +939,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/activities', undefined, undefined, body); + >('POST', '/api/v2/feeds/activities', undefined, undefined, body); - decoders.AddActivityResponse?.(response.body); + decoders['AddActivityResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -153,9 +955,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/activities/batch', undefined, undefined, body); + >('POST', '/api/v2/feeds/activities/batch', undefined, undefined, body); - decoders.UpsertActivitiesResponse?.(response.body); + decoders['UpsertActivitiesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -172,9 +974,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/activities/delete', undefined, undefined, body); + >('POST', '/api/v2/feeds/activities/delete', undefined, undefined, body); - decoders.DeleteActivitiesResponse?.(response.body); + decoders['DeleteActivitiesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -192,9 +994,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/activities/query', undefined, undefined, body); + >('POST', '/api/v2/feeds/activities/query', undefined, undefined, body); - decoders.QueryActivitiesResponse?.(response.body); + decoders['QueryActivitiesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -214,12 +1016,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/activities/{activity_id}', + '/api/v2/feeds/activities/{activity_id}', pathParams, queryParams, ); - decoders.DeleteActivityResponse?.(response.body); + decoders['DeleteActivityResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -233,9 +1035,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/api/v3/feeds/activities/{activity_id}', pathParams, undefined); + >('GET', '/api/v2/feeds/activities/{activity_id}', pathParams, undefined); - decoders.GetActivityResponse?.(response.body); + decoders['GetActivityResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -257,13 +1059,13 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/api/v3/feeds/activities/{activity_id}', + '/api/v2/feeds/activities/{activity_id}', pathParams, undefined, body, ); - decoders.UpdateActivityPartialResponse?.(response.body); + decoders['UpdateActivityPartialResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -292,13 +1094,13 @@ export class FeedsApi { StreamResponse >( 'PUT', - '/api/v3/feeds/activities/{activity_id}', + '/api/v2/feeds/activities/{activity_id}', pathParams, undefined, body, ); - decoders.UpdateActivityResponse?.(response.body); + decoders['UpdateActivityResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -318,12 +1120,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/activities/{activity_id}/bookmarks', + '/api/v2/feeds/activities/{activity_id}/bookmarks', pathParams, queryParams, ); - decoders.DeleteBookmarkResponse?.(response.body); + decoders['DeleteBookmarkResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -347,13 +1149,13 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/api/v3/feeds/activities/{activity_id}/bookmarks', + '/api/v2/feeds/activities/{activity_id}/bookmarks', pathParams, undefined, body, ); - decoders.UpdateBookmarkResponse?.(response.body); + decoders['UpdateBookmarkResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -376,13 +1178,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/activities/{activity_id}/bookmarks', + '/api/v2/feeds/activities/{activity_id}/bookmarks', pathParams, undefined, body, ); - decoders.AddBookmarkResponse?.(response.body); + decoders['AddBookmarkResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -404,13 +1206,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/activities/{activity_id}/polls/{poll_id}/vote', + '/api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote', pathParams, undefined, body, ); - decoders.PollVoteResponse?.(response.body); + decoders['PollVoteResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -434,12 +1236,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}', + '/api/v2/feeds/activities/{activity_id}/polls/{poll_id}/vote/{vote_id}', pathParams, queryParams, ); - decoders.PollVoteResponse?.(response.body); + decoders['PollVoteResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -461,13 +1263,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/activities/{activity_id}/reactions', + '/api/v2/feeds/activities/{activity_id}/reactions', pathParams, undefined, body, ); - decoders.AddReactionResponse?.(response.body); + decoders['AddReactionResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -490,13 +1292,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/activities/{activity_id}/reactions/query', + '/api/v2/feeds/activities/{activity_id}/reactions/query', pathParams, undefined, body, ); - decoders.QueryActivityReactionsResponse?.(response.body); + decoders['QueryActivityReactionsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -514,12 +1316,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/activities/{activity_id}/reactions/{type}', + '/api/v2/feeds/activities/{activity_id}/reactions/{type}', pathParams, undefined, ); - decoders.DeleteActivityReactionResponse?.(response.body); + decoders['DeleteActivityReactionResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -539,13 +1341,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/bookmark_folders/query', + '/api/v2/feeds/bookmark_folders/query', undefined, undefined, body, ); - decoders.QueryBookmarkFoldersResponse?.(response.body); + decoders['QueryBookmarkFoldersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -563,9 +1365,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/bookmarks/query', undefined, undefined, body); + >('POST', '/api/v2/feeds/bookmarks/query', undefined, undefined, body); - decoders.QueryBookmarksResponse?.(response.body); + decoders['QueryBookmarksResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -593,9 +1395,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/api/v3/feeds/comments', undefined, queryParams); + >('GET', '/api/v2/feeds/comments', undefined, queryParams); - decoders.GetCommentsResponse?.(response.body); + decoders['GetCommentsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -615,9 +1417,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/comments', undefined, undefined, body); + >('POST', '/api/v2/feeds/comments', undefined, undefined, body); - decoders.AddCommentResponse?.(response.body); + decoders['AddCommentResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -631,9 +1433,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/comments/batch', undefined, undefined, body); + >('POST', '/api/v2/feeds/comments/batch', undefined, undefined, body); - decoders.AddCommentsBatchResponse?.(response.body); + decoders['AddCommentsBatchResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -651,9 +1453,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/comments/query', undefined, undefined, body); + >('POST', '/api/v2/feeds/comments/query', undefined, undefined, body); - decoders.QueryCommentsResponse?.(response.body); + decoders['QueryCommentsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -667,9 +1469,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/api/v3/feeds/comments/{comment_id}', pathParams, undefined); + >('DELETE', '/api/v2/feeds/comments/{comment_id}', pathParams, undefined); - decoders.DeleteCommentResponse?.(response.body); + decoders['DeleteCommentResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -683,9 +1485,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('GET', '/api/v3/feeds/comments/{comment_id}', pathParams, undefined); + >('GET', '/api/v2/feeds/comments/{comment_id}', pathParams, undefined); - decoders.GetCommentResponse?.(response.body); + decoders['GetCommentResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -705,13 +1507,13 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/api/v3/feeds/comments/{comment_id}', + '/api/v2/feeds/comments/{comment_id}', pathParams, undefined, body, ); - decoders.UpdateCommentResponse?.(response.body); + decoders['UpdateCommentResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -733,13 +1535,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/comments/{comment_id}/reactions', + '/api/v2/feeds/comments/{comment_id}/reactions', pathParams, undefined, body, ); - decoders.AddCommentReactionResponse?.(response.body); + decoders['AddCommentReactionResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -762,13 +1564,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/comments/{comment_id}/reactions/query', + '/api/v2/feeds/comments/{comment_id}/reactions/query', pathParams, undefined, body, ); - decoders.QueryCommentReactionsResponse?.(response.body); + decoders['QueryCommentReactionsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -786,12 +1588,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/comments/{comment_id}/reactions/{type}', + '/api/v2/feeds/comments/{comment_id}/reactions/{type}', pathParams, undefined, ); - decoders.DeleteCommentReactionResponse?.(response.body); + decoders['DeleteCommentReactionResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -821,12 +1623,12 @@ export class FeedsApi { StreamResponse >( 'GET', - '/api/v3/feeds/comments/{comment_id}/replies', + '/api/v2/feeds/comments/{comment_id}/replies', pathParams, queryParams, ); - decoders.GetCommentRepliesResponse?.(response.body); + decoders['GetCommentRepliesResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -846,9 +1648,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/feed_groups', undefined, undefined, body); + >('POST', '/api/v2/feeds/feed_groups', undefined, undefined, body); - decoders.CreateFeedGroupResponse?.(response.body); + decoders['CreateFeedGroupResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -868,12 +1670,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/feed_groups/{feed_group_id}', + '/api/v2/feeds/feed_groups/{feed_group_id}', pathParams, queryParams, ); - decoders.DeleteFeedGroupResponse?.(response.body); + decoders['DeleteFeedGroupResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -895,12 +1697,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', pathParams, queryParams, ); - decoders.DeleteFeedResponse?.(response.body); + decoders['DeleteFeedResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -924,6 +1726,7 @@ export class FeedsApi { user_id: request?.user_id, view: request?.view, watch: request?.watch, + activity_selector_options: request?.activity_selector_options, data: request?.data, external_ranking: request?.external_ranking, filter: request?.filter, @@ -937,13 +1740,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', pathParams, undefined, body, ); - decoders.GetOrCreateFeedResponse?.(response.body); + decoders['GetOrCreateFeedResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -964,13 +1767,13 @@ export class FeedsApi { StreamResponse >( 'PUT', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}', pathParams, undefined, body, ); - decoders.UpdateFeedResponse?.(response.body); + decoders['UpdateFeedResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -993,13 +1796,13 @@ export class FeedsApi { const response = await this.apiClient.sendRequest>( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/mark/batch', pathParams, undefined, body, ); - decoders.Response?.(response.body); + decoders['Response']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1019,12 +1822,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', pathParams, undefined, ); - decoders.UnpinActivityResponse?.(response.body); + decoders['UnpinActivityResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1050,13 +1853,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/activities/{activity_id}/pin', pathParams, undefined, body, ); - decoders.PinActivityResponse?.(response.body); + decoders['PinActivityResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1083,13 +1886,13 @@ export class FeedsApi { StreamResponse >( 'PATCH', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members', pathParams, undefined, body, ); - decoders.UpdateFeedMembersResponse?.(response.body); + decoders['UpdateFeedMembersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1113,13 +1916,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/accept', pathParams, undefined, body, ); - decoders.AcceptFeedMemberInviteResponse?.(response.body); + decoders['AcceptFeedMemberInviteResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1146,13 +1949,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/query', pathParams, undefined, body, ); - decoders.QueryFeedMembersResponse?.(response.body); + decoders['QueryFeedMembersResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1176,13 +1979,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject', + '/api/v2/feeds/feed_groups/{feed_group_id}/feeds/{feed_id}/members/reject', pathParams, undefined, body, ); - decoders.RejectFeedMemberInviteResponse?.(response.body); + decoders['RejectFeedMemberInviteResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1202,12 +2005,12 @@ export class FeedsApi { StreamResponse >( 'GET', - '/api/v3/feeds/feed_groups/{feed_group_id}/follow_suggestions', + '/api/v2/feeds/feed_groups/{feed_group_id}/follow_suggestions', pathParams, queryParams, ); - decoders.GetFollowSuggestionsResponse?.(response.body); + decoders['GetFollowSuggestionsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1229,13 +2032,13 @@ export class FeedsApi { StreamResponse >( 'POST', - '/api/v3/feeds/feed_groups/{feed_group_id}/views', + '/api/v2/feeds/feed_groups/{feed_group_id}/views', pathParams, undefined, body, ); - decoders.CreateFeedViewResponse?.(response.body); + decoders['CreateFeedViewResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1253,12 +2056,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/feed_groups/{feed_group_id}/views/{view_id}', + '/api/v2/feeds/feed_groups/{feed_group_id}/views/{view_id}', pathParams, undefined, ); - decoders.DeleteFeedViewResponse?.(response.body); + decoders['DeleteFeedViewResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1280,13 +2083,13 @@ export class FeedsApi { StreamResponse >( 'PUT', - '/api/v3/feeds/feed_groups/{feed_group_id}/views/{view_id}', + '/api/v2/feeds/feed_groups/{feed_group_id}/views/{view_id}', pathParams, undefined, body, ); - decoders.UpdateFeedViewResponse?.(response.body); + decoders['UpdateFeedViewResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1300,9 +2103,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/feeds/batch', undefined, undefined, body); + >('POST', '/api/v2/feeds/feeds/batch', undefined, undefined, body); - decoders.CreateFeedsBatchResponse?.(response.body); + decoders['CreateFeedsBatchResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1321,9 +2124,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/feeds/query', undefined, undefined, body); + >('POST', '/api/v2/feeds/feeds/query', undefined, undefined, body); - decoders.QueryFeedsResponse?.(response.body); + decoders['QueryFeedsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1340,9 +2143,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('PATCH', '/api/v3/feeds/follows', undefined, undefined, body); + >('PATCH', '/api/v2/feeds/follows', undefined, undefined, body); - decoders.UpdateFollowResponse?.(response.body); + decoders['UpdateFollowResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1359,9 +2162,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/follows', undefined, undefined, body); + >('POST', '/api/v2/feeds/follows', undefined, undefined, body); - decoders.SingleFollowResponse?.(response.body); + decoders['SingleFollowResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1377,9 +2180,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/follows/accept', undefined, undefined, body); + >('POST', '/api/v2/feeds/follows/accept', undefined, undefined, body); - decoders.AcceptFollowResponse?.(response.body); + decoders['AcceptFollowResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1393,9 +2196,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/follows/batch', undefined, undefined, body); + >('POST', '/api/v2/feeds/follows/batch', undefined, undefined, body); - decoders.FollowBatchResponse?.(response.body); + decoders['FollowBatchResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1415,9 +2218,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/follows/query', undefined, undefined, body); + >('POST', '/api/v2/feeds/follows/query', undefined, undefined, body); - decoders.QueryFollowsResponse?.(response.body); + decoders['QueryFollowsResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1432,9 +2235,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/follows/reject', undefined, undefined, body); + >('POST', '/api/v2/feeds/follows/reject', undefined, undefined, body); - decoders.RejectFollowResponse?.(response.body); + decoders['RejectFollowResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1452,298 +2255,12 @@ export class FeedsApi { StreamResponse >( 'DELETE', - '/api/v3/feeds/follows/{source}/{target}', + '/api/v2/feeds/follows/{source}/{target}', pathParams, undefined, ); - decoders.UnfollowResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async createPoll( - request: CreatePollRequest, - ): Promise> { - const body = { - name: request?.name, - allow_answers: request?.allow_answers, - allow_user_suggested_options: request?.allow_user_suggested_options, - description: request?.description, - enforce_unique_vote: request?.enforce_unique_vote, - id: request?.id, - is_closed: request?.is_closed, - max_votes_allowed: request?.max_votes_allowed, - user_id: request?.user_id, - voting_visibility: request?.voting_visibility, - options: request?.options, - custom: request?.custom, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('POST', '/api/v3/feeds/polls', undefined, undefined, body); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updatePoll( - request: UpdatePollRequest, - ): Promise> { - const body = { - id: request?.id, - name: request?.name, - allow_answers: request?.allow_answers, - allow_user_suggested_options: request?.allow_user_suggested_options, - description: request?.description, - enforce_unique_vote: request?.enforce_unique_vote, - is_closed: request?.is_closed, - max_votes_allowed: request?.max_votes_allowed, - user_id: request?.user_id, - voting_visibility: request?.voting_visibility, - options: request?.options, - custom: request?.custom, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('PUT', '/api/v3/feeds/polls', undefined, undefined, body); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async queryPolls( - request?: QueryPollsRequest & { user_id?: string }, - ): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const body = { - limit: request?.limit, - next: request?.next, - prev: request?.prev, - sort: request?.sort, - filter: request?.filter, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('POST', '/api/v3/feeds/polls/query', undefined, queryParams, body); - - decoders.QueryPollsResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async deletePoll(request: { - poll_id: string; - user_id?: string; - }): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - }; - - const response = await this.apiClient.sendRequest>( - 'DELETE', - '/api/v3/feeds/polls/{poll_id}', - pathParams, - queryParams, - ); - - decoders.Response?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getPoll(request: { - poll_id: string; - user_id?: string; - }): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('GET', '/api/v3/feeds/polls/{poll_id}', pathParams, queryParams); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updatePollPartial( - request: UpdatePollPartialRequest & { poll_id: string }, - ): Promise> { - const pathParams = { - poll_id: request?.poll_id, - }; - const body = { - user_id: request?.user_id, - unset: request?.unset, - set: request?.set, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >('PATCH', '/api/v3/feeds/polls/{poll_id}', pathParams, undefined, body); - - decoders.PollResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async createPollOption( - request: CreatePollOptionRequest & { poll_id: string }, - ): Promise> { - const pathParams = { - poll_id: request?.poll_id, - }; - const body = { - text: request?.text, - position: request?.position, - user_id: request?.user_id, - custom: request?.custom, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v3/feeds/polls/{poll_id}/options', - pathParams, - undefined, - body, - ); - - decoders.PollOptionResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async updatePollOption( - request: UpdatePollOptionRequest & { poll_id: string }, - ): Promise> { - const pathParams = { - poll_id: request?.poll_id, - }; - const body = { - id: request?.id, - text: request?.text, - user_id: request?.user_id, - custom: request?.custom, - user: request?.user, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'PUT', - '/api/v3/feeds/polls/{poll_id}/options', - pathParams, - undefined, - body, - ); - - decoders.PollOptionResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async deletePollOption(request: { - poll_id: string; - option_id: string; - user_id?: string; - }): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - option_id: request?.option_id, - }; - - const response = await this.apiClient.sendRequest>( - 'DELETE', - '/api/v3/feeds/polls/{poll_id}/options/{option_id}', - pathParams, - queryParams, - ); - - decoders.Response?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async getPollOption(request: { - poll_id: string; - option_id: string; - user_id?: string; - }): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - option_id: request?.option_id, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'GET', - '/api/v3/feeds/polls/{poll_id}/options/{option_id}', - pathParams, - queryParams, - ); - - decoders.PollOptionResponse?.(response.body); - - return { ...response.body, metadata: response.metadata }; - } - - async queryPollVotes( - request: QueryPollVotesRequest & { poll_id: string; user_id?: string }, - ): Promise> { - const queryParams = { - user_id: request?.user_id, - }; - const pathParams = { - poll_id: request?.poll_id, - }; - const body = { - limit: request?.limit, - next: request?.next, - prev: request?.prev, - sort: request?.sort, - filter: request?.filter, - }; - - const response = await this.apiClient.sendRequest< - StreamResponse - >( - 'POST', - '/api/v3/feeds/polls/{poll_id}/votes', - pathParams, - queryParams, - body, - ); - - decoders.PollVotesResponse?.(response.body); + decoders['UnfollowResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1759,9 +2276,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/unfollow/batch', undefined, undefined, body); + >('POST', '/api/v2/feeds/unfollow/batch', undefined, undefined, body); - decoders.UnfollowBatchResponse?.(response.body); + decoders['UnfollowBatchResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1775,9 +2292,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('DELETE', '/api/v3/feeds/users/{user_id}/delete', pathParams, undefined); + >('DELETE', '/api/v2/feeds/users/{user_id}/delete', pathParams, undefined); - decoders.DeleteFeedUserDataResponse?.(response.body); + decoders['DeleteFeedUserDataResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } @@ -1791,9 +2308,9 @@ export class FeedsApi { const response = await this.apiClient.sendRequest< StreamResponse - >('POST', '/api/v3/feeds/users/{user_id}/export', pathParams, undefined); + >('POST', '/api/v2/feeds/users/{user_id}/export', pathParams, undefined); - decoders.ExportFeedUserDataResponse?.(response.body); + decoders['ExportFeedUserDataResponse']?.(response.body); return { ...response.body, metadata: response.metadata }; } diff --git a/src/gen/model-decoders/decoders.ts b/src/gen/model-decoders/decoders.ts index d3830de..ecec430 100644 --- a/src/gen/model-decoders/decoders.ts +++ b/src/gen/model-decoders/decoders.ts @@ -34,7 +34,23 @@ const decode = (typeMappings: TypeMapping, input?: Record) => { return input; }; -decoders.ActionLog = (input?: Record) => { +decoders['AcceptFeedMemberInviteResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + member: { type: 'FeedMemberResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['AcceptFollowResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + follow: { type: 'FollowResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['ActionLog'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -47,7 +63,7 @@ decoders.ActionLog = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ActionLogResponse = (input?: Record) => { +decoders['ActionLogResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -60,461 +76,508 @@ decoders.ActionLogResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ActivityMarkedEvent = (input?: Record) => { +decoders['ActivityAddedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'ActivityResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AnyEvent = (input?: Record) => { +decoders['ActivityDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'ActivityResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AppResponseFields = (input?: Record) => { +decoders['ActivityMarkEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - call_types: { type: 'CallType', isSingle: false }, - - channel_configs: { type: 'ChannelConfig', isSingle: false }, + created_at: { type: 'DatetimeType', isSingle: true }, - push_notifications: { type: 'PushNotificationFields', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, - revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true }, + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AsyncExportChannelsEvent = (input?: Record) => { +decoders['ActivityMarkedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - - finished_at: { type: 'DatetimeType', isSingle: true }, - - started_at: { type: 'DatetimeType', isSingle: true }, - - received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AsyncExportErrorEvent = (input?: Record) => { +decoders['ActivityPinResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - finished_at: { type: 'DatetimeType', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, - started_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - received_at: { type: 'DatetimeType', isSingle: true }, + user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AsyncExportModerationLogsEvent = (input?: Record) => { +decoders['ActivityPinnedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - finished_at: { type: 'DatetimeType', isSingle: true }, - - started_at: { type: 'DatetimeType', isSingle: true }, + pinned_activity: { type: 'PinActivityResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.AsyncExportUsersEvent = (input?: Record) => { +decoders['ActivityReactionAddedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - finished_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - started_at: { type: 'DatetimeType', isSingle: true }, + reaction: { type: 'FeedsReactionResponse', isSingle: true }, received_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; -decoders.AutomodDetails = (input?: Record) => { - const typeMappings: TypeMapping = { - result: { type: 'MessageModerationResult', isSingle: true }, + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.Ban = (input?: Record) => { +decoders['ActivityReactionDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - expires: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - channel: { type: 'Channel', isSingle: true }, + reaction: { type: 'FeedsReactionResponse', isSingle: true }, - created_by: { type: 'User', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, - target: { type: 'User', isSingle: true }, + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.BanResponse = (input?: Record) => { +decoders['ActivityRemovedFromFeedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - expires: { type: 'DatetimeType', isSingle: true }, - - banned_by: { type: 'UserResponse', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - channel: { type: 'ChannelResponse', isSingle: true }, + received_at: { type: 'DatetimeType', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.BlockListResponse = (input?: Record) => { +decoders['ActivityResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; -decoders.BlockUsersResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; + comments: { type: 'CommentResponse', isSingle: false }, -decoders.BlockedUserEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - user: { type: 'UserResponse', isSingle: true }, + mentioned_users: { type: 'UserResponse', isSingle: false }, - blocked_by_user: { type: 'UserResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; + own_bookmarks: { type: 'BookmarkResponse', isSingle: false }, -decoders.BlockedUserResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + own_reactions: { type: 'FeedsReactionResponse', isSingle: false }, - blocked_user: { type: 'UserResponse', isSingle: true }, + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, user: { type: 'UserResponse', isSingle: true }, - }; - return decode(typeMappings, input); -}; -decoders.CallAcceptedEvent = (input?: Record) => { - const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + deleted_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + edited_at: { type: 'DatetimeType', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + expires_at: { type: 'DatetimeType', isSingle: true }, + + current_feed: { type: 'FeedResponse', isSingle: true }, + + parent: { type: 'ActivityResponse', isSingle: true }, + + poll: { type: 'PollResponseData', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallClosedCaptionsFailedEvent = (input?: Record) => { +decoders['ActivitySelectorConfig'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + cutoff_time: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallClosedCaptionsStartedEvent = (input?: Record) => { +decoders['ActivityUnpinnedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + pinned_activity: { type: 'PinActivityResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallClosedCaptionsStoppedEvent = (input?: Record) => { +decoders['ActivityUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'ActivityResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallCreatedEvent = (input?: Record) => { +decoders['AddActivityResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - members: { type: 'MemberResponse', isSingle: false }, - - call: { type: 'CallResponse', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallDeletedEvent = (input?: Record) => { +decoders['AddBookmarkResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - call: { type: 'CallResponse', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallEndedEvent = (input?: Record) => { +decoders['AddCommentReactionResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - call: { type: 'CallResponse', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + reaction: { type: 'FeedsReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallFrameRecordingFailedEvent = (input?: Record) => { +decoders['AddCommentResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - call: { type: 'CallResponse', isSingle: true }, + comment: { type: 'CommentResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallFrameRecordingFrameReadyEvent = (input?: Record) => { +decoders['AddCommentsBatchResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - captured_at: { type: 'DatetimeType', isSingle: true }, - - created_at: { type: 'DatetimeType', isSingle: true }, - - users: { type: 'UserResponse', isSingle: false }, + comments: { type: 'CommentResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.CallFrameRecordingStartedEvent = (input?: Record) => { +decoders['AddReactionResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + activity: { type: 'ActivityResponse', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + reaction: { type: 'FeedsReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallFrameRecordingStoppedEvent = (input?: Record) => { +decoders['AggregatedActivityResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, + + activities: { type: 'ActivityResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.CallHLSBroadcastingFailedEvent = (input?: Record) => { +decoders['AnyEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallHLSBroadcastingStartedEvent = (input?: Record) => { +decoders['AppResponseFields'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + event_hooks: { type: 'EventHook', isSingle: false }, - call: { type: 'CallResponse', isSingle: true }, + call_types: { type: 'CallType', isSingle: false }, + + channel_configs: { type: 'ChannelConfig', isSingle: false }, + + push_notifications: { type: 'PushNotificationFields', isSingle: true }, + + revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallHLSBroadcastingStoppedEvent = (input?: Record) => { +decoders['AsyncBulkImageModerationEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallLiveStartedEvent = (input?: Record) => { +decoders['AsyncExportChannelsEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallMemberAddedEvent = (input?: Record) => { +decoders['AsyncExportErrorEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'MemberResponse', isSingle: false }, + finished_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallMemberRemovedEvent = (input?: Record) => { +decoders['AsyncExportModerationLogsEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + finished_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallMemberUpdatedEvent = (input?: Record) => { +decoders['AsyncExportUsersEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'MemberResponse', isSingle: false }, + finished_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + started_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallMemberUpdatedPermissionEvent = (input?: Record) => { +decoders['AutomodDetails'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - members: { type: 'MemberResponse', isSingle: false }, - - call: { type: 'CallResponse', isSingle: true }, + result: { type: 'MessageModerationResult', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallMissedEvent = (input?: Record) => { +decoders['Ban'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'MemberResponse', isSingle: false }, + expires: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + channel: { type: 'Channel', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + created_by: { type: 'User', isSingle: true }, + + target: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallNotificationEvent = (input?: Record) => { +decoders['BanResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'MemberResponse', isSingle: false }, + expires: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + banned_by: { type: 'UserResponse', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallParticipantResponse = (input?: Record) => { +decoders['BlockListResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - joined_at: { type: 'DatetimeType', isSingle: true }, + created_at: { type: 'DatetimeType', isSingle: true }, - user: { type: 'UserResponse', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallReactionEvent = (input?: Record) => { +decoders['BlockUsersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - - reaction: { type: 'ReactionResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRecording = (input?: Record) => { +decoders['BlockedUserEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - end_time: { type: 'DatetimeType', isSingle: true }, + created_at: { type: 'DatetimeType', isSingle: true }, - start_time: { type: 'DatetimeType', isSingle: true }, + user: { type: 'UserResponse', isSingle: true }, + + blocked_by_user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRecordingFailedEvent = (input?: Record) => { +decoders['BlockedUserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + blocked_user: { type: 'UserResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRecordingReadyEvent = (input?: Record) => { +decoders['BookmarkAddedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - call_recording: { type: 'CallRecording', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRecordingStartedEvent = (input?: Record) => { +decoders['BookmarkDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + bookmark: { type: 'BookmarkResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRecordingStoppedEvent = (input?: Record) => { +decoders['BookmarkFolderResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRejectedEvent = (input?: Record) => { +decoders['BookmarkResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - call: { type: 'CallResponse', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'ActivityResponse', isSingle: true }, user: { type: 'UserResponse', isSingle: true }, + + folder: { type: 'BookmarkFolderResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallReportResponse = (input?: Record) => { +decoders['BookmarkUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - ended_at: { type: 'DatetimeType', isSingle: true }, + created_at: { type: 'DatetimeType', isSingle: true }, - started_at: { type: 'DatetimeType', isSingle: true }, + bookmark: { type: 'BookmarkResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallResponse = (input?: Record) => { +decoders['Call'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, - created_by: { type: 'UserResponse', isSingle: true }, + blocked_users: { type: 'User', isSingle: false }, + + egresses: { type: 'CallEgress', isSingle: false }, + + members: { type: 'CallMember', isSingle: false }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + egress_updated_at: { type: 'DatetimeType', isSingle: true }, ended_at: { type: 'DatetimeType', isSingle: true }, + last_heartbeat_at: { type: 'DatetimeType', isSingle: true }, + starts_at: { type: 'DatetimeType', isSingle: true }, - session: { type: 'CallSessionResponse', isSingle: true }, + call_type: { type: 'CallType', isSingle: true }, + + created_by: { type: 'User', isSingle: true }, + + session: { type: 'CallSession', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRingEvent = (input?: Record) => { +decoders['CallAcceptedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - members: { type: 'MemberResponse', isSingle: false }, - call: { type: 'CallResponse', isSingle: true }, user: { type: 'UserResponse', isSingle: true }, @@ -522,59 +585,478 @@ decoders.CallRingEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallRtmpBroadcastFailedEvent = (input?: Record) => { +decoders['CallClosedCaptionsFailedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRtmpBroadcastStartedEvent = (input?: Record) => { +decoders['CallClosedCaptionsStartedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallRtmpBroadcastStoppedEvent = (input?: Record) => { +decoders['CallClosedCaptionsStoppedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallSessionEndedEvent = (input?: Record) => { +decoders['CallCreatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, + members: { type: 'MemberResponse', isSingle: false }, + call: { type: 'CallResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallSessionParticipantJoinedEvent = (input?: Record) => { +decoders['CallDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, - participant: { type: 'CallParticipantResponse', isSingle: true }, + call: { type: 'CallResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallSessionParticipantLeftEvent = (input?: Record) => { +decoders['CallEgress'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + started_at: { type: 'DatetimeType', isSingle: true }, - participant: { type: 'CallParticipantResponse', isSingle: true }, + updated_at: { type: 'DatetimeType', isSingle: true }, + + stopped_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallSessionResponse = (input?: Record) => { +decoders['CallEndedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - participants: { type: 'CallParticipantResponse', isSingle: false }, + created_at: { type: 'DatetimeType', isSingle: true }, - accepted_by: { type: 'DatetimeType', isSingle: false }, + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallFrameRecordingFailedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallFrameRecordingFrameReadyEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + captured_at: { type: 'DatetimeType', isSingle: true }, + + created_at: { type: 'DatetimeType', isSingle: true }, + + users: { type: 'UserResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['CallFrameRecordingStartedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallFrameRecordingStoppedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallHLSBroadcastingFailedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallHLSBroadcastingStartedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallHLSBroadcastingStoppedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallLiveStartedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallMember'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallMemberAddedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallMemberRemovedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallMemberUpdatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallMemberUpdatedPermissionEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallMissedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallModerationBlurEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallModerationWarningEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallNotificationEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallParticipant'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + joined_at: { type: 'DatetimeType', isSingle: true }, + + ban_expires: { type: 'DatetimeType', isSingle: true }, + + created_at: { type: 'DatetimeType', isSingle: true }, + + deactivated_at: { type: 'DatetimeType', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + last_active: { type: 'DatetimeType', isSingle: true }, + + last_engaged_at: { type: 'DatetimeType', isSingle: true }, + + revoke_tokens_issued_before: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallParticipantResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + joined_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallReactionEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + reaction: { type: 'ReactionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRecording'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + end_time: { type: 'DatetimeType', isSingle: true }, + + start_time: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRecordingFailedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRecordingReadyEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call_recording: { type: 'CallRecording', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRecordingStartedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRecordingStoppedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRejectedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallReportResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + ended_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'UserResponse', isSingle: true }, + + ended_at: { type: 'DatetimeType', isSingle: true }, + + starts_at: { type: 'DatetimeType', isSingle: true }, + + session: { type: 'CallSessionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRingEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'MemberResponse', isSingle: false }, + + call: { type: 'CallResponse', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRtmpBroadcastFailedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRtmpBroadcastStartedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallRtmpBroadcastStoppedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallSession'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + active_sf_us: { type: 'SFUIDLastSeen', isSingle: false }, + + participants: { type: 'CallParticipant', isSingle: false }, + + accepted_by: { type: 'DatetimeType', isSingle: false }, + + missed_by: { type: 'DatetimeType', isSingle: false }, + + rejected_by: { type: 'DatetimeType', isSingle: false }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + ended_at: { type: 'DatetimeType', isSingle: true }, + + live_ended_at: { type: 'DatetimeType', isSingle: true }, + + live_started_at: { type: 'DatetimeType', isSingle: true }, + + ring_at: { type: 'DatetimeType', isSingle: true }, + + started_at: { type: 'DatetimeType', isSingle: true }, + + timer_ends_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallSessionEndedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + call: { type: 'CallResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallSessionParticipantJoinedEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + participant: { type: 'CallParticipantResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallSessionParticipantLeftEvent'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + participant: { type: 'CallParticipantResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CallSessionResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + participants: { type: 'CallParticipantResponse', isSingle: false }, + + accepted_by: { type: 'DatetimeType', isSingle: false }, missed_by: { type: 'DatetimeType', isSingle: false }, @@ -593,7 +1075,7 @@ decoders.CallSessionResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallSessionStartedEvent = (input?: Record) => { +decoders['CallSessionStartedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -602,7 +1084,7 @@ decoders.CallSessionStartedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallStateResponseFields = (input?: Record) => { +decoders['CallStateResponseFields'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, @@ -611,14 +1093,16 @@ decoders.CallStateResponseFields = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallStatsReportReadyEvent = (input?: Record) => { +decoders['CallStatsReportReadyEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallStatsReportSummaryResponse = (input?: Record) => { +decoders['CallStatsReportSummaryResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { first_stats_time: { type: 'DatetimeType', isSingle: true }, @@ -627,7 +1111,7 @@ decoders.CallStatsReportSummaryResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallTranscription = (input?: Record) => { +decoders['CallTranscription'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { end_time: { type: 'DatetimeType', isSingle: true }, @@ -636,14 +1120,14 @@ decoders.CallTranscription = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallTranscriptionFailedEvent = (input?: Record) => { +decoders['CallTranscriptionFailedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallTranscriptionReadyEvent = (input?: Record) => { +decoders['CallTranscriptionReadyEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -652,21 +1136,25 @@ decoders.CallTranscriptionReadyEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallTranscriptionStartedEvent = (input?: Record) => { +decoders['CallTranscriptionStartedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallTranscriptionStoppedEvent = (input?: Record) => { +decoders['CallTranscriptionStoppedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CallType = (input?: Record) => { +decoders['CallType'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -675,7 +1163,7 @@ decoders.CallType = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallTypeResponse = (input?: Record) => { +decoders['CallTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -684,7 +1172,7 @@ decoders.CallTypeResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallUpdatedEvent = (input?: Record) => { +decoders['CallUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -693,7 +1181,9 @@ decoders.CallUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallUserFeedbackSubmittedEvent = (input?: Record) => { +decoders['CallUserFeedbackSubmittedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -702,14 +1192,14 @@ decoders.CallUserFeedbackSubmittedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CallUserMutedEvent = (input?: Record) => { +decoders['CallUserMutedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CampaignCompletedEvent = (input?: Record) => { +decoders['CampaignCompletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -720,7 +1210,7 @@ decoders.CampaignCompletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CampaignResponse = (input?: Record) => { +decoders['CampaignResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -741,7 +1231,7 @@ decoders.CampaignResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CampaignStartedEvent = (input?: Record) => { +decoders['CampaignStartedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -752,7 +1242,7 @@ decoders.CampaignStartedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CampaignStatsResponse = (input?: Record) => { +decoders['CampaignStatsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { stats_completed_at: { type: 'DatetimeType', isSingle: true }, @@ -761,7 +1251,7 @@ decoders.CampaignStatsResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.Channel = (input?: Record) => { +decoders['Channel'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -784,7 +1274,7 @@ decoders.Channel = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelConfig = (input?: Record) => { +decoders['ChannelConfig'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -793,7 +1283,7 @@ decoders.ChannelConfig = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelConfigWithInfo = (input?: Record) => { +decoders['ChannelConfigWithInfo'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -804,14 +1294,14 @@ decoders.ChannelConfigWithInfo = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelCreatedEvent = (input?: Record) => { +decoders['ChannelCreatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ChannelDeletedEvent = (input?: Record) => { +decoders['ChannelDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -820,14 +1310,14 @@ decoders.ChannelDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelFrozenEvent = (input?: Record) => { +decoders['ChannelFrozenEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ChannelHiddenEvent = (input?: Record) => { +decoders['ChannelHiddenEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -838,7 +1328,7 @@ decoders.ChannelHiddenEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelMember = (input?: Record) => { +decoders['ChannelMember'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -861,7 +1351,7 @@ decoders.ChannelMember = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelMemberResponse = (input?: Record) => { +decoders['ChannelMemberResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -884,7 +1374,7 @@ decoders.ChannelMemberResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelMute = (input?: Record) => { +decoders['ChannelMute'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -899,21 +1389,21 @@ decoders.ChannelMute = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelMutedEvent = (input?: Record) => { +decoders['ChannelMutedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ChannelPushPreferences = (input?: Record) => { +decoders['ChannelPushPreferences'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { disabled_until: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ChannelResponse = (input?: Record) => { +decoders['ChannelResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -940,7 +1430,7 @@ decoders.ChannelResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelStateResponse = (input?: Record) => { +decoders['ChannelStateResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'ChannelMember', isSingle: false }, @@ -969,7 +1459,7 @@ decoders.ChannelStateResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelStateResponseFields = (input?: Record) => { +decoders['ChannelStateResponseFields'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'ChannelMember', isSingle: false }, @@ -998,7 +1488,7 @@ decoders.ChannelStateResponseFields = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelTruncatedEvent = (input?: Record) => { +decoders['ChannelTruncatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1007,7 +1497,7 @@ decoders.ChannelTruncatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelTypeConfig = (input?: Record) => { +decoders['ChannelTypeConfig'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1018,21 +1508,21 @@ decoders.ChannelTypeConfig = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelUnFrozenEvent = (input?: Record) => { +decoders['ChannelUnFrozenEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ChannelUnmutedEvent = (input?: Record) => { +decoders['ChannelUnmutedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ChannelUpdatedEvent = (input?: Record) => { +decoders['ChannelUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1045,7 +1535,7 @@ decoders.ChannelUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChannelVisibleEvent = (input?: Record) => { +decoders['ChannelVisibleEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1054,28 +1544,146 @@ decoders.ChannelVisibleEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ChatActivityStatsResponse = (input?: Record) => { +decoders['ChatActivityStatsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + messages: { type: 'MessageStatsResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CheckResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + item: { type: 'ReviewQueueItem', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['ClosedCaptionEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['Command'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CommentAddedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'CommentResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CommentDeletedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'CommentResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CommentReactionAddedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CommentReactionDeletedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['CommentResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + mentioned_users: { type: 'UserResponse', isSingle: false }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, + + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['CommentUpdatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + comment: { type: 'CommentResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['ConfigResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - messages: { type: 'MessageStatsResponse', isSingle: true }, + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CheckResponse = (input?: Record) => { +decoders['CountByMinuteResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - item: { type: 'ReviewQueueItem', isSingle: true }, + start_ts: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ClosedCaptionEvent = (input?: Record) => { +decoders['CreateBlockListResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, + blocklist: { type: 'BlockListResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.Command = (input?: Record) => { +decoders['CreateCallTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1084,7 +1692,7 @@ decoders.Command = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ConfigResponse = (input?: Record) => { +decoders['CreateChannelTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1093,74 +1701,63 @@ decoders.ConfigResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.CountByMinuteResponse = (input?: Record) => { +decoders['CreateCommandResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - start_ts: { type: 'DatetimeType', isSingle: true }, - }; - return decode(typeMappings, input); -}; - -decoders.CreateBlockListResponse = (input?: Record) => { - const typeMappings: TypeMapping = { - blocklist: { type: 'BlockListResponse', isSingle: true }, + command: { type: 'Command', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateCallTypeResponse = (input?: Record) => { +decoders['CreateFeedGroupResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, + feed_group: { type: 'FeedGroupResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateChannelTypeResponse = (input?: Record) => { +decoders['CreateFeedViewResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - created_at: { type: 'DatetimeType', isSingle: true }, - - updated_at: { type: 'DatetimeType', isSingle: true }, + feed_view: { type: 'FeedViewResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateCommandResponse = (input?: Record) => { +decoders['CreateFeedsBatchResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { - command: { type: 'Command', isSingle: true }, + feeds: { type: 'FeedResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.CreateGuestResponse = (input?: Record) => { +decoders['CreateGuestResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateImportResponse = (input?: Record) => { +decoders['CreateImportResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { import_task: { type: 'ImportTask', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CreateRoleResponse = (input?: Record) => { +decoders['CreateRoleResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { role: { type: 'Role', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CustomCheckResponse = (input?: Record) => { +decoders['CustomCheckResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { item: { type: 'ReviewQueueItemResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.CustomVideoEvent = (input?: Record) => { +decoders['CustomVideoEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1169,35 +1766,64 @@ decoders.CustomVideoEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.DeactivateUserResponse = (input?: Record) => { +decoders['DeactivateUserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.DeleteCallResponse = (input?: Record) => { +decoders['DeleteActivityReactionResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['DeleteBookmarkResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + bookmark: { type: 'BookmarkResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['DeleteCallResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { call: { type: 'CallResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.DeleteChannelResponse = (input?: Record) => { +decoders['DeleteChannelResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channel: { type: 'ChannelResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.DeleteMessageResponse = (input?: Record) => { +decoders['DeleteCommentReactionResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + comment: { type: 'CommentResponse', isSingle: true }, + + reaction: { type: 'FeedsReactionResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['DeleteMessageResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.DeleteReactionResponse = (input?: Record) => { +decoders['DeleteReactionResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, @@ -1206,28 +1832,28 @@ decoders.DeleteReactionResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.Device = (input?: Record) => { +decoders['Device'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.DeviceResponse = (input?: Record) => { +decoders['DeviceResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.DraftPayloadResponse = (input?: Record) => { +decoders['DraftPayloadResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { mentioned_users: { type: 'UserResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.DraftResponse = (input?: Record) => { +decoders['DraftResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1242,14 +1868,14 @@ decoders.DraftResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.EgressRTMPResponse = (input?: Record) => { +decoders['EgressRTMPResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { started_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.EntityCreator = (input?: Record) => { +decoders['EntityCreator'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { ban_expires: { type: 'DatetimeType', isSingle: true }, @@ -1270,7 +1896,7 @@ decoders.EntityCreator = (input?: Record) => { return decode(typeMappings, input); }; -decoders.EntityCreatorResponse = (input?: Record) => { +decoders['EntityCreatorResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1296,14 +1922,36 @@ decoders.EntityCreatorResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.EventResponse = (input?: Record) => { +decoders['EventHook'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['EventResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { event: { type: 'WSEvent', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ExportUserResponse = (input?: Record) => { +decoders['ExportFeedUserDataResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activities: { type: 'ActivityResponse', isSingle: false }, + + bookmarks: { type: 'BookmarkResponse', isSingle: false }, + + comments: { type: 'CommentResponse', isSingle: false }, + + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['ExportUserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { messages: { type: 'MessageResponse', isSingle: false }, @@ -1314,32 +1962,189 @@ decoders.ExportUserResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.Flag = (input?: Record) => { +decoders['FeedCreatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + members: { type: 'FeedMemberResponse', isSingle: false }, + + feed: { type: 'FeedResponse', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedDeletedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedGroupChangedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedGroupDeletedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedGroupResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedMemberAddedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'FeedMemberResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedMemberRemovedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedMemberResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + + invite_accepted_at: { type: 'DatetimeType', isSingle: true }, + + invite_rejected_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedMemberUpdatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + member: { type: 'FeedMemberResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + created_by: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedUpdatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + feed: { type: 'FeedResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponseCommonFields', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedViewResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + last_used_at: { type: 'DatetimeType', isSingle: true }, + + activity_selectors: { type: 'ActivitySelectorConfig', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['FeedsReactionResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['Flag'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, + review_queue_item: { type: 'ReviewQueueItem', isSingle: true }, + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FlagDetails = (input?: Record) => { +decoders['FlagDetails'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { automod: { type: 'AutomodDetails', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FlagFeedback = (input?: Record) => { +decoders['FlagFeedback'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.FlagUpdatedEvent = (input?: Record) => { +decoders['FlagUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1354,7 +2159,64 @@ decoders.FlagUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.FullUserResponse = (input?: Record) => { +decoders['FollowBatchResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + follows: { type: 'FollowResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['FollowCreatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'FollowResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FollowDeletedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'FollowResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FollowResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + source_feed: { type: 'FeedResponse', isSingle: true }, + + target_feed: { type: 'FeedResponse', isSingle: true }, + + request_accepted_at: { type: 'DatetimeType', isSingle: true }, + + request_rejected_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FollowUpdatedEvent'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + follow: { type: 'FollowResponse', isSingle: true }, + + received_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['FullUserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1379,35 +2241,44 @@ decoders.FullUserResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetApplicationResponse = (input?: Record) => { +decoders['GetActivityResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['GetApplicationResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { app: { type: 'AppResponseFields', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetBlockListResponse = (input?: Record) => { +decoders['GetBlockListResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { blocklist: { type: 'BlockListResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetBlockedUsersResponse = (input?: Record) => { +decoders['GetBlockedUsersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { blocks: { type: 'BlockedUserResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.GetCallReportResponse = (input?: Record) => { +decoders['GetCallReportResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { + video_reactions: { type: 'VideoReactionsResponse', isSingle: false }, + chat_activity: { type: 'ChatActivityStatsResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetCallResponse = (input?: Record) => { +decoders['GetCallResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, @@ -1416,7 +2287,7 @@ decoders.GetCallResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetCallTypeResponse = (input?: Record) => { +decoders['GetCallTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1425,7 +2296,7 @@ decoders.GetCallTypeResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetChannelTypeResponse = (input?: Record) => { +decoders['GetChannelTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1436,7 +2307,7 @@ decoders.GetChannelTypeResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetCommandResponse = (input?: Record) => { +decoders['GetCommandResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1445,42 +2316,70 @@ decoders.GetCommandResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetConfigResponse = (input?: Record) => { +decoders['GetCommentRepliesResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + comments: { type: 'ThreadedCommentResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['GetCommentResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + comment: { type: 'CommentResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['GetCommentsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + comments: { type: 'ThreadedCommentResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['GetConfigResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { config: { type: 'ConfigResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetDraftResponse = (input?: Record) => { +decoders['GetDraftResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { draft: { type: 'DraftResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetImportResponse = (input?: Record) => { +decoders['GetFollowSuggestionsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + suggestions: { type: 'FeedResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['GetImportResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { import_task: { type: 'ImportTask', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetManyMessagesResponse = (input?: Record) => { +decoders['GetManyMessagesResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { messages: { type: 'MessageResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.GetMessageResponse = (input?: Record) => { +decoders['GetMessageResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageWithChannelResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetOrCreateCallResponse = (input?: Record) => { +decoders['GetOrCreateCallResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, @@ -1489,35 +2388,70 @@ decoders.GetOrCreateCallResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetReactionsResponse = (input?: Record) => { +decoders['GetOrCreateFeedResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activities: { type: 'ActivityResponse', isSingle: false }, + + aggregated_activities: { + type: 'AggregatedActivityResponse', + isSingle: false, + }, + + followers: { type: 'FollowResponse', isSingle: false }, + + following: { type: 'FollowResponse', isSingle: false }, + + members: { type: 'FeedMemberResponse', isSingle: false }, + + pinned_activities: { type: 'ActivityPinResponse', isSingle: false }, + + feed: { type: 'FeedResponse', isSingle: true }, + + own_follows: { type: 'FollowResponse', isSingle: false }, + + notification_status: { type: 'NotificationStatusResponse', isSingle: true }, + + own_membership: { type: 'FeedMemberResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['GetPushTemplatesResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + templates: { type: 'PushTemplate', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['GetReactionsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { reactions: { type: 'Reaction', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.GetRepliesResponse = (input?: Record) => { +decoders['GetRepliesResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { messages: { type: 'MessageResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.GetReviewQueueItemResponse = (input?: Record) => { +decoders['GetReviewQueueItemResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { item: { type: 'ReviewQueueItemResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetSegmentResponse = (input?: Record) => { +decoders['GetSegmentResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { segment: { type: 'SegmentResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GetTaskResponse = (input?: Record) => { +decoders['GetTaskResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1526,21 +2460,21 @@ decoders.GetTaskResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.GetThreadResponse = (input?: Record) => { +decoders['GetThreadResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { thread: { type: 'ThreadStateResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.GoLiveResponse = (input?: Record) => { +decoders['GoLiveResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { call: { type: 'CallResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ImportTask = (input?: Record) => { +decoders['ImportTask'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1551,91 +2485,91 @@ decoders.ImportTask = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ImportTaskHistory = (input?: Record) => { +decoders['ImportTaskHistory'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ListBlockListResponse = (input?: Record) => { +decoders['ListBlockListResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { blocklists: { type: 'BlockListResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListCallTypeResponse = (input?: Record) => { +decoders['ListCallTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { call_types: { type: 'CallTypeResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListChannelTypesResponse = (input?: Record) => { +decoders['ListChannelTypesResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channel_types: { type: 'ChannelTypeConfig', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListCommandsResponse = (input?: Record) => { +decoders['ListCommandsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { commands: { type: 'Command', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListDevicesResponse = (input?: Record) => { +decoders['ListDevicesResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { devices: { type: 'DeviceResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListImportsResponse = (input?: Record) => { +decoders['ListImportsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { import_tasks: { type: 'ImportTask', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListPushProvidersResponse = (input?: Record) => { +decoders['ListPushProvidersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { push_providers: { type: 'PushProviderResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListRecordingsResponse = (input?: Record) => { +decoders['ListRecordingsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { recordings: { type: 'CallRecording', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListRolesResponse = (input?: Record) => { +decoders['ListRolesResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { roles: { type: 'Role', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.ListTranscriptionsResponse = (input?: Record) => { +decoders['ListTranscriptionsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { transcriptions: { type: 'CallTranscription', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.MarkReadResponse = (input?: Record) => { +decoders['MarkReadResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { event: { type: 'MessageReadEvent', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MemberAddedEvent = (input?: Record) => { +decoders['MemberAddedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1646,7 +2580,7 @@ decoders.MemberAddedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MemberRemovedEvent = (input?: Record) => { +decoders['MemberRemovedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1657,7 +2591,7 @@ decoders.MemberRemovedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MemberResponse = (input?: Record) => { +decoders['MemberResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1670,7 +2604,7 @@ decoders.MemberResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MemberUpdatedEvent = (input?: Record) => { +decoders['MemberUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1681,14 +2615,14 @@ decoders.MemberUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MembersResponse = (input?: Record) => { +decoders['MembersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'ChannelMember', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.Message = (input?: Record) => { +decoders['Message'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1718,12 +2652,14 @@ decoders.Message = (input?: Record) => { quoted_message: { type: 'Message', isSingle: true }, + reminder: { type: 'MessageReminder', isSingle: true }, + user: { type: 'User', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageDeletedEvent = (input?: Record) => { +decoders['MessageDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1736,7 +2672,7 @@ decoders.MessageDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageFlagResponse = (input?: Record) => { +decoders['MessageFlagResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1763,7 +2699,7 @@ decoders.MessageFlagResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageFlaggedEvent = (input?: Record) => { +decoders['MessageFlaggedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1778,14 +2714,14 @@ decoders.MessageFlaggedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageHistoryEntryResponse = (input?: Record) => { +decoders['MessageHistoryEntryResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message_updated_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageModerationResult = (input?: Record) => { +decoders['MessageModerationResult'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1794,7 +2730,7 @@ decoders.MessageModerationResult = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageNewEvent = (input?: Record) => { +decoders['MessageNewEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1807,7 +2743,7 @@ decoders.MessageNewEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageReadEvent = (input?: Record) => { +decoders['MessageReadEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1820,7 +2756,24 @@ decoders.MessageReadEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageResponse = (input?: Record) => { +decoders['MessageReminder'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + remind_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'Channel', isSingle: true }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['MessageResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1853,18 +2806,20 @@ decoders.MessageResponse = (input?: Record) => { quoted_message: { type: 'MessageResponse', isSingle: true }, reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + + reminder: { type: 'ReminderResponseData', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.MessageStatsResponse = (input?: Record) => { +decoders['MessageStatsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { count_over_time: { type: 'CountByMinuteResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.MessageUnblockedEvent = (input?: Record) => { +decoders['MessageUnblockedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1877,7 +2832,7 @@ decoders.MessageUnblockedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageUndeletedEvent = (input?: Record) => { +decoders['MessageUndeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1890,7 +2845,7 @@ decoders.MessageUndeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageUpdatedEvent = (input?: Record) => { +decoders['MessageUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1903,7 +2858,7 @@ decoders.MessageUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MessageWithChannelResponse = (input?: Record) => { +decoders['MessageWithChannelResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1938,11 +2893,15 @@ decoders.MessageWithChannelResponse = (input?: Record) => { quoted_message: { type: 'MessageResponse', isSingle: true }, reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + + reminder: { type: 'ReminderResponseData', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ModerationCheckCompletedEvent = (input?: Record) => { +decoders['ModerationCheckCompletedEvent'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1951,7 +2910,7 @@ decoders.ModerationCheckCompletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ModerationCustomActionEvent = (input?: Record) => { +decoders['ModerationCustomActionEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1964,7 +2923,16 @@ decoders.ModerationCustomActionEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ModerationFlaggedEvent = (input?: Record) => { +decoders['ModerationFlagResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + review_queue_item: { type: 'ReviewQueueItem', isSingle: true }, + + user: { type: 'UserResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['ModerationFlaggedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1973,7 +2941,7 @@ decoders.ModerationFlaggedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ModerationMarkReviewedEvent = (input?: Record) => { +decoders['ModerationMarkReviewedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -1986,7 +2954,7 @@ decoders.ModerationMarkReviewedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MuteChannelResponse = (input?: Record) => { +decoders['MuteChannelResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channel_mutes: { type: 'ChannelMute', isSingle: false }, @@ -1997,7 +2965,7 @@ decoders.MuteChannelResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.MuteResponse = (input?: Record) => { +decoders['MuteResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { mutes: { type: 'UserMute', isSingle: false }, @@ -2006,7 +2974,7 @@ decoders.MuteResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.NotificationMarkUnreadEvent = (input?: Record) => { +decoders['NotificationMarkUnreadEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2019,7 +2987,14 @@ decoders.NotificationMarkUnreadEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.OwnUser = (input?: Record) => { +decoders['NotificationStatusResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + last_seen_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['OwnUser'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2044,7 +3019,7 @@ decoders.OwnUser = (input?: Record) => { return decode(typeMappings, input); }; -decoders.OwnUserResponse = (input?: Record) => { +decoders['OwnUserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2069,21 +3044,25 @@ decoders.OwnUserResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ParticipantCountByMinuteResponse = (input?: Record) => { +decoders['ParticipantCountByMinuteResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { start_ts: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ParticipantCountOverTimeResponse = (input?: Record) => { +decoders['ParticipantCountOverTimeResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { by_minute: { type: 'ParticipantCountByMinuteResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.PendingMessageResponse = (input?: Record) => { +decoders['PendingMessageResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channel: { type: 'ChannelResponse', isSingle: true }, @@ -2094,7 +3073,7 @@ decoders.PendingMessageResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.PermissionRequestEvent = (input?: Record) => { +decoders['PermissionRequestEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2103,7 +3082,16 @@ decoders.PermissionRequestEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.Poll = (input?: Record) => { +decoders['PinActivityResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + activity: { type: 'ActivityResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['Poll'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2118,14 +3106,14 @@ decoders.Poll = (input?: Record) => { return decode(typeMappings, input); }; -decoders.PollResponse = (input?: Record) => { +decoders['PollResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { poll: { type: 'PollResponseData', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.PollResponseData = (input?: Record) => { +decoders['PollResponseData'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2140,7 +3128,7 @@ decoders.PollResponseData = (input?: Record) => { return decode(typeMappings, input); }; -decoders.PollVote = (input?: Record) => { +decoders['PollVote'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2151,14 +3139,14 @@ decoders.PollVote = (input?: Record) => { return decode(typeMappings, input); }; -decoders.PollVoteResponse = (input?: Record) => { +decoders['PollVoteResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { vote: { type: 'PollVoteResponseData', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.PollVoteResponseData = (input?: Record) => { +decoders['PollVoteResponseData'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2169,46 +3157,50 @@ decoders.PollVoteResponseData = (input?: Record) => { return decode(typeMappings, input); }; -decoders.PollVotesResponse = (input?: Record) => { +decoders['PollVotesResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { votes: { type: 'PollVoteResponseData', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.PushNotificationFields = (input?: Record) => { +decoders['PushNotificationFields'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { providers: { type: 'PushProvider', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.PushNotificationSettingsResponse = (input?: Record) => { +decoders['PushNotificationSettingsResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { disabled_until: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.PushPreferences = (input?: Record) => { +decoders['PushPreferences'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { disabled_until: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.PushProvider = (input?: Record) => { +decoders['PushProvider'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, updated_at: { type: 'DatetimeType', isSingle: true }, disabled_at: { type: 'DatetimeType', isSingle: true }, + + push_templates: { type: 'PushTemplate', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.PushProviderResponse = (input?: Record) => { +decoders['PushProviderResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2219,21 +3211,62 @@ decoders.PushProviderResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.QueryBannedUsersResponse = (input?: Record) => { +decoders['PushTemplate'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryActivitiesResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activities: { type: 'ActivityResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryActivityReactionsResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryBannedUsersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { bans: { type: 'BanResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryCallMembersResponse = (input?: Record) => { +decoders['QueryBookmarkFoldersResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + bookmark_folders: { type: 'BookmarkFolderResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryBookmarksResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + bookmarks: { type: 'BookmarkResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryCallMembersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryCallParticipantsResponse = (input?: Record) => { +decoders['QueryCallParticipantsResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, @@ -2244,42 +3277,65 @@ decoders.QueryCallParticipantsResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.QueryCallStatsResponse = (input?: Record) => { +decoders['QueryCallStatsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { reports: { type: 'CallStatsReportSummaryResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryCallsResponse = (input?: Record) => { +decoders['QueryCallsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { calls: { type: 'CallStateResponseFields', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryCampaignsResponse = (input?: Record) => { +decoders['QueryCampaignsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { campaigns: { type: 'CampaignResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryChannelsResponse = (input?: Record) => { +decoders['QueryChannelsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channels: { type: 'ChannelStateResponseFields', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryDraftsResponse = (input?: Record) => { +decoders['QueryCommentReactionsResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + reactions: { type: 'FeedsReactionResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryCommentsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + comments: { type: 'CommentResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryDraftsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { drafts: { type: 'DraftResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryFeedModerationTemplate = (input?: Record) => { +decoders['QueryFeedMembersResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + members: { type: 'FeedMemberResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryFeedModerationTemplate'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2288,93 +3344,123 @@ decoders.QueryFeedModerationTemplate = (input?: Record) => { return decode(typeMappings, input); }; -decoders.QueryFeedModerationTemplatesResponse = ( - input?: Record, -) => { +decoders['QueryFeedModerationTemplatesResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { templates: { type: 'QueryFeedModerationTemplate', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryMessageFlagsResponse = (input?: Record) => { +decoders['QueryFeedsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + feeds: { type: 'FeedResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryFollowsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + follows: { type: 'FollowResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryMessageFlagsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { flags: { type: 'MessageFlagResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryMessageHistoryResponse = (input?: Record) => { +decoders['QueryMessageHistoryResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message_history: { type: 'MessageHistoryEntryResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryModerationConfigsResponse = (input?: Record) => { +decoders['QueryModerationConfigsResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { configs: { type: 'ConfigResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryModerationLogsResponse = (input?: Record) => { +decoders['QueryModerationFlagsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + flags: { type: 'ModerationFlagResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryModerationLogsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { logs: { type: 'ActionLogResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryPollsResponse = (input?: Record) => { +decoders['QueryPollsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { polls: { type: 'PollResponseData', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryReactionsResponse = (input?: Record) => { +decoders['QueryReactionsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { reactions: { type: 'ReactionResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryReviewQueueResponse = (input?: Record) => { +decoders['QueryRemindersResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + reminders: { type: 'ReminderResponseData', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['QueryReviewQueueResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { items: { type: 'ReviewQueueItemResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QuerySegmentTargetsResponse = (input?: Record) => { +decoders['QuerySegmentTargetsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { targets: { type: 'SegmentTargetResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QuerySegmentsResponse = (input?: Record) => { +decoders['QuerySegmentsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { segments: { type: 'SegmentResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryThreadsResponse = (input?: Record) => { +decoders['QueryThreadsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { threads: { type: 'ThreadStateResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.QueryUsersResponse = (input?: Record) => { +decoders['QueryUsersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { users: { type: 'FullUserResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.Reaction = (input?: Record) => { +decoders['Reaction'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2385,7 +3471,7 @@ decoders.Reaction = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReactionDeletedEvent = (input?: Record) => { +decoders['ReactionDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2400,7 +3486,7 @@ decoders.ReactionDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReactionGroupResponse = (input?: Record) => { +decoders['ReactionGroupResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { first_reaction_at: { type: 'DatetimeType', isSingle: true }, @@ -2409,7 +3495,7 @@ decoders.ReactionGroupResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReactionNewEvent = (input?: Record) => { +decoders['ReactionNewEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2424,7 +3510,7 @@ decoders.ReactionNewEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReactionResponse = (input?: Record) => { +decoders['ReactionResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2435,7 +3521,7 @@ decoders.ReactionResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReactionUpdatedEvent = (input?: Record) => { +decoders['ReactionUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2448,14 +3534,14 @@ decoders.ReactionUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReactivateUserResponse = (input?: Record) => { +decoders['ReactivateUserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { user: { type: 'UserResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ReadStateResponse = (input?: Record) => { +decoders['ReadStateResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { last_read: { type: 'DatetimeType', isSingle: true }, @@ -2464,7 +3550,40 @@ decoders.ReadStateResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReviewQueueItem = (input?: Record) => { +decoders['RejectFeedMemberInviteResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + member: { type: 'FeedMemberResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['RejectFollowResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + follow: { type: 'FollowResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['ReminderResponseData'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + remind_at: { type: 'DatetimeType', isSingle: true }, + + channel: { type: 'ChannelResponse', isSingle: true }, + + message: { type: 'Message', isSingle: true }, + + user: { type: 'User', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['ReviewQueueItem'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2478,6 +3597,8 @@ decoders.ReviewQueueItem = (input?: Record) => { assigned_to: { type: 'User', isSingle: true }, + call: { type: 'Call', isSingle: true }, + entity_creator: { type: 'EntityCreator', isSingle: true }, feeds_v2_reaction: { type: 'Reaction', isSingle: true }, @@ -2489,7 +3610,7 @@ decoders.ReviewQueueItem = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReviewQueueItemNewEvent = (input?: Record) => { +decoders['ReviewQueueItemNewEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2502,7 +3623,7 @@ decoders.ReviewQueueItemNewEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReviewQueueItemResponse = (input?: Record) => { +decoders['ReviewQueueItemResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2518,6 +3639,8 @@ decoders.ReviewQueueItemResponse = (input?: Record) => { assigned_to: { type: 'UserResponse', isSingle: true }, + call: { type: 'CallResponse', isSingle: true }, + entity_creator: { type: 'EntityCreatorResponse', isSingle: true }, feeds_v2_reaction: { type: 'Reaction', isSingle: true }, @@ -2529,7 +3652,7 @@ decoders.ReviewQueueItemResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ReviewQueueItemUpdatedEvent = (input?: Record) => { +decoders['ReviewQueueItemUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2542,7 +3665,7 @@ decoders.ReviewQueueItemUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.Role = (input?: Record) => { +decoders['Role'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2551,14 +3674,21 @@ decoders.Role = (input?: Record) => { return decode(typeMappings, input); }; -decoders.SearchResult = (input?: Record) => { +decoders['SFUIDLastSeen'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + last_seen: { type: 'DatetimeType', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['SearchResult'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'SearchResultMessage', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.SearchResultMessage = (input?: Record) => { +decoders['SearchResultMessage'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2593,11 +3723,13 @@ decoders.SearchResultMessage = (input?: Record) => { quoted_message: { type: 'MessageResponse', isSingle: true }, reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + + reminder: { type: 'ReminderResponseData', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.Segment = (input?: Record) => { +decoders['Segment'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2608,7 +3740,7 @@ decoders.Segment = (input?: Record) => { return decode(typeMappings, input); }; -decoders.SegmentResponse = (input?: Record) => { +decoders['SegmentResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2619,21 +3751,21 @@ decoders.SegmentResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.SegmentTargetResponse = (input?: Record) => { +decoders['SegmentTargetResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.SendMessageResponse = (input?: Record) => { +decoders['SendMessageResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.SendReactionResponse = (input?: Record) => { +decoders['SendReactionResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, @@ -2642,21 +3774,28 @@ decoders.SendReactionResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.StopLiveResponse = (input?: Record) => { +decoders['SingleFollowResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + follow: { type: 'FollowResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['StopLiveResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { call: { type: 'CallResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.SubmitActionResponse = (input?: Record) => { +decoders['SubmitActionResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { item: { type: 'ReviewQueueItem', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.ThreadParticipant = (input?: Record) => { +decoders['ThreadParticipant'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2671,7 +3810,7 @@ decoders.ThreadParticipant = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ThreadResponse = (input?: Record) => { +decoders['ThreadResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2692,7 +3831,7 @@ decoders.ThreadResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ThreadStateResponse = (input?: Record) => { +decoders['ThreadStateResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2719,7 +3858,7 @@ decoders.ThreadStateResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.ThreadUpdatedEvent = (input?: Record) => { +decoders['ThreadUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2730,7 +3869,28 @@ decoders.ThreadUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.TruncateChannelResponse = (input?: Record) => { +decoders['ThreadedCommentResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + created_at: { type: 'DatetimeType', isSingle: true }, + + updated_at: { type: 'DatetimeType', isSingle: true }, + + mentioned_users: { type: 'UserResponse', isSingle: false }, + + user: { type: 'UserResponse', isSingle: true }, + + deleted_at: { type: 'DatetimeType', isSingle: true }, + + latest_reactions: { type: 'FeedsReactionResponse', isSingle: false }, + + replies: { type: 'ThreadedCommentResponse', isSingle: false }, + + reaction_groups: { type: 'ReactionGroupResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['TruncateChannelResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channel: { type: 'ChannelResponse', isSingle: true }, @@ -2739,7 +3899,7 @@ decoders.TruncateChannelResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UnblockedUserEvent = (input?: Record) => { +decoders['UnblockedUserEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2748,21 +3908,28 @@ decoders.UnblockedUserEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UnreadCountsBatchResponse = (input?: Record) => { +decoders['UnpinActivityResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UnreadCountsBatchResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { counts_by_user: { type: 'UnreadCountsResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.UnreadCountsChannel = (input?: Record) => { +decoders['UnreadCountsChannel'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { last_read: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UnreadCountsResponse = (input?: Record) => { +decoders['UnreadCountsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channels: { type: 'UnreadCountsChannel', isSingle: false }, @@ -2771,28 +3938,51 @@ decoders.UnreadCountsResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UnreadCountsThread = (input?: Record) => { +decoders['UnreadCountsThread'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { last_read: { type: 'DatetimeType', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateBlockListResponse = (input?: Record) => { +decoders['UpdateActivityPartialResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateActivityResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activity: { type: 'ActivityResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateBlockListResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { blocklist: { type: 'BlockListResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateCallMembersResponse = (input?: Record) => { +decoders['UpdateBookmarkResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + bookmark: { type: 'BookmarkResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateCallMembersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.UpdateCallResponse = (input?: Record) => { +decoders['UpdateCallResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'MemberResponse', isSingle: false }, @@ -2801,7 +3991,7 @@ decoders.UpdateCallResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpdateCallTypeResponse = (input?: Record) => { +decoders['UpdateCallTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2810,7 +4000,7 @@ decoders.UpdateCallTypeResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpdateChannelPartialResponse = (input?: Record) => { +decoders['UpdateChannelPartialResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'ChannelMemberResponse', isSingle: false }, @@ -2819,7 +4009,7 @@ decoders.UpdateChannelPartialResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpdateChannelResponse = (input?: Record) => { +decoders['UpdateChannelResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { members: { type: 'ChannelMember', isSingle: false }, @@ -2830,7 +4020,7 @@ decoders.UpdateChannelResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpdateChannelTypeResponse = (input?: Record) => { +decoders['UpdateChannelTypeResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2839,49 +4029,93 @@ decoders.UpdateChannelTypeResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpdateCommandResponse = (input?: Record) => { +decoders['UpdateCommandResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { command: { type: 'Command', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateMemberPartialResponse = (input?: Record) => { +decoders['UpdateCommentResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + comment: { type: 'CommentResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateFeedMembersResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + added: { type: 'FeedMemberResponse', isSingle: false }, + + updated: { type: 'FeedMemberResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateFeedResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + feed: { type: 'FeedResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateFeedViewResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + feed_view: { type: 'FeedViewResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateFollowResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + follow: { type: 'FollowResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateMemberPartialResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channel_member: { type: 'ChannelMemberResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateMessagePartialResponse = (input?: Record) => { +decoders['UpdateMessagePartialResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateMessageResponse = (input?: Record) => { +decoders['UpdateMessageResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { message: { type: 'MessageResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateThreadPartialResponse = (input?: Record) => { +decoders['UpdateReminderResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + reminder: { type: 'ReminderResponseData', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['UpdateThreadPartialResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { thread: { type: 'ThreadResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpdateUsersResponse = (input?: Record) => { +decoders['UpdateUsersResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { users: { type: 'FullUserResponse', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.UpdatedCallPermissionsEvent = (input?: Record) => { +decoders['UpdatedCallPermissionsEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2890,14 +4124,23 @@ decoders.UpdatedCallPermissionsEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpsertConfigResponse = (input?: Record) => { +decoders['UpsertActivitiesResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + activities: { type: 'ActivityResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['UpsertConfigResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { config: { type: 'ConfigResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.UpsertModerationTemplateResponse = (input?: Record) => { +decoders['UpsertModerationTemplateResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2906,21 +4149,30 @@ decoders.UpsertModerationTemplateResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UpsertPushPreferencesResponse = (input?: Record) => { +decoders['UpsertPushPreferencesResponse'] = (input?: { + [key: string]: any; +}) => { const typeMappings: TypeMapping = { user_preferences: { type: 'PushPreferences', isSingle: false }, }; return decode(typeMappings, input); }; -decoders.UpsertPushProviderResponse = (input?: Record) => { +decoders['UpsertPushProviderResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { push_provider: { type: 'PushProviderResponse', isSingle: true }, }; return decode(typeMappings, input); }; -decoders.User = (input?: Record) => { +decoders['UpsertPushTemplateResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + template: { type: 'PushTemplate', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['User'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { ban_expires: { type: 'DatetimeType', isSingle: true }, @@ -2941,7 +4193,7 @@ decoders.User = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserBannedEvent = (input?: Record) => { +decoders['UserBannedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2954,7 +4206,7 @@ decoders.UserBannedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserDeactivatedEvent = (input?: Record) => { +decoders['UserDeactivatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2965,7 +4217,7 @@ decoders.UserDeactivatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserDeletedEvent = (input?: Record) => { +decoders['UserDeletedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2974,7 +4226,7 @@ decoders.UserDeletedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserFlaggedEvent = (input?: Record) => { +decoders['UserFlaggedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2983,7 +4235,7 @@ decoders.UserFlaggedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserMute = (input?: Record) => { +decoders['UserMute'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -2998,7 +4250,7 @@ decoders.UserMute = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserMuteResponse = (input?: Record) => { +decoders['UserMuteResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3013,7 +4265,7 @@ decoders.UserMuteResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserMutedEvent = (input?: Record) => { +decoders['UserMutedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3022,7 +4274,7 @@ decoders.UserMutedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserReactivatedEvent = (input?: Record) => { +decoders['UserReactivatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3031,7 +4283,7 @@ decoders.UserReactivatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserResponse = (input?: Record) => { +decoders['UserResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3057,7 +4309,7 @@ decoders.UserResponse = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserResponseCommonFields = (input?: Record) => { +decoders['UserResponseCommonFields'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3074,7 +4326,7 @@ decoders.UserResponseCommonFields = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserUnbannedEvent = (input?: Record) => { +decoders['UserUnbannedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3083,7 +4335,7 @@ decoders.UserUnbannedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserUnmutedEvent = (input?: Record) => { +decoders['UserUnmutedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3092,7 +4344,7 @@ decoders.UserUnmutedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserUnreadReminderEvent = (input?: Record) => { +decoders['UserUnreadReminderEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3101,7 +4353,7 @@ decoders.UserUnreadReminderEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.UserUpdatedEvent = (input?: Record) => { +decoders['UserUpdatedEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3110,7 +4362,23 @@ decoders.UserUpdatedEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.WSEvent = (input?: Record) => { +decoders['VideoReactionOverTimeResponse'] = (input?: { + [key: string]: any; +}) => { + const typeMappings: TypeMapping = { + by_minute: { type: 'CountByMinuteResponse', isSingle: false }, + }; + return decode(typeMappings, input); +}; + +decoders['VideoReactionsResponse'] = (input?: { [key: string]: any }) => { + const typeMappings: TypeMapping = { + count_over_time: { type: 'VideoReactionOverTimeResponse', isSingle: true }, + }; + return decode(typeMappings, input); +}; + +decoders['WSEvent'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { created_at: { type: 'DatetimeType', isSingle: true }, @@ -3139,7 +4407,7 @@ decoders.WSEvent = (input?: Record) => { return decode(typeMappings, input); }; -decoders.WrappedUnreadCountsResponse = (input?: Record) => { +decoders['WrappedUnreadCountsResponse'] = (input?: { [key: string]: any }) => { const typeMappings: TypeMapping = { channels: { type: 'UnreadCountsChannel', isSingle: false }, diff --git a/src/gen/models/index.ts b/src/gen/models/index.ts index 9d153c6..ca90824 100644 --- a/src/gen/models/index.ts +++ b/src/gen/models/index.ts @@ -1,30 +1,9 @@ -import { - Action, - Attachment, - DeviceResponse, - Field, - ImageData, - Images, - ModerationV2Response, - PagerResponse, - PollOptionRequest, - PollResponseData, - PollVoteResponseData, - PrivacySettingsResponse, - PushNotificationSettingsResponse, - ReactionGroupResponse, - SortParamRequest, - UserRequest, - UserResponse, - UserResponseCommonFields, -} from '../../gen-feeds/models'; - export interface AIImageConfig { enabled: boolean; - ocr_rules: OCRRule[]; + ocr_rules: Array; - rules: AWSRekognitionRule[]; + rules: Array; async?: boolean; } @@ -34,9 +13,9 @@ export interface AITextConfig { profile: string; - rules: BodyguardRule[]; + rules: Array; - severity_rules: BodyguardSeverityRule[]; + severity_rules: Array; async?: boolean; } @@ -44,11 +23,29 @@ export interface AITextConfig { export interface AIVideoConfig { enabled: boolean; - rules: AWSRekognitionRule[]; + rules: Array; async?: boolean; } +export interface APIError { + code: number; + + duration: string; + + message: string; + + more_info: string; + + status_code: number; + + details: Array; + + unrecoverable?: boolean; + + exception_fields?: Record; +} + export interface APNConfig { auth_key?: string; @@ -76,8 +73,6 @@ export interface APNConfigFields { enabled: boolean; - notification_template: string; - auth_key?: string; auth_type?: string; @@ -88,6 +83,8 @@ export interface APNConfigFields { key_id?: string; + notification_template?: string; + p12_cert?: string; team_id?: string; @@ -97,6 +94,14 @@ export interface APNS { body: string; title: string; + + content_available?: number; + + mutable_content?: number; + + sound?: string; + + data?: Record; } export interface AWSRekognitionRule { @@ -113,6 +118,44 @@ export interface AWSRekognitionRule { min_confidence: number; } +export interface AcceptFeedMemberInviteRequest { + user_id?: string; + + user?: UserRequest; +} + +export interface AcceptFeedMemberInviteResponse { + duration: string; + + member: FeedMemberResponse; +} + +export interface AcceptFollowRequest { + source_fid: string; + + target_fid: string; + + follower_role?: string; +} + +export interface AcceptFollowResponse { + duration: string; + + follow: FollowResponse; +} + +export interface Action { + name: string; + + text: string; + + type: string; + + style?: string; + + value?: string; +} + export interface ActionLog { created_at: Date; @@ -159,2505 +202,2448 @@ export interface ActionLogResponse { user?: UserResponse; } -export interface ActivityMarkedEvent { - all_read: boolean; - - all_seen: boolean; +export interface ActionSequence { + action: string; - created_at: Date; + blur: boolean; - feed_id: string; + cooldown_period: number; - user_id: string; + threshold: number; - type: string; + time_window: number; - marked_read?: string[]; + warning: boolean; - marked_watched?: string[]; + warning_text: string; } -export interface AnyEvent { +export interface ActivityAddedEvent { created_at: Date; + fid: string; + + activity: ActivityResponse; + + custom: Record; + type: string; -} -export interface AppResponseFields { - async_url_enrich_enabled: boolean; + received_at?: Date; - auto_translation_enabled: boolean; + user?: UserResponseCommonFields; +} - campaign_enabled: boolean; +export interface ActivityAnalyserConfig {} - cdn_expiration_seconds: number; +export interface ActivityDeletedEvent { + created_at: Date; - custom_action_handler_url: string; + fid: string; - disable_auth_checks: boolean; + activity: ActivityResponse; - disable_permissions_checks: boolean; + custom: Record; - enforce_unique_usernames: string; + type: string; - guest_user_creation_disabled: boolean; + received_at?: Date; - image_moderation_enabled: boolean; + user?: UserResponseCommonFields; +} - moderation_enabled: boolean; +export interface ActivityLocation { + lat: number; - moderation_multitenant_blocklist_enabled: boolean; + lng: number; +} - moderation_webhook_url: string; +export interface ActivityMarkEvent { + created_at: Date; - multi_tenant_enabled: boolean; + fid: string; - name: string; + custom: Record; - organization: string; + type: string; - permission_version: string; + mark_all_read?: boolean; - reminders_interval: number; + mark_all_seen?: boolean; - sns_key: string; + received_at?: Date; - sns_secret: string; + mark_read?: Array; - sns_topic_arn: string; + mark_watched?: Array; - sqs_key: string; + user?: UserResponseCommonFields; +} - sqs_secret: string; +export interface ActivityMarkedEvent { + all_read: boolean; - sqs_url: string; + all_seen: boolean; - suspended: boolean; + created_at: Date; - suspended_explanation: string; + feed_id: string; - webhook_url: string; + user_id: string; - user_search_disallowed_roles: string[]; + type: string; - webhook_events: string[]; + marked_read?: Array; - call_types: Record; + marked_watched?: Array; +} - channel_configs: Record; +export interface ActivityPinResponse { + created_at: Date; - file_upload_config: FileUploadConfig; + feed: string; - grants: Record; + updated_at: Date; - image_upload_config: FileUploadConfig; + activity: ActivityResponse; - policies: Record; + user: UserResponse; +} - push_notifications: PushNotificationFields; +export interface ActivityPinnedEvent { + created_at: Date; - before_message_send_hook_url?: string; + fid: string; - revoke_tokens_issued_before?: Date; + custom: Record; - allowed_flag_reasons?: string[]; + pinned_activity: PinActivityResponse; - geofences?: GeofenceResponse[]; + type: string; - image_moderation_labels?: string[]; + received_at?: Date; - datadog_info?: DataDogInfo; + user?: UserResponseCommonFields; } -export interface AsyncExportChannelsEvent { +export interface ActivityReactionAddedEvent { created_at: Date; - finished_at: Date; - - started_at: Date; - - task_id: string; + fid: string; - url: string; + activity: ActivityResponse; custom: Record; + reaction: FeedsReactionResponse; + type: string; received_at?: Date; + + user?: UserResponseCommonFields; } -export interface AsyncExportErrorEvent { +export interface ActivityReactionDeletedEvent { created_at: Date; - error: string; - - finished_at: Date; - - started_at: Date; + fid: string; - task_id: string; + activity: ActivityResponse; custom: Record; + reaction: FeedsReactionResponse; + type: string; received_at?: Date; + + user?: UserResponseCommonFields; } -export interface AsyncExportModerationLogsEvent { +export interface ActivityRemovedFromFeedEvent { created_at: Date; - finished_at: Date; - - started_at: Date; - - task_id: string; + fid: string; - url: string; + activity: ActivityResponse; custom: Record; type: string; received_at?: Date; + + user?: UserResponseCommonFields; } -export interface AsyncExportUsersEvent { - created_at: Date; +export interface ActivityRequest { + type: string; - finished_at: Date; + fids: Array; - started_at: Date; + expires_at?: string; - task_id: string; + id?: string; - url: string; + parent_id?: string; - custom: Record; + poll_id?: string; - type: string; + text?: string; - received_at?: Date; -} + user_id?: string; -export interface AsyncModerationCallbackConfig { - mode?: 'CALLBACK_MODE_NONE' | 'CALLBACK_MODE_REST' | 'CALLBACK_MODE_TWIRP'; + visibility?: 'public' | 'private' | 'tag'; - server_url?: string; -} + visibility_tag?: string; -export interface AsyncModerationConfiguration { - timeout_ms?: number; + attachments?: Array; - callback?: AsyncModerationCallbackConfig; -} + filter_tags?: Array; -export interface AudioSettings { - access_request_enabled: boolean; + interest_tags?: Array; - default_device: 'speaker' | 'earpiece'; + mentioned_user_ids?: Array; - mic_default_on: boolean; + custom?: Record; - opus_dtx_enabled: boolean; + location?: ActivityLocation; - redundant_coding_enabled: boolean; + search_data?: Record; +} - speaker_default_on: boolean; +export interface ActivityResponse { + bookmark_count: number; - noise_cancellation?: NoiseCancellationSettings; -} + comment_count: number; -export interface AudioSettingsRequest { - default_device: 'speaker' | 'earpiece'; + created_at: Date; - access_request_enabled?: boolean; + id: string; - mic_default_on?: boolean; + popularity: number; - opus_dtx_enabled?: boolean; + score: number; - redundant_coding_enabled?: boolean; + share_count: number; - speaker_default_on?: boolean; + type: string; - noise_cancellation?: NoiseCancellationSettings; -} + updated_at: Date; -export interface AudioSettingsResponse { - access_request_enabled: boolean; + visibility: 'public' | 'private' | 'tag'; - default_device: 'speaker' | 'earpiece'; + attachments: Array; - mic_default_on: boolean; + comments: Array; - opus_dtx_enabled: boolean; + feeds: Array; - redundant_coding_enabled: boolean; + filter_tags: Array; - speaker_default_on: boolean; + interest_tags: Array; - noise_cancellation?: NoiseCancellationSettings; -} + latest_reactions: Array; -export interface AutomodDetails { - action?: string; + mentioned_users: Array; - original_message_type?: string; + own_bookmarks: Array; - image_labels?: string[]; + own_reactions: Array; - message_details?: FlagMessageDetails; + custom: Record; - result?: MessageModerationResult; -} + reaction_groups: Record; -export interface AutomodPlatformCircumventionConfig { - enabled: boolean; + search_data: Record; - rules: AutomodRule[]; + user: UserResponse; - async?: boolean; -} + deleted_at?: Date; -export interface AutomodRule { - action: - | 'flag' - | 'shadow' - | 'remove' - | 'bounce' - | 'bounce_flag' - | 'bounce_remove'; + edited_at?: Date; - label: string; + expires_at?: Date; - threshold: number; -} + text?: string; -export interface AutomodSemanticFiltersConfig { - enabled: boolean; + visibility_tag?: string; - rules: AutomodSemanticFiltersRule[]; + current_feed?: FeedResponse; - async?: boolean; -} + location?: ActivityLocation; -export interface AutomodSemanticFiltersRule { - action: 'flag' | 'shadow' | 'remove'; + moderation?: ModerationV2Response; - name: string; + parent?: ActivityResponse; - threshold: number; + poll?: PollResponseData; } -export interface AutomodToxicityConfig { - enabled: boolean; +export interface ActivitySelectorConfig { + cutoff_time?: Date; - rules: AutomodRule[]; + min_popularity?: number; - async?: boolean; -} - -export interface AzureRequest { - abs_account_name: string; - - abs_client_id: string; + type?: string; - abs_client_secret: string; + sort?: Array; - abs_tenant_id: string; + filter?: Record; } -export interface BackstageSettings { - enabled: boolean; +export interface ActivityUnpinnedEvent { + created_at: Date; - join_ahead_time_seconds?: number; -} + fid: string; -export interface BackstageSettingsRequest { - enabled?: boolean; + custom: Record; - join_ahead_time_seconds?: number; -} + pinned_activity: PinActivityResponse; -export interface BackstageSettingsResponse { - enabled: boolean; + type: string; - join_ahead_time_seconds?: number; + received_at?: Date; + + user?: UserResponseCommonFields; } -export interface Ban { +export interface ActivityUpdatedEvent { created_at: Date; - shadow: boolean; + fid: string; - expires?: Date; + activity: ActivityResponse; - reason?: string; + custom: Record; - channel?: Channel; + type: string; - created_by?: User; + received_at?: Date; - target?: User; + user?: UserResponseCommonFields; } -export interface BanActionRequest { - channel_ban_only?: boolean; - - ip_ban?: boolean; +export interface AddActivityRequest { + type: string; - reason?: string; + fids: Array; - shadow?: boolean; + expires_at?: string; - timeout?: number; -} + id?: string; -export interface BanRequest { - target_user_id: string; + parent_id?: string; - banned_by_id?: string; + poll_id?: string; - channel_cid?: string; + text?: string; - ip_ban?: boolean; + user_id?: string; - reason?: string; + visibility?: 'public' | 'private' | 'tag'; - shadow?: boolean; + visibility_tag?: string; - timeout?: number; + attachments?: Array; - banned_by?: UserRequest; -} + filter_tags?: Array; -export interface BanResponse { - created_at: Date; + interest_tags?: Array; - expires?: Date; + mentioned_user_ids?: Array; - reason?: string; + custom?: Record; - shadow?: boolean; + location?: ActivityLocation; - banned_by?: UserResponse; + search_data?: Record; +} - channel?: ChannelResponse; +export interface AddActivityResponse { + duration: string; - user?: UserResponse; + activity: ActivityResponse; } -export interface BlockListConfig { - enabled: boolean; +export interface AddBookmarkRequest { + folder_id?: string; - rules: BlockListRule[]; + user_id?: string; - async?: boolean; -} + custom?: Record; -export interface BlockListOptions { - behavior: 'flag' | 'block' | 'shadow_block'; + new_folder?: AddFolderRequest; - blocklist: string; + user?: UserRequest; } -export interface BlockListResponse { - name: string; +export interface AddBookmarkResponse { + duration: string; + + bookmark: BookmarkResponse; +} +export interface AddCommentReactionRequest { type: string; - words: string[]; + user_id?: string; - created_at?: Date; + custom?: Record; - id?: string; + user?: UserRequest; +} - team?: string; +export interface AddCommentReactionResponse { + duration: string; - updated_at?: Date; + comment: CommentResponse; + + reaction: FeedsReactionResponse; } -export interface BlockListRule { - action: - | 'flag' - | 'shadow' - | 'remove' - | 'bounce' - | 'bounce_flag' - | 'bounce_remove'; +export interface AddCommentRequest { + comment: string; - name: string; + object_id: string; - team: string; -} + object_type: string; -export interface BlockUserRequest { - user_id: string; + parent_id?: string; + + attachments?: Array; + + mentioned_user_ids?: Array; + + custom?: Record; } -export interface BlockUserResponse { +export interface AddCommentResponse { duration: string; + + comment: CommentResponse; } -export interface BlockUsersRequest { - blocked_user_id: string; +export interface AddCommentsBatchRequest { + comments: Array; +} - user_id?: string; +export interface AddCommentsBatchResponse { + duration: string; - user?: UserRequest; + comments: Array; } -export interface BlockUsersResponse { - blocked_by_user_id: string; +export interface AddFolderRequest { + name: string; - blocked_user_id: string; + custom?: Record; +} - created_at: Date; +export interface AddReactionRequest { + type: string; - duration: string; -} + user_id?: string; -export interface BlockedUserEvent { - call_cid: string; + custom?: Record; - created_at: Date; + user?: UserRequest; +} - user: UserResponse; +export interface AddReactionResponse { + duration: string; - type: string; + activity: ActivityResponse; - blocked_by_user?: UserResponse; + reaction: FeedsReactionResponse; } -export interface BlockedUserResponse { - blocked_user_id: string; +export interface AggregatedActivityResponse { + activity_count: number; created_at: Date; - user_id: string; + group: string; - blocked_user: UserResponse; + score: number; - user: UserResponse; -} + updated_at: Date; -export interface BodyguardRule { - action: - | 'flag' - | 'shadow' - | 'remove' - | 'bounce' - | 'bounce_flag' - | 'bounce_remove'; + user_count: number; - label: string; + activities: Array; +} - severity_rules: BodyguardSeverityRule[]; +export interface AggregationConfig { + format?: string; } -export interface BodyguardSeverityRule { - action: - | 'flag' - | 'shadow' - | 'remove' - | 'bounce' - | 'bounce_flag' - | 'bounce_remove'; +export interface AnyEvent { + created_at: Date; - severity: 'low' | 'medium' | 'high' | 'critical'; + type: string; } -export interface Bound { - inclusive: boolean; +export interface AppResponseFields { + async_url_enrich_enabled: boolean; - value: number; -} + auto_translation_enabled: boolean; -export interface BroadcastSettings { - enabled: boolean; + campaign_enabled: boolean; - hls?: HLSSettings; + cdn_expiration_seconds: number; - rtmp?: RTMPSettings; -} + custom_action_handler_url: string; -export interface BroadcastSettingsRequest { - enabled?: boolean; + disable_auth_checks: boolean; - hls?: HLSSettingsRequest; + disable_permissions_checks: boolean; - rtmp?: RTMPSettingsRequest; -} + enforce_unique_usernames: string; -export interface BroadcastSettingsResponse { - enabled: boolean; + guest_user_creation_disabled: boolean; - hls: HLSSettingsResponse; + image_moderation_enabled: boolean; - rtmp: RTMPSettingsResponse; -} + moderation_enabled: boolean; -export interface BrowserDataResponse { - name?: string; + moderation_multitenant_blocklist_enabled: boolean; - version?: string; -} + moderation_webhook_url: string; -export interface CallAcceptedEvent { - call_cid: string; + multi_tenant_enabled: boolean; - created_at: Date; + name: string; - call: CallResponse; + organization: string; - user: UserResponse; + permission_version: string; - type: string; -} + reminders_interval: number; -export interface CallClosedCaption { - end_time: Date; + sns_key: string; - speaker_id: string; + sns_secret: string; - start_time: Date; + sns_topic_arn: string; - text: string; + sqs_key: string; - user: UserResponse; -} + sqs_secret: string; -export interface CallClosedCaptionsFailedEvent { - call_cid: string; + sqs_url: string; - created_at: Date; + suspended: boolean; - type: string; -} + suspended_explanation: string; -export interface CallClosedCaptionsStartedEvent { - call_cid: string; + use_hook_v2: boolean; - created_at: Date; + webhook_url: string; - type: string; -} + event_hooks: Array; -export interface CallClosedCaptionsStoppedEvent { - call_cid: string; + user_search_disallowed_roles: Array; - created_at: Date; + webhook_events: Array; - type: string; -} + call_types: Record; -export interface CallCreatedEvent { - call_cid: string; - - created_at: Date; + channel_configs: Record; - members: MemberResponse[]; + file_upload_config: FileUploadConfig; - call: CallResponse; + grants: Record>; - type: string; -} + image_upload_config: FileUploadConfig; -export interface CallDeletedEvent { - call_cid: string; + policies: Record>; - created_at: Date; + push_notifications: PushNotificationFields; - call: CallResponse; + before_message_send_hook_url?: string; - type: string; -} + revoke_tokens_issued_before?: Date; -export interface CallDurationReport { - histogram: ReportByHistogramBucket[]; -} + allowed_flag_reasons?: Array; -export interface CallDurationReportResponse { - daily: DailyAggregateCallDurationReportResponse[]; -} + geofences?: Array; -export interface CallEndedEvent { - call_cid: string; + image_moderation_labels?: Array; - created_at: Date; + datadog_info?: DataDogInfo; - call: CallResponse; + moderation_dashboard_preferences?: ModerationDashboardPreferences; +} - type: string; +export interface AsyncBulkImageModerationEvent { + created_at: Date; - user?: UserResponse; -} + finished_at: Date; -export interface CallFrameRecordingFailedEvent { - call_cid: string; + started_at: Date; - created_at: Date; + task_id: string; - egress_id: string; + url: string; - call: CallResponse; + custom: Record; type: string; -} -export interface CallFrameRecordingFrameReadyEvent { - call_cid: string; - - captured_at: Date; + received_at?: Date; +} +export interface AsyncExportChannelsEvent { created_at: Date; - egress_id: string; + finished_at: Date; - session_id: string; + started_at: Date; - track_type: string; + task_id: string; url: string; - users: Record; + custom: Record; type: string; -} -export interface CallFrameRecordingStartedEvent { - call_cid: string; + received_at?: Date; +} +export interface AsyncExportErrorEvent { created_at: Date; - egress_id: string; - - call: CallResponse; - - type: string; -} + error: string; -export interface CallFrameRecordingStoppedEvent { - call_cid: string; + finished_at: Date; - created_at: Date; + started_at: Date; - egress_id: string; + task_id: string; - call: CallResponse; + custom: Record; type: string; -} -export interface CallHLSBroadcastingFailedEvent { - call_cid: string; + received_at?: Date; +} +export interface AsyncExportModerationLogsEvent { created_at: Date; - type: string; -} + finished_at: Date; -export interface CallHLSBroadcastingStartedEvent { - call_cid: string; + started_at: Date; - created_at: Date; + task_id: string; - hls_playlist_url: string; + url: string; - call: CallResponse; + custom: Record; type: string; -} -export interface CallHLSBroadcastingStoppedEvent { - call_cid: string; + received_at?: Date; +} +export interface AsyncExportUsersEvent { created_at: Date; - type: string; -} + finished_at: Date; -export interface CallIngressResponse { - rtmp: RTMPIngress; -} + started_at: Date; -export interface CallLiveStartedEvent { - call_cid: string; + task_id: string; - created_at: Date; + url: string; - call: CallResponse; + custom: Record; type: string; -} -export interface CallMemberAddedEvent { - call_cid: string; + received_at?: Date; +} - created_at: Date; +export interface AsyncModerationCallbackConfig { + mode?: 'CALLBACK_MODE_NONE' | 'CALLBACK_MODE_REST' | 'CALLBACK_MODE_TWIRP'; - members: MemberResponse[]; + server_url?: string; +} - call: CallResponse; +export interface AsyncModerationConfiguration { + timeout_ms?: number; - type: string; + callback?: AsyncModerationCallbackConfig; } -export interface CallMemberRemovedEvent { - call_cid: string; +export interface Attachment { + custom: Record; - created_at: Date; + asset_url?: string; - members: string[]; + author_icon?: string; - call: CallResponse; + author_link?: string; - type: string; -} + author_name?: string; -export interface CallMemberUpdatedEvent { - call_cid: string; + color?: string; - created_at: Date; + fallback?: string; - members: MemberResponse[]; + footer?: string; - call: CallResponse; + footer_icon?: string; - type: string; -} + image_url?: string; -export interface CallMemberUpdatedPermissionEvent { - call_cid: string; + latitude?: number; - created_at: Date; + longitude?: number; - members: MemberResponse[]; + og_scrape_url?: string; - call: CallResponse; + original_height?: number; - capabilities_by_role: Record; + original_width?: number; - type: string; -} + pretext?: string; -export interface CallMissedEvent { - call_cid: string; + stopped_sharing?: boolean; - created_at: Date; + text?: string; - notify_user: boolean; + thumb_url?: string; - session_id: string; + title?: string; - members: MemberResponse[]; + title_link?: string; - call: CallResponse; + type?: string; - user: UserResponse; + actions?: Array; - type: string; -} + fields?: Array; -export interface CallNotificationEvent { - call_cid: string; + giphy?: Images; +} - created_at: Date; +export interface AudioSettings { + access_request_enabled: boolean; - session_id: string; + default_device: 'speaker' | 'earpiece'; - members: MemberResponse[]; + mic_default_on: boolean; - call: CallResponse; + opus_dtx_enabled: boolean; - user: UserResponse; + redundant_coding_enabled: boolean; - type: string; -} + speaker_default_on: boolean; -export interface CallParticipantCountReport { - histogram: ReportByHistogramBucket[]; + noise_cancellation?: NoiseCancellationSettings; } -export interface CallParticipantCountReportResponse { - daily: DailyAggregateCallParticipantCountReportResponse[]; -} +export interface AudioSettingsRequest { + default_device: 'speaker' | 'earpiece'; -export interface CallParticipantResponse { - joined_at: Date; + access_request_enabled?: boolean; - role: string; + mic_default_on?: boolean; - user_session_id: string; + opus_dtx_enabled?: boolean; - user: UserResponse; -} + redundant_coding_enabled?: boolean; -export interface CallReactionEvent { - call_cid: string; + speaker_default_on?: boolean; - created_at: Date; + noise_cancellation?: NoiseCancellationSettings; +} - reaction: ReactionResponse; +export interface AudioSettingsResponse { + access_request_enabled: boolean; - type: string; -} + default_device: 'speaker' | 'earpiece'; -export interface CallRecording { - end_time: Date; + mic_default_on: boolean; - filename: string; + opus_dtx_enabled: boolean; - session_id: string; + redundant_coding_enabled: boolean; - start_time: Date; + speaker_default_on: boolean; - url: string; + noise_cancellation?: NoiseCancellationSettings; } -export interface CallRecordingFailedEvent { - call_cid: string; +export interface AutomodDetails { + action?: string; - created_at: Date; + original_message_type?: string; - egress_id: string; + image_labels?: Array; - type: string; + message_details?: FlagMessageDetails; + + result?: MessageModerationResult; } -export interface CallRecordingReadyEvent { - call_cid: string; +export interface AutomodPlatformCircumventionConfig { + enabled: boolean; - created_at: Date; + rules: Array; - egress_id: string; + async?: boolean; +} - call_recording: CallRecording; +export interface AutomodRule { + action: + | 'flag' + | 'shadow' + | 'remove' + | 'bounce' + | 'bounce_flag' + | 'bounce_remove'; - type: string; -} + label: string; -export interface CallRecordingStartedEvent { - call_cid: string; + threshold: number; +} - created_at: Date; +export interface AutomodSemanticFiltersConfig { + enabled: boolean; - egress_id: string; + rules: Array; - type: string; + async?: boolean; } -export interface CallRecordingStoppedEvent { - call_cid: string; - - created_at: Date; +export interface AutomodSemanticFiltersRule { + action: 'flag' | 'shadow' | 'remove'; - egress_id: string; + name: string; - type: string; + threshold: number; } -export interface CallRejectedEvent { - call_cid: string; +export interface AutomodToxicityConfig { + enabled: boolean; - created_at: Date; + rules: Array; - call: CallResponse; + async?: boolean; +} - user: UserResponse; +export interface AzureRequest { + abs_account_name: string; - type: string; + abs_client_id: string; - reason?: string; + abs_client_secret: string; + + abs_tenant_id: string; } -export interface CallReportResponse { - score: number; +export interface BackstageSettings { + enabled: boolean; - ended_at?: Date; + join_ahead_time_seconds?: number; +} - started_at?: Date; +export interface BackstageSettingsRequest { + enabled?: boolean; + + join_ahead_time_seconds?: number; } -export interface CallRequest { - channel_cid?: string; +export interface BackstageSettingsResponse { + enabled: boolean; - created_by_id?: string; + join_ahead_time_seconds?: number; +} - starts_at?: Date; +export interface Ban { + created_at: Date; - team?: string; + shadow: boolean; - video?: boolean; + expires?: Date; - members?: MemberRequest[]; + reason?: string; - created_by?: UserRequest; + channel?: Channel; - custom?: Record; + created_by?: User; - settings_override?: CallSettingsRequest; + target?: User; } -export interface CallResponse { - backstage: boolean; - - captioning: boolean; +export interface BanActionRequest { + channel_ban_only?: boolean; - cid: string; + delete_messages?: 'soft' | 'pruning' | 'hard'; - created_at: Date; + ip_ban?: boolean; - current_session_id: string; + reason?: string; - id: string; + shadow?: boolean; - recording: boolean; + timeout?: number; +} - transcribing: boolean; +export interface BanRequest { + target_user_id: string; - type: string; + banned_by_id?: string; - updated_at: Date; + channel_cid?: string; - blocked_user_ids: string[]; + delete_messages?: 'soft' | 'pruning' | 'hard'; - created_by: UserResponse; + ip_ban?: boolean; - custom: Record; + reason?: string; - egress: EgressResponse; + shadow?: boolean; - ingress: CallIngressResponse; + timeout?: number; - settings: CallSettingsResponse; + banned_by?: UserRequest; +} - channel_cid?: string; +export interface BanResponse { + created_at: Date; - ended_at?: Date; + expires?: Date; - join_ahead_time_seconds?: number; + reason?: string; - starts_at?: Date; + shadow?: boolean; - team?: string; + banned_by?: UserResponse; - session?: CallSessionResponse; + channel?: ChannelResponse; - thumbnails?: ThumbnailResponse; + user?: UserResponse; } -export interface CallRingEvent { - call_cid: string; - - created_at: Date; +export interface BlockListConfig { + enabled: boolean; - session_id: string; + rules: Array; - video: boolean; + async?: boolean; +} - members: MemberResponse[]; +export interface BlockListOptions { + behavior: 'flag' | 'block' | 'shadow_block'; - call: CallResponse; + blocklist: string; +} - user: UserResponse; +export interface BlockListResponse { + name: string; type: string; -} -export interface CallRtmpBroadcastFailedEvent { - call_cid: string; + words: Array; - created_at: Date; + created_at?: Date; - name: string; + id?: string; - type: string; -} + team?: string; -export interface CallRtmpBroadcastStartedEvent { - call_cid: string; + updated_at?: Date; +} - created_at: Date; +export interface BlockListRule { + action: + | 'flag' + | 'mask_flag' + | 'shadow' + | 'remove' + | 'bounce' + | 'bounce_flag' + | 'bounce_remove'; name: string; - type: string; + team: string; } -export interface CallRtmpBroadcastStoppedEvent { - call_cid: string; +export interface BlockUserRequest { + user_id: string; +} - created_at: Date; +export interface BlockUserResponse { + duration: string; +} - name: string; +export interface BlockUsersRequest { + blocked_user_id: string; - type: string; -} + user_id?: string; -export interface CallSessionEndedEvent { - call_cid: string; + user?: UserRequest; +} - created_at: Date; +export interface BlockUsersResponse { + blocked_by_user_id: string; - session_id: string; + blocked_user_id: string; - call: CallResponse; + created_at: Date; - type: string; + duration: string; } -export interface CallSessionParticipantJoinedEvent { +export interface BlockedUserEvent { call_cid: string; created_at: Date; - session_id: string; - - participant: CallParticipantResponse; + user: UserResponse; type: string; + + blocked_by_user?: UserResponse; } -export interface CallSessionParticipantLeftEvent { - call_cid: string; +export interface BlockedUserResponse { + blocked_user_id: string; created_at: Date; - duration_seconds: number; - - session_id: string; + user_id: string; - participant: CallParticipantResponse; + blocked_user: UserResponse; - type: string; + user: UserResponse; } -export interface CallSessionResponse { - anonymous_participant_count: number; +export interface BodyguardRule { + action: + | 'flag' + | 'shadow' + | 'remove' + | 'bounce' + | 'bounce_flag' + | 'bounce_remove'; - id: string; + label: string; - participants: CallParticipantResponse[]; + severity_rules: Array; +} - accepted_by: Record; +export interface BodyguardSeverityRule { + action: + | 'flag' + | 'shadow' + | 'remove' + | 'bounce' + | 'bounce_flag' + | 'bounce_remove'; - missed_by: Record; + severity: 'low' | 'medium' | 'high' | 'critical'; +} - participants_count_by_role: Record; +export interface BookmarkAddedEvent { + created_at: Date; - rejected_by: Record; + bookmark: BookmarkResponse; - ended_at?: Date; + custom: Record; - live_ended_at?: Date; + type: string; - live_started_at?: Date; - - started_at?: Date; + received_at?: Date; - timer_ends_at?: Date; + user?: UserResponseCommonFields; } -export interface CallSessionStartedEvent { - call_cid: string; - +export interface BookmarkDeletedEvent { created_at: Date; - session_id: string; + bookmark: BookmarkResponse; - call: CallResponse; + custom: Record; type: string; -} -export interface CallSettings { - audio?: AudioSettings; + received_at?: Date; - backstage?: BackstageSettings; + user?: UserResponseCommonFields; +} - broadcasting?: BroadcastSettings; +export interface BookmarkFolderResponse { + created_at: Date; - frame_recording?: FrameRecordSettings; + id: string; - geofencing?: GeofenceSettings; + name: string; - limits?: LimitsSettings; + updated_at: Date; - recording?: RecordSettings; + custom?: Record; +} - ring?: RingSettings; +export interface BookmarkResponse { + created_at: Date; - screensharing?: ScreensharingSettings; + updated_at: Date; - session?: SessionSettings; + activity: ActivityResponse; - thumbnails?: ThumbnailsSettings; + user: UserResponse; - transcription?: TranscriptionSettings; + custom?: Record; - video?: VideoSettings; + folder?: BookmarkFolderResponse; } -export interface CallSettingsRequest { - audio?: AudioSettingsRequest; +export interface BookmarkUpdatedEvent { + created_at: Date; - backstage?: BackstageSettingsRequest; + bookmark: BookmarkResponse; - broadcasting?: BroadcastSettingsRequest; + custom: Record; - frame_recording?: FrameRecordingSettingsRequest; + type: string; - geofencing?: GeofenceSettingsRequest; + received_at?: Date; - limits?: LimitsSettingsRequest; + user?: UserResponseCommonFields; +} - recording?: RecordSettingsRequest; +export interface Bound { + inclusive: boolean; - ring?: RingSettingsRequest; + value: number; +} - screensharing?: ScreensharingSettingsRequest; +export interface BroadcastSettings { + enabled: boolean; - session?: SessionSettingsRequest; + hls?: HLSSettings; - thumbnails?: ThumbnailsSettingsRequest; + rtmp?: RTMPSettings; +} - transcription?: TranscriptionSettingsRequest; +export interface BroadcastSettingsRequest { + enabled?: boolean; - video?: VideoSettingsRequest; + hls?: HLSSettingsRequest; + + rtmp?: RTMPSettingsRequest; } -export interface CallSettingsResponse { - audio: AudioSettingsResponse; +export interface BroadcastSettingsResponse { + enabled: boolean; - backstage: BackstageSettingsResponse; + hls: HLSSettingsResponse; - broadcasting: BroadcastSettingsResponse; + rtmp: RTMPSettingsResponse; +} - frame_recording: FrameRecordingSettingsResponse; +export interface BrowserDataResponse { + name?: string; - geofencing: GeofenceSettingsResponse; + version?: string; +} - limits: LimitsSettingsResponse; +export interface BulkImageModerationRequest { + csv_file: string; +} - recording: RecordSettingsResponse; +export interface BulkImageModerationResponse { + duration: string; - ring: RingSettingsResponse; + task_id: string; +} - screensharing: ScreensharingSettingsResponse; +export interface Call { + app_pk: number; - session: SessionSettingsResponse; + backstage: boolean; - thumbnails: ThumbnailsSettingsResponse; + channel_cid: string; - transcription: TranscriptionSettingsResponse; + cid: string; - video: VideoSettingsResponse; -} + created_at: Date; -export interface CallStateResponseFields { - members: MemberResponse[]; + created_by_user_id: string; - own_capabilities: OwnCapability[]; + current_session_id: string; - call: CallResponse; -} + id: string; -export interface CallStatsReportReadyEvent { - call_cid: string; + last_session_id: string; - created_at: Date; + team: string; - session_id: string; + thumbnail_url: string; type: string; -} -export interface CallStatsReportSummaryResponse { - call_cid: string; + updated_at: Date; - call_duration_seconds: number; + blocked_user_i_ds: Array; - call_session_id: string; + blocked_users: Array; - call_status: string; + egresses: Array; - first_stats_time: Date; + members: Array; - created_at?: Date; + custom: Record; - min_user_rating?: number; + deleted_at?: Date; - quality_score?: number; + egress_updated_at?: Date; + + ended_at?: Date; + + join_ahead_time_seconds?: number; + + last_heartbeat_at?: Date; + + member_count?: number; + + starts_at?: Date; + + call_type?: CallType; + + created_by?: User; + + member_lookup?: MemberLookup; + + session?: CallSession; + + settings?: CallSettings; + + settings_overrides?: CallSettings; } -export interface CallTranscription { +export interface CallAcceptedEvent { + call_cid: string; + + created_at: Date; + + call: CallResponse; + + user: UserResponse; + + type: string; +} + +export interface CallClosedCaption { end_time: Date; - filename: string; + speaker_id: string; start_time: Date; - url: string; + text: string; + + user: UserResponse; } -export interface CallTranscriptionFailedEvent { +export interface CallClosedCaptionsFailedEvent { call_cid: string; created_at: Date; - egress_id: string; - type: string; } -export interface CallTranscriptionReadyEvent { +export interface CallClosedCaptionsStartedEvent { call_cid: string; created_at: Date; - egress_id: string; + type: string; +} - call_transcription: CallTranscription; +export interface CallClosedCaptionsStoppedEvent { + call_cid: string; + + created_at: Date; type: string; } -export interface CallTranscriptionStartedEvent { +export interface CallCreatedEvent { call_cid: string; created_at: Date; - egress_id: string; + members: Array; + + call: CallResponse; type: string; } -export interface CallTranscriptionStoppedEvent { +export interface CallDeletedEvent { call_cid: string; created_at: Date; - egress_id: string; + call: CallResponse; type: string; } -export interface CallType { +export interface CallDurationReport { + histogram: Array; +} + +export interface CallDurationReportResponse { + daily: Array; +} + +export interface CallEgress { app_pk: number; - created_at: Date; + call_id: string; - enable_live_insights: boolean; + call_type: string; - external_storage: string; + egress_id: string; - name: string; + egress_type: string; - pk: number; + instance_ip: string; + + started_at: Date; + + state: string; updated_at: Date; - notification_settings?: NotificationSettings; + stopped_at?: Date; - settings?: CallSettings; + config?: EgressTaskConfig; } -export interface CallTypeResponse { - created_at: Date; - - name: string; +export interface CallEndedEvent { + call_cid: string; - updated_at: Date; + created_at: Date; - grants: Record; + call: CallResponse; - notification_settings: NotificationSettings; + type: string; - settings: CallSettingsResponse; + reason?: string; - external_storage?: string; + user?: UserResponse; } -export interface CallUpdatedEvent { +export interface CallFrameRecordingFailedEvent { call_cid: string; created_at: Date; - call: CallResponse; + egress_id: string; - capabilities_by_role: Record; + call: CallResponse; type: string; } -export interface CallUserFeedbackSubmittedEvent { +export interface CallFrameRecordingFrameReadyEvent { call_cid: string; + captured_at: Date; + created_at: Date; - rating: number; + egress_id: string; session_id: string; - user: UserResponse; - - type: string; - - reason?: string; + track_type: string; - sdk?: string; + url: string; - sdk_version?: string; + users: Record; - custom?: Record; + type: string; } -export interface CallUserMutedEvent { +export interface CallFrameRecordingStartedEvent { call_cid: string; created_at: Date; - from_user_id: string; + egress_id: string; - muted_user_ids: string[]; + call: CallResponse; type: string; } -export interface CallsPerDayReport { - count: number; -} - -export interface CallsPerDayReportResponse { - daily: DailyAggregateCallsPerDayReportResponse[]; -} - -export interface CampaignChannelTemplate { - type: string; +export interface CallFrameRecordingStoppedEvent { + call_cid: string; - custom: Record; + created_at: Date; - id?: string; + egress_id: string; - team?: string; + call: CallResponse; - members?: string[]; + type: string; } -export interface CampaignCompletedEvent { - created_at: Date; +export interface CallHLSBroadcastingFailedEvent { + call_cid: string; - custom: Record; + created_at: Date; type: string; - - received_at?: Date; - - campaign?: CampaignResponse; } -export interface CampaignMessageTemplate { - poll_id: string; +export interface CallHLSBroadcastingStartedEvent { + call_cid: string; - text: string; + created_at: Date; - attachments: Attachment[]; + hls_playlist_url: string; - custom: Record; + call: CallResponse; + + type: string; } -export interface CampaignResponse { - create_channels: boolean; +export interface CallHLSBroadcastingStoppedEvent { + call_cid: string; created_at: Date; - description: string; - - id: string; + type: string; +} - name: string; +export interface CallIngressResponse { + rtmp: RTMPIngress; +} - sender_id: string; +export interface CallLiveStartedEvent { + call_cid: string; - sender_mode: string; + created_at: Date; - show_channels: boolean; + call: CallResponse; - skip_push: boolean; + type: string; +} - skip_webhook: boolean; +export interface CallMember { + created_at: Date; - status: string; + role: string; updated_at: Date; - segment_ids: string[]; - - segments: Segment[]; + user_id: string; - user_ids: string[]; + custom: Record; - users: UserResponse[]; + deleted_at?: Date; - stats: CampaignStatsResponse; + user?: User; +} - scheduled_for?: Date; +export interface CallMemberAddedEvent { + call_cid: string; - stop_at?: Date; + created_at: Date; - channel_template?: CampaignChannelTemplate; + members: Array; - message_template?: CampaignMessageTemplate; + call: CallResponse; - sender?: UserResponse; + type: string; } -export interface CampaignStartedEvent { - created_at: Date; +export interface CallMemberRemovedEvent { + call_cid: string; - custom: Record; + created_at: Date; - type: string; + members: Array; - received_at?: Date; + call: CallResponse; - campaign?: CampaignResponse; + type: string; } -export interface CampaignStatsResponse { - progress: number; - - stats_channels_created: number; - - stats_completed_at: Date; +export interface CallMemberUpdatedEvent { + call_cid: string; - stats_messages_sent: number; + created_at: Date; - stats_started_at: Date; + members: Array; - stats_users_read: number; + call: CallResponse; - stats_users_sent: number; + type: string; } -export interface Channel { - auto_translation_language: string; - - cid: string; +export interface CallMemberUpdatedPermissionEvent { + call_cid: string; created_at: Date; - disabled: boolean; + members: Array; - frozen: boolean; + call: CallResponse; - id: string; + capabilities_by_role: Record>; type: string; +} - updated_at: Date; +export interface CallMissedEvent { + call_cid: string; - custom: Record; + created_at: Date; - auto_translation_enabled?: boolean; + notify_user: boolean; - cooldown?: number; + session_id: string; - deleted_at?: Date; + members: Array; - last_campaigns?: string; + call: CallResponse; - last_message_at?: Date; + user: UserResponse; - member_count?: number; + type: string; +} - team?: string; +export interface CallModerationBlurEvent { + call_cid: string; - invites?: ChannelMember[]; + created_at: Date; - members?: ChannelMember[]; + user_id: string; - config?: ChannelConfig; + custom: Record; - config_overrides?: ConfigOverrides; + type: string; +} - created_by?: User; +export interface CallModerationWarningEvent { + call_cid: string; - truncated_by?: User; -} + created_at: Date; -export interface ChannelConfig { - automod: 'disabled' | 'simple' | 'AI'; + message: string; - automod_behavior: 'flag' | 'block' | 'shadow_block'; + user_id: string; - connect_events: boolean; + custom: Record; - created_at: Date; + type: string; +} - custom_events: boolean; +export interface CallNotificationEvent { + call_cid: string; - mark_messages_pending: boolean; + created_at: Date; - max_message_length: number; + session_id: string; - mutes: boolean; + members: Array; - name: string; + call: CallResponse; - polls: boolean; + user: UserResponse; - push_notifications: boolean; + type: string; +} - quotes: boolean; +export interface CallParticipant { + banned: boolean; - reactions: boolean; + id: string; - read_events: boolean; + joined_at: Date; - reminders: boolean; + online: boolean; - replies: boolean; + role: string; - search: boolean; + user_session_id: string; - skip_last_msg_update_for_system_msgs: boolean; + custom: Record; - typing_events: boolean; + teams_role: Record; - updated_at: Date; + ban_expires?: Date; - uploads: boolean; + created_at?: Date; - url_enrichment: boolean; + deactivated_at?: Date; - commands: string[]; + deleted_at?: Date; - blocklist?: string; + invisible?: boolean; - blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; + language?: string; - partition_size?: number; + last_active?: Date; - partition_ttl?: string; + last_engaged_at?: Date; + + revoke_tokens_issued_before?: Date; - allowed_flag_reasons?: string[]; + updated_at?: Date; - blocklists?: BlockListOptions[]; + teams?: Array; - automod_thresholds?: Thresholds; + privacy_settings?: PrivacySettings; } -export interface ChannelConfigWithInfo { - automod: 'disabled' | 'simple' | 'AI'; +export interface CallParticipantCountReport { + histogram: Array; +} - automod_behavior: 'flag' | 'block' | 'shadow_block'; +export interface CallParticipantCountReportResponse { + daily: Array; +} - connect_events: boolean; +export interface CallParticipantResponse { + joined_at: Date; - created_at: Date; + role: string; - custom_events: boolean; + user_session_id: string; - mark_messages_pending: boolean; + user: UserResponse; +} - max_message_length: number; +export interface CallReactionEvent { + call_cid: string; - mutes: boolean; + created_at: Date; - name: string; + reaction: ReactionResponse; - polls: boolean; + type: string; +} - push_notifications: boolean; +export interface CallRecording { + end_time: Date; - quotes: boolean; + filename: string; - reactions: boolean; + session_id: string; - read_events: boolean; + start_time: Date; - reminders: boolean; + url: string; +} - replies: boolean; +export interface CallRecordingFailedEvent { + call_cid: string; - search: boolean; + created_at: Date; - skip_last_msg_update_for_system_msgs: boolean; + egress_id: string; - typing_events: boolean; + type: string; +} - updated_at: Date; +export interface CallRecordingReadyEvent { + call_cid: string; - uploads: boolean; + created_at: Date; - url_enrichment: boolean; + egress_id: string; - commands: Command[]; + call_recording: CallRecording; - blocklist?: string; + type: string; +} - blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; +export interface CallRecordingStartedEvent { + call_cid: string; - partition_size?: number; + created_at: Date; - partition_ttl?: string; + egress_id: string; - allowed_flag_reasons?: string[]; + type: string; +} - blocklists?: BlockListOptions[]; +export interface CallRecordingStoppedEvent { + call_cid: string; - automod_thresholds?: Thresholds; + created_at: Date; - grants?: Record; + egress_id: string; + + type: string; } -export interface ChannelCreatedEvent { +export interface CallRejectedEvent { + call_cid: string; + created_at: Date; + call: CallResponse; + + user: UserResponse; + type: string; + + reason?: string; } -export interface ChannelDeletedEvent { - channel_id: string; +export interface CallReportResponse { + score: number; - channel_member_count: number; + ended_at?: Date; - channel_type: string; + started_at?: Date; +} - cid: string; +export interface CallRequest { + channel_cid?: string; - created_at: Date; + created_by_id?: string; - type: string; + starts_at?: Date; team?: string; - channel?: ChannelResponse; -} - -export interface ChannelExport { - cid?: string; + video?: boolean; - id?: string; + members?: Array; - messages_since?: Date; + created_by?: UserRequest; - messages_until?: Date; + custom?: Record; - type?: string; + settings_override?: CallSettingsRequest; } -export interface ChannelFrozenEvent { - channel_id: string; +export interface CallResponse { + backstage: boolean; - channel_type: string; + captioning: boolean; cid: string; created_at: Date; + current_session_id: string; + + id: string; + + recording: boolean; + + transcribing: boolean; + type: string; -} -export interface ChannelGetOrCreateRequest { - hide_for_creator?: boolean; + updated_at: Date; - state?: boolean; + blocked_user_ids: Array; - thread_unread_counts?: boolean; + created_by: UserResponse; - data?: ChannelInput; + custom: Record; - members?: PaginationParams; + egress: EgressResponse; - messages?: MessagePaginationParams; + ingress: CallIngressResponse; - watchers?: PaginationParams; -} + settings: CallSettingsResponse; -export interface ChannelHiddenEvent { - channel_id: string; + channel_cid?: string; - channel_member_count: number; + ended_at?: Date; - channel_type: string; + join_ahead_time_seconds?: number; - cid: string; + starts_at?: Date; - clear_history: boolean; + team?: string; + + session?: CallSessionResponse; + + thumbnails?: ThumbnailResponse; +} + +export interface CallRingEvent { + call_cid: string; created_at: Date; - type: string; + session_id: string; - channel?: ChannelResponse; + video: boolean; - user?: User; + members: Array; + + call: CallResponse; + + user: UserResponse; + + type: string; } -export interface ChannelInput { - auto_translation_enabled?: boolean; +export interface CallRtmpBroadcastFailedEvent { + call_cid: string; - auto_translation_language?: string; + created_at: Date; - created_by_id?: string; + name: string; - disabled?: boolean; + type: string; +} - frozen?: boolean; +export interface CallRtmpBroadcastStartedEvent { + call_cid: string; - team?: string; + created_at: Date; - truncated_by_id?: string; + name: string; - invites?: ChannelMember[]; + type: string; +} - members?: ChannelMember[]; +export interface CallRtmpBroadcastStoppedEvent { + call_cid: string; - config_overrides?: ChannelConfig; + created_at: Date; - created_by?: UserRequest; + name: string; - custom?: Record; + type: string; } -export interface ChannelMember { - banned: boolean; +export interface CallSession { + anonymous_participant_count: number; - channel_role: string; + app_pk: number; + + call_id: string; + + call_type: string; created_at: Date; - notifications_muted: boolean; + session_id: string; - shadow_banned: boolean; + active_sf_us: Array; - updated_at: Date; + participants: Array; - custom: Record; + sfui_ds: Array; - archived_at?: Date; + accepted_by: Record; - ban_expires?: Date; + missed_by: Record; - deleted_at?: Date; + participants_count_by_role: Record; - invite_accepted_at?: Date; + rejected_by: Record; - invite_rejected_at?: Date; + user_permission_overrides: Record>; - invited?: boolean; + deleted_at?: Date; - is_moderator?: boolean; + ended_at?: Date; - pinned_at?: Date; + live_ended_at?: Date; - role?: 'member' | 'moderator' | 'admin' | 'owner'; + live_started_at?: Date; - status?: string; + ring_at?: Date; - user_id?: string; + started_at?: Date; - user?: UserResponse; + timer_ends_at?: Date; } -export interface ChannelMemberResponse { - banned: boolean; - - channel_role: string; +export interface CallSessionEndedEvent { + call_cid: string; created_at: Date; - notifications_muted: boolean; + session_id: string; - shadow_banned: boolean; + call: CallResponse; - updated_at: Date; + type: string; +} - custom: Record; +export interface CallSessionParticipantJoinedEvent { + call_cid: string; - archived_at?: Date; + created_at: Date; - ban_expires?: Date; + session_id: string; - deleted_at?: Date; + participant: CallParticipantResponse; - invite_accepted_at?: Date; + type: string; +} - invite_rejected_at?: Date; +export interface CallSessionParticipantLeftEvent { + call_cid: string; - invited?: boolean; + created_at: Date; - is_moderator?: boolean; + duration_seconds: number; - pinned_at?: Date; + session_id: string; - role?: 'member' | 'moderator' | 'admin' | 'owner'; + participant: CallParticipantResponse; - status?: string; + type: string; +} - user_id?: string; +export interface CallSessionResponse { + anonymous_participant_count: number; - user?: UserResponse; -} + id: string; -export interface ChannelMessages { - messages: Message[]; + participants: Array; - channel?: ChannelResponse; -} + accepted_by: Record; -export interface ChannelMute { - created_at: Date; + missed_by: Record; - updated_at: Date; + participants_count_by_role: Record; - expires?: Date; + rejected_by: Record; - channel?: ChannelResponse; + ended_at?: Date; - user?: UserResponse; -} + live_ended_at?: Date; -export interface ChannelMutedEvent { - created_at: Date; + live_started_at?: Date; - type: string; + started_at?: Date; + + timer_ends_at?: Date; } -export const ChannelOwnCapability = { - BAN_CHANNEL_MEMBERS: 'ban-channel-members', - CAST_POLL_VOTE: 'cast-poll-vote', - CONNECT_EVENTS: 'connect-events', - CREATE_ATTACHMENT: 'create-attachment', - DELETE_ANY_MESSAGE: 'delete-any-message', - DELETE_CHANNEL: 'delete-channel', - DELETE_OWN_MESSAGE: 'delete-own-message', - FLAG_MESSAGE: 'flag-message', - FREEZE_CHANNEL: 'freeze-channel', - JOIN_CHANNEL: 'join-channel', - LEAVE_CHANNEL: 'leave-channel', - MUTE_CHANNEL: 'mute-channel', - PIN_MESSAGE: 'pin-message', - QUERY_POLL_VOTES: 'query-poll-votes', - QUOTE_MESSAGE: 'quote-message', - READ_EVENTS: 'read-events', - SEARCH_MESSAGES: 'search-messages', - SEND_CUSTOM_EVENTS: 'send-custom-events', - SEND_LINKS: 'send-links', - SEND_MESSAGE: 'send-message', - SEND_POLL: 'send-poll', - SEND_REACTION: 'send-reaction', - SEND_REPLY: 'send-reply', - SEND_RESTRICTED_VISIBILITY_MESSAGE: 'send-restricted-visibility-message', - SEND_TYPING_EVENTS: 'send-typing-events', - SET_CHANNEL_COOLDOWN: 'set-channel-cooldown', - SKIP_SLOW_MODE: 'skip-slow-mode', - SLOW_MODE: 'slow-mode', - TYPING_EVENTS: 'typing-events', - UPDATE_ANY_MESSAGE: 'update-any-message', - UPDATE_CHANNEL: 'update-channel', - UPDATE_CHANNEL_MEMBERS: 'update-channel-members', - UPDATE_OWN_MESSAGE: 'update-own-message', - UPDATE_THREAD: 'update-thread', - UPLOAD_FILE: 'upload-file', -} as const; +export interface CallSessionStartedEvent { + call_cid: string; -// eslint-disable-next-line @typescript-eslint/no-redeclare -export type ChannelOwnCapability = - (typeof ChannelOwnCapability)[keyof typeof ChannelOwnCapability]; + created_at: Date; -export interface ChannelPushPreferences { - chat_level?: string; + session_id: string; - disabled_until?: Date; + call: CallResponse; + + type: string; } -export interface ChannelResponse { - cid: string; +export interface CallSettings { + audio?: AudioSettings; - created_at: Date; + backstage?: BackstageSettings; - disabled: boolean; + broadcasting?: BroadcastSettings; - frozen: boolean; + frame_recording?: FrameRecordSettings; - id: string; + geofencing?: GeofenceSettings; - type: string; + limits?: LimitsSettings; - updated_at: Date; + recording?: RecordSettings; - custom: Record; + ring?: RingSettings; - auto_translation_enabled?: boolean; + screensharing?: ScreensharingSettings; - auto_translation_language?: string; + session?: SessionSettings; - blocked?: boolean; + thumbnails?: ThumbnailsSettings; - cooldown?: number; + transcription?: TranscriptionSettings; - deleted_at?: Date; + video?: VideoSettings; +} - hidden?: boolean; +export interface CallSettingsRequest { + audio?: AudioSettingsRequest; - hide_messages_before?: Date; + backstage?: BackstageSettingsRequest; - last_message_at?: Date; + broadcasting?: BroadcastSettingsRequest; - member_count?: number; + frame_recording?: FrameRecordingSettingsRequest; - mute_expires_at?: Date; + geofencing?: GeofenceSettingsRequest; - muted?: boolean; + limits?: LimitsSettingsRequest; - team?: string; + recording?: RecordSettingsRequest; - truncated_at?: Date; + ring?: RingSettingsRequest; - members?: ChannelMember[]; + screensharing?: ScreensharingSettingsRequest; - own_capabilities?: ChannelOwnCapability[]; + session?: SessionSettingsRequest; - config?: ChannelConfigWithInfo; + thumbnails?: ThumbnailsSettingsRequest; - created_by?: UserResponse; + transcription?: TranscriptionSettingsRequest; - truncated_by?: UserResponse; + video?: VideoSettingsRequest; } -export interface ChannelStateResponse { - duration: string; +export interface CallSettingsResponse { + audio: AudioSettingsResponse; - members: ChannelMember[]; + backstage: BackstageSettingsResponse; - messages: MessageResponse[]; + broadcasting: BroadcastSettingsResponse; - pinned_messages: MessageResponse[]; + frame_recording: FrameRecordingSettingsResponse; - threads: ThreadStateResponse[]; + geofencing: GeofenceSettingsResponse; - hidden?: boolean; + limits: LimitsSettingsResponse; - hide_messages_before?: Date; + recording: RecordSettingsResponse; - watcher_count?: number; + ring: RingSettingsResponse; - pending_messages?: PendingMessageResponse[]; + screensharing: ScreensharingSettingsResponse; - read?: ReadStateResponse[]; + session: SessionSettingsResponse; - watchers?: UserResponse[]; + thumbnails: ThumbnailsSettingsResponse; - channel?: ChannelResponse; + transcription: TranscriptionSettingsResponse; - draft?: DraftResponse; + video: VideoSettingsResponse; +} - membership?: ChannelMember; +export interface CallStateResponseFields { + members: Array; - push_preferences?: ChannelPushPreferences; + own_capabilities: Array; + + call: CallResponse; } -export interface ChannelStateResponseFields { - members: ChannelMember[]; +export interface CallStatsReportReadyEvent { + call_cid: string; - messages: MessageResponse[]; + created_at: Date; - pinned_messages: MessageResponse[]; + session_id: string; - threads: ThreadStateResponse[]; + type: string; +} - hidden?: boolean; +export interface CallStatsReportSummaryResponse { + call_cid: string; - hide_messages_before?: Date; + call_duration_seconds: number; - watcher_count?: number; + call_session_id: string; - pending_messages?: PendingMessageResponse[]; + call_status: string; - read?: ReadStateResponse[]; + first_stats_time: Date; - watchers?: UserResponse[]; + created_at?: Date; - channel?: ChannelResponse; + min_user_rating?: number; - draft?: DraftResponse; + quality_score?: number; +} - membership?: ChannelMember; +export interface CallTranscription { + end_time: Date; - push_preferences?: ChannelPushPreferences; -} + filename: string; -export interface ChannelTruncatedEvent { - channel_id: string; + session_id: string; - channel_member_count: number; + start_time: Date; - channel_type: string; + url: string; +} - cid: string; +export interface CallTranscriptionFailedEvent { + call_cid: string; created_at: Date; + egress_id: string; + type: string; - channel?: ChannelResponse; + error?: string; } -export interface ChannelTypeConfig { - automod: 'disabled' | 'simple' | 'AI'; - - automod_behavior: 'flag' | 'block' | 'shadow_block'; - - connect_events: boolean; +export interface CallTranscriptionReadyEvent { + call_cid: string; created_at: Date; - custom_events: boolean; - - mark_messages_pending: boolean; - - max_message_length: number; + egress_id: string; - mutes: boolean; + call_transcription: CallTranscription; - name: string; + type: string; +} - polls: boolean; +export interface CallTranscriptionStartedEvent { + call_cid: string; - push_notifications: boolean; + created_at: Date; - quotes: boolean; + egress_id: string; - reactions: boolean; + type: string; +} - read_events: boolean; +export interface CallTranscriptionStoppedEvent { + call_cid: string; - reminders: boolean; + created_at: Date; - replies: boolean; + egress_id: string; - search: boolean; + type: string; +} - skip_last_msg_update_for_system_msgs: boolean; +export interface CallType { + app_pk: number; - typing_events: boolean; + created_at: Date; - updated_at: Date; + external_storage: string; - uploads: boolean; + name: string; - url_enrichment: boolean; + pk: number; - commands: Command[]; + updated_at: Date; - permissions: PolicyRequest[]; + notification_settings?: NotificationSettings; - grants: Record; + settings?: CallSettings; +} - blocklist?: string; +export interface CallTypeResponse { + created_at: Date; - blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; + name: string; - partition_size?: number; + updated_at: Date; - partition_ttl?: string; + grants: Record>; - allowed_flag_reasons?: string[]; + notification_settings: NotificationSettings; - blocklists?: BlockListOptions[]; + settings: CallSettingsResponse; - automod_thresholds?: Thresholds; + external_storage?: string; } -export interface ChannelUnFrozenEvent { - channel_id: string; +export interface CallUpdatedEvent { + call_cid: string; - channel_type: string; + created_at: Date; - cid: string; + call: CallResponse; - created_at: Date; + capabilities_by_role: Record>; type: string; } -export interface ChannelUnmutedEvent { +export interface CallUserFeedbackSubmittedEvent { + call_cid: string; + created_at: Date; - type: string; -} + rating: number; -export interface ChannelUpdatedEvent { - channel_id: string; - - channel_member_count: number; - - channel_type: string; - - cid: string; + session_id: string; - created_at: Date; + user: UserResponse; type: string; - team?: string; + reason?: string; - channel?: ChannelResponse; + sdk?: string; - message?: Message; + sdk_version?: string; - user?: User; + custom?: Record; } -export interface ChannelVisibleEvent { - channel_id: string; +export interface CallUserMutedEvent { + call_cid: string; - channel_type: string; + created_at: Date; - cid: string; + from_user_id: string; - created_at: Date; + muted_user_ids: Array; type: string; - - user?: User; } -export interface ChatActivityStatsResponse { - messages?: MessageStatsResponse; +export interface CallsPerDayReport { + count: number; } -export interface CheckExternalStorageResponse { - duration: string; - - file_url: string; +export interface CallsPerDayReportResponse { + daily: Array; } -export interface CheckPushRequest { - apn_template?: string; +export interface CampaignChannelTemplate { + type: string; - firebase_data_template?: string; + custom: Record; - firebase_template?: string; + id?: string; - message_id?: string; + team?: string; - push_provider_name?: string; + members?: Array; +} - push_provider_type?: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; +export interface CampaignCompletedEvent { + created_at: Date; - skip_devices?: boolean; + custom: Record; - user_id?: string; + type: string; - user?: UserRequest; + received_at?: Date; + + campaign?: CampaignResponse; } -export interface CheckPushResponse { - duration: string; +export interface CampaignMessageTemplate { + poll_id: string; - rendered_apn_template?: string; + text: string; - rendered_firebase_template?: string; + attachments: Array; - skip_devices?: boolean; + custom: Record; +} - general_errors?: string[]; +export interface CampaignResponse { + create_channels: boolean; - device_errors?: Record; + created_at: Date; - rendered_message?: Record; -} + description: string; -export interface CheckRequest { - config_key: string; + id: string; - entity_creator_id: string; + name: string; - entity_id: string; + sender_id: string; - entity_type: string; + sender_mode: string; - config_team?: string; + show_channels: boolean; - test_mode?: boolean; + skip_push: boolean; - user_id?: string; + skip_webhook: boolean; - moderation_payload?: ModerationPayload; + status: string; - options?: Record; + updated_at: Date; - user?: UserRequest; -} + segment_ids: Array; -export interface CheckResponse { - duration: string; + segments: Array; - recommended_action: string; + user_ids: Array; - status: string; + users: Array; - task_id?: string; + stats: CampaignStatsResponse; - item?: ReviewQueueItem; -} + scheduled_for?: Date; -export interface CheckSNSRequest { - sns_key?: string; + stop_at?: Date; - sns_secret?: string; + channel_template?: CampaignChannelTemplate; - sns_topic_arn?: string; + message_template?: CampaignMessageTemplate; + + sender?: UserResponse; } -export interface CheckSNSResponse { - duration: string; +export interface CampaignStartedEvent { + created_at: Date; - status: 'ok' | 'error'; + custom: Record; - error?: string; + type: string; - data?: Record; + received_at?: Date; + + campaign?: CampaignResponse; } -export interface CheckSQSRequest { - sqs_key?: string; +export interface CampaignStatsResponse { + progress: number; - sqs_secret?: string; + stats_channels_created: number; - sqs_url?: string; -} + stats_completed_at: Date; -export interface CheckSQSResponse { - duration: string; + stats_messages_sent: number; - status: 'ok' | 'error'; + stats_started_at: Date; - error?: string; + stats_users_read: number; - data?: Record; + stats_users_sent: number; } -export interface ClientOSDataResponse { - architecture?: string; +export interface CastPollVoteRequest { + user_id?: string; - name?: string; + user?: UserRequest; - version?: string; + vote?: VoteData; } -export interface ClosedCaptionEvent { - call_cid: string; +export interface Channel { + auto_translation_language: string; + + cid: string; created_at: Date; - closed_caption: CallClosedCaption; + disabled: boolean; + + frozen: boolean; + + id: string; type: string; -} -export interface CollectUserFeedbackRequest { - rating: number; + updated_at: Date; - sdk: string; + custom: Record; - sdk_version: string; + auto_translation_enabled?: boolean; - reason?: string; + cooldown?: number; - user_session_id?: string; + deleted_at?: Date; - custom?: Record; -} + last_campaigns?: string; -export interface CollectUserFeedbackResponse { - duration: string; -} + last_message_at?: Date; -export interface Command { - args: string; + member_count?: number; - description: string; + team?: string; - name: string; + invites?: Array; - set: string; + members?: Array; - created_at?: Date; + config?: ChannelConfig; - updated_at?: Date; + config_overrides?: ConfigOverrides; + + created_by?: User; + + truncated_by?: User; } -export interface CommitMessageRequest {} +export interface ChannelConfig { + automod: 'disabled' | 'simple' | 'AI'; -export interface ConfigOverrides { - commands: string[]; + automod_behavior: 'flag' | 'block' | 'shadow_block'; - grants: Record; + connect_events: boolean; - blocklist?: string; + created_at: Date; - blocklist_behavior?: 'flag' | 'block'; + custom_events: boolean; - max_message_length?: number; + mark_messages_pending: boolean; - quotes?: boolean; + max_message_length: number; - reactions?: boolean; + mutes: boolean; - replies?: boolean; + name: string; - typing_events?: boolean; + polls: boolean; - uploads?: boolean; + push_notifications: boolean; - url_enrichment?: boolean; -} + quotes: boolean; -export interface ConfigResponse { - async: boolean; + reactions: boolean; - created_at: Date; + read_events: boolean; - key: string; + reminders: boolean; - team: string; + replies: boolean; + + search: boolean; + + skip_last_msg_update_for_system_msgs: boolean; + + typing_events: boolean; updated_at: Date; - ai_image_config?: AIImageConfig; + uploads: boolean; - ai_text_config?: AITextConfig; + url_enrichment: boolean; - ai_video_config?: AIVideoConfig; + user_message_reminders: boolean; - automod_platform_circumvention_config?: AutomodPlatformCircumventionConfig; + commands: Array; - automod_semantic_filters_config?: AutomodSemanticFiltersConfig; + blocklist?: string; - automod_toxicity_config?: AutomodToxicityConfig; + blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; - block_list_config?: BlockListConfig; + partition_size?: number; - velocity_filter_config?: VelocityFilterConfig; -} + partition_ttl?: number; -export interface CountByMinuteResponse { - count: number; + allowed_flag_reasons?: Array; - start_ts: Date; -} - -export interface CreateBlockListRequest { - name: string; - - words: string[]; - - team?: string; - - type?: 'regex' | 'domain' | 'domain_allowlist' | 'email' | 'word'; -} - -export interface CreateBlockListResponse { - duration: string; - - blocklist?: BlockListResponse; -} - -export interface CreateCallTypeRequest { - name: string; - - external_storage?: string; - - grants?: Record; - - notification_settings?: NotificationSettings; - - settings?: CallSettingsRequest; -} - -export interface CreateCallTypeResponse { - created_at: Date; - - duration: string; - - name: string; - - updated_at: Date; - - grants: Record; - - notification_settings: NotificationSettings; - - settings: CallSettingsResponse; - - external_storage?: string; -} - -export interface CreateChannelTypeRequest { - automod: 'disabled' | 'simple' | 'AI'; - - automod_behavior: 'flag' | 'block'; - - max_message_length: number; - - name: string; - - blocklist?: string; - - blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; - - connect_events?: boolean; - - custom_events?: boolean; - - mark_messages_pending?: boolean; + blocklists?: Array; - message_retention?: 'infinite' | 'numeric'; - - mutes?: boolean; - - partition_size?: number; - - partition_ttl?: string; - - polls?: boolean; - - push_notifications?: boolean; - - reactions?: boolean; - - read_events?: boolean; - - replies?: boolean; - - search?: boolean; - - skip_last_msg_update_for_system_msgs?: boolean; - - typing_events?: boolean; - - uploads?: boolean; - - url_enrichment?: boolean; - - blocklists?: BlockListOptions[]; - - commands?: string[]; - - permissions?: PolicyRequest[]; - - grants?: Record; + automod_thresholds?: Thresholds; } -export interface CreateChannelTypeResponse { +export interface ChannelConfigWithInfo { automod: 'disabled' | 'simple' | 'AI'; automod_behavior: 'flag' | 'block' | 'shadow_block'; @@ -2668,8 +2654,6 @@ export interface CreateChannelTypeResponse { custom_events: boolean; - duration: string; - mark_messages_pending: boolean; max_message_length: number; @@ -2704,11 +2688,9 @@ export interface CreateChannelTypeResponse { url_enrichment: boolean; - commands: string[]; + user_message_reminders: boolean; - permissions: PolicyRequest[]; - - grants: Record; + commands: Array; blocklist?: string; @@ -2718,743 +2700,2469 @@ export interface CreateChannelTypeResponse { partition_ttl?: string; - allowed_flag_reasons?: string[]; + allowed_flag_reasons?: Array; - blocklists?: BlockListOptions[]; + blocklists?: Array; automod_thresholds?: Thresholds; -} - -export interface CreateCommandRequest { - description: string; - name: string; + grants?: Record>; +} - args?: string; +export interface ChannelCreatedEvent { + created_at: Date; - set?: string; + type: string; } -export interface CreateCommandResponse { - duration: string; +export interface ChannelDeletedEvent { + channel_id: string; - command?: Command; -} + channel_member_count: number; -export interface CreateDeviceRequest { - id: string; + channel_type: string; - push_provider: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; + cid: string; - push_provider_name?: string; + created_at: Date; - user_id?: string; + type: string; - voip_token?: boolean; + team?: string; - user?: UserRequest; + channel?: ChannelResponse; } -export interface CreateExternalStorageRequest { - bucket: string; +export interface ChannelExport { + cid?: string; - name: string; + id?: string; - storage_type: 's3' | 'gcs' | 'abs'; + messages_since?: Date; - gcs_credentials?: string; + messages_until?: Date; - path?: string; + type?: string; +} - aws_s3?: S3Request; +export interface ChannelFrozenEvent { + channel_id: string; - azure_blob?: AzureRequest; -} + channel_type: string; -export interface CreateExternalStorageResponse { - duration: string; -} + cid: string; -export interface CreateGuestRequest { - user: UserRequest; + created_at: Date; + + type: string; } -export interface CreateGuestResponse { - access_token: string; +export interface ChannelGetOrCreateRequest { + hide_for_creator?: boolean; - duration: string; + state?: boolean; - user: UserResponse; -} + thread_unread_counts?: boolean; -export interface CreateImportRequest { - mode: 'insert' | 'upsert'; + data?: ChannelInput; - path: string; -} + members?: PaginationParams; -export interface CreateImportResponse { - duration: string; + messages?: MessagePaginationParams; - import_task?: ImportTask; + watchers?: PaginationParams; } -export interface CreateImportURLRequest { - filename?: string; -} +export interface ChannelHiddenEvent { + channel_id: string; -export interface CreateImportURLResponse { - duration: string; + channel_member_count: number; - path: string; + channel_type: string; - upload_url: string; -} + cid: string; -export interface CreateRoleRequest { - name: string; -} + clear_history: boolean; -export interface CreateRoleResponse { - duration: string; + created_at: Date; - role: Role; -} + type: string; -export interface CustomActionRequest { - id?: string; + channel?: ChannelResponse; - options?: Record; + user?: User; } -export interface CustomCheckFlag { - type: string; +export interface ChannelInput { + auto_translation_enabled?: boolean; - reason?: string; + auto_translation_language?: string; - labels?: string[]; + created_by_id?: string; - custom?: Record; -} + disabled?: boolean; -export interface CustomCheckRequest { - entity_id: string; + frozen?: boolean; - entity_type: string; + team?: string; + + truncated_by_id?: string; - flags: CustomCheckFlag[]; + invites?: Array; - entity_creator_id?: string; + members?: Array; - user_id?: string; + config_overrides?: ChannelConfig; - moderation_payload?: ModerationPayload; + created_by?: UserRequest; - user?: UserRequest; + custom?: Record; } -export interface CustomCheckResponse { - duration: string; +export interface ChannelMember { + banned: boolean; - id: string; + channel_role: string; - status: string; + created_at: Date; - item?: ReviewQueueItemResponse; -} + notifications_muted: boolean; -export interface CustomVideoEvent { - call_cid: string; + shadow_banned: boolean; - created_at: Date; + updated_at: Date; custom: Record; - user: UserResponse; + archived_at?: Date; - type: string; -} + ban_expires?: Date; -export interface DailyAggregateCallDurationReportResponse { - date: string; + deleted_at?: Date; + + invite_accepted_at?: Date; + + invite_rejected_at?: Date; + + invited?: boolean; + + is_moderator?: boolean; + + pinned_at?: Date; + + role?: 'member' | 'moderator' | 'admin' | 'owner'; + + status?: string; + + user_id?: string; + + user?: UserResponse; +} + +export interface ChannelMemberResponse { + banned: boolean; + + channel_role: string; + + created_at: Date; + + notifications_muted: boolean; + + shadow_banned: boolean; + + updated_at: Date; + + custom: Record; + + archived_at?: Date; + + ban_expires?: Date; + + deleted_at?: Date; + + invite_accepted_at?: Date; + + invite_rejected_at?: Date; + + invited?: boolean; + + is_moderator?: boolean; + + pinned_at?: Date; + + role?: 'member' | 'moderator' | 'admin' | 'owner'; + + status?: string; + + user_id?: string; + + user?: UserResponse; +} + +export interface ChannelMessages { + messages: Array; + + channel?: ChannelResponse; +} + +export interface ChannelMute { + created_at: Date; + + updated_at: Date; + + expires?: Date; + + channel?: ChannelResponse; + + user?: UserResponse; +} + +export interface ChannelMutedEvent { + created_at: Date; + + type: string; +} + +export const ChannelOwnCapability = { + BAN_CHANNEL_MEMBERS: 'ban-channel-members', + CAST_POLL_VOTE: 'cast-poll-vote', + CONNECT_EVENTS: 'connect-events', + CREATE_ATTACHMENT: 'create-attachment', + DELETE_ANY_MESSAGE: 'delete-any-message', + DELETE_CHANNEL: 'delete-channel', + DELETE_OWN_MESSAGE: 'delete-own-message', + FLAG_MESSAGE: 'flag-message', + FREEZE_CHANNEL: 'freeze-channel', + JOIN_CHANNEL: 'join-channel', + LEAVE_CHANNEL: 'leave-channel', + MUTE_CHANNEL: 'mute-channel', + PIN_MESSAGE: 'pin-message', + QUERY_POLL_VOTES: 'query-poll-votes', + QUOTE_MESSAGE: 'quote-message', + READ_EVENTS: 'read-events', + SEARCH_MESSAGES: 'search-messages', + SEND_CUSTOM_EVENTS: 'send-custom-events', + SEND_LINKS: 'send-links', + SEND_MESSAGE: 'send-message', + SEND_POLL: 'send-poll', + SEND_REACTION: 'send-reaction', + SEND_REPLY: 'send-reply', + SEND_RESTRICTED_VISIBILITY_MESSAGE: 'send-restricted-visibility-message', + SEND_TYPING_EVENTS: 'send-typing-events', + SET_CHANNEL_COOLDOWN: 'set-channel-cooldown', + SKIP_SLOW_MODE: 'skip-slow-mode', + SLOW_MODE: 'slow-mode', + TYPING_EVENTS: 'typing-events', + UPDATE_ANY_MESSAGE: 'update-any-message', + UPDATE_CHANNEL: 'update-channel', + UPDATE_CHANNEL_MEMBERS: 'update-channel-members', + UPDATE_OWN_MESSAGE: 'update-own-message', + UPDATE_THREAD: 'update-thread', + UPLOAD_FILE: 'upload-file', +} as const; + +// eslint-disable-next-line @typescript-eslint/no-redeclare +export type ChannelOwnCapability = + (typeof ChannelOwnCapability)[keyof typeof ChannelOwnCapability]; + +export interface ChannelPushPreferences { + chat_level?: string; + + disabled_until?: Date; +} + +export interface ChannelResponse { + cid: string; + + created_at: Date; + + disabled: boolean; + + frozen: boolean; + + id: string; + + type: string; + + updated_at: Date; + + custom: Record; + + auto_translation_enabled?: boolean; + + auto_translation_language?: string; + + blocked?: boolean; + + cooldown?: number; + + deleted_at?: Date; + + hidden?: boolean; + + hide_messages_before?: Date; + + last_message_at?: Date; + + member_count?: number; + + mute_expires_at?: Date; + + muted?: boolean; + + team?: string; + + truncated_at?: Date; + + members?: Array; + + own_capabilities?: Array; + + config?: ChannelConfigWithInfo; + + created_by?: UserResponse; + + truncated_by?: UserResponse; +} + +export interface ChannelStateResponse { + duration: string; + + members: Array; + + messages: Array; + + pinned_messages: Array; + + threads: Array; + + hidden?: boolean; + + hide_messages_before?: Date; + + watcher_count?: number; + + pending_messages?: Array; + + read?: Array; + + watchers?: Array; + + channel?: ChannelResponse; + + draft?: DraftResponse; + + membership?: ChannelMember; + + push_preferences?: ChannelPushPreferences; +} + +export interface ChannelStateResponseFields { + members: Array; + + messages: Array; + + pinned_messages: Array; + + threads: Array; + + hidden?: boolean; + + hide_messages_before?: Date; + + watcher_count?: number; + + pending_messages?: Array; + + read?: Array; + + watchers?: Array; + + channel?: ChannelResponse; + + draft?: DraftResponse; + + membership?: ChannelMember; + + push_preferences?: ChannelPushPreferences; +} + +export interface ChannelTruncatedEvent { + channel_id: string; + + channel_member_count: number; + + channel_type: string; + + cid: string; + + created_at: Date; + + type: string; + + channel?: ChannelResponse; +} + +export interface ChannelTypeConfig { + automod: 'disabled' | 'simple' | 'AI'; + + automod_behavior: 'flag' | 'block' | 'shadow_block'; + + connect_events: boolean; + + created_at: Date; + + custom_events: boolean; + + mark_messages_pending: boolean; + + max_message_length: number; + + mutes: boolean; + + name: string; + + polls: boolean; + + push_notifications: boolean; + + quotes: boolean; + + reactions: boolean; + + read_events: boolean; + + reminders: boolean; + + replies: boolean; + + search: boolean; + + skip_last_msg_update_for_system_msgs: boolean; + + typing_events: boolean; + + updated_at: Date; + + uploads: boolean; + + url_enrichment: boolean; + + user_message_reminders: boolean; + + commands: Array; + + permissions: Array; + + grants: Record>; + + blocklist?: string; + + blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; + + partition_size?: number; + + partition_ttl?: string; + + allowed_flag_reasons?: Array; + + blocklists?: Array; + + automod_thresholds?: Thresholds; +} + +export interface ChannelUnFrozenEvent { + channel_id: string; + + channel_type: string; + + cid: string; + + created_at: Date; + + type: string; +} + +export interface ChannelUnmutedEvent { + created_at: Date; + + type: string; +} + +export interface ChannelUpdatedEvent { + channel_id: string; + + channel_member_count: number; + + channel_type: string; + + cid: string; + + created_at: Date; + + type: string; + + team?: string; + + channel?: ChannelResponse; + + message?: Message; + + user?: User; +} + +export interface ChannelVisibleEvent { + channel_id: string; + + channel_type: string; + + cid: string; + + created_at: Date; + + type: string; + + user?: User; +} + +export interface ChatActivityStatsResponse { + messages?: MessageStatsResponse; +} + +export interface CheckExternalStorageResponse { + duration: string; + + file_url: string; +} + +export interface CheckPushRequest { + apn_template?: string; + + event_type?: + | 'message.new' + | 'message.updated' + | 'reaction.new' + | 'reaction.updated' + | 'notification.reminder_due'; + + firebase_data_template?: string; + + firebase_template?: string; + + message_id?: string; + + push_provider_name?: string; + + push_provider_type?: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; + + skip_devices?: boolean; + + user_id?: string; + + user?: UserRequest; +} + +export interface CheckPushResponse { + duration: string; + + event_type?: string; + + rendered_apn_template?: string; + + rendered_firebase_template?: string; + + skip_devices?: boolean; + + general_errors?: Array; + + device_errors?: Record; + + rendered_message?: Record; +} + +export interface CheckRequest { + config_key: string; + + entity_creator_id: string; + + entity_id: string; + + entity_type: string; + + config_team?: string; + + test_mode?: boolean; + + user_id?: string; + + moderation_payload?: ModerationPayload; + + options?: Record; + + user?: UserRequest; +} + +export interface CheckResponse { + duration: string; + + recommended_action: string; + + status: string; + + task_id?: string; + + item?: ReviewQueueItem; +} + +export interface CheckSNSRequest { + sns_key?: string; + + sns_secret?: string; + + sns_topic_arn?: string; +} + +export interface CheckSNSResponse { + duration: string; + + status: 'ok' | 'error'; + + error?: string; + + data?: Record; +} + +export interface CheckSQSRequest { + sqs_key?: string; + + sqs_secret?: string; + + sqs_url?: string; +} + +export interface CheckSQSResponse { + duration: string; + + status: 'ok' | 'error'; + + error?: string; + + data?: Record; +} + +export interface ClientOSDataResponse { + architecture?: string; + + name?: string; + + version?: string; +} + +export interface ClosedCaptionEvent { + call_cid: string; + + created_at: Date; + + closed_caption: CallClosedCaption; + + type: string; +} + +export interface CollectUserFeedbackRequest { + rating: number; + + sdk: string; + + sdk_version: string; + + reason?: string; + + user_session_id?: string; + + custom?: Record; +} + +export interface CollectUserFeedbackResponse { + duration: string; +} + +export interface Command { + args: string; + + description: string; + + name: string; + + set: string; + + created_at?: Date; + + updated_at?: Date; +} + +export interface CommentAddedEvent { + created_at: Date; + + fid: string; + + comment: CommentResponse; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CommentDeletedEvent { + created_at: Date; + + fid: string; + + comment: CommentResponse; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CommentReactionAddedEvent { + created_at: Date; + + fid: string; + + comment: CommentResponse; + + custom: Record; + + reaction: FeedsReactionResponse; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CommentReactionDeletedEvent { + created_at: Date; + + fid: string; + + comment: CommentResponse; + + custom: Record; + + reaction: FeedsReactionResponse; + + type: string; + + received_at?: Date; +} + +export interface CommentResponse { + confidence_score: number; + + created_at: Date; + + downvote_count: number; + + id: string; + + object_id: string; + + object_type: string; + + reaction_count: number; + + reply_count: number; + + score: number; + + status: string; + + updated_at: Date; + + upvote_count: number; + + mentioned_users: Array; + + user: UserResponse; + + controversy_score?: number; + + deleted_at?: Date; + + parent_id?: string; + + text?: string; + + attachments?: Array; + + latest_reactions?: Array; + + custom?: Record; + + moderation?: ModerationV2Response; + + reaction_groups?: Record; +} + +export interface CommentUpdatedEvent { + created_at: Date; + + fid: string; + + comment: CommentResponse; + + custom: Record; + + type: string; + + received_at?: Date; + + user?: UserResponseCommonFields; +} + +export interface CommitMessageRequest {} + +export interface CompositeAppSettings { + json_encoded_settings?: string; + + url?: string; +} + +export interface ConfigOverrides { + commands: Array; + + grants: Record>; + + blocklist?: string; + + blocklist_behavior?: 'flag' | 'block'; + + max_message_length?: number; + + quotes?: boolean; + + reactions?: boolean; + + replies?: boolean; + + typing_events?: boolean; + + uploads?: boolean; + + url_enrichment?: boolean; + + user_message_reminders?: boolean; +} + +export interface ConfigResponse { + async: boolean; + + created_at: Date; + + key: string; + + team: string; + + updated_at: Date; + + ai_image_config?: AIImageConfig; + + ai_text_config?: AITextConfig; + + ai_video_config?: AIVideoConfig; + + automod_platform_circumvention_config?: AutomodPlatformCircumventionConfig; + + automod_semantic_filters_config?: AutomodSemanticFiltersConfig; + + automod_toxicity_config?: AutomodToxicityConfig; + + block_list_config?: BlockListConfig; + + velocity_filter_config?: VelocityFilterConfig; + + video_call_rule_config?: VideoCallRuleConfig; +} + +export interface CountByMinuteResponse { + count: number; + + start_ts: Date; +} + +export interface CreateBlockListRequest { + name: string; + + words: Array; + + team?: string; + + type?: 'regex' | 'domain' | 'domain_allowlist' | 'email' | 'word'; +} + +export interface CreateBlockListResponse { + duration: string; + + blocklist?: BlockListResponse; +} + +export interface CreateCallTypeRequest { + name: string; + + external_storage?: string; + + grants?: Record>; + + notification_settings?: NotificationSettings; + + settings?: CallSettingsRequest; +} + +export interface CreateCallTypeResponse { + created_at: Date; + + duration: string; + + name: string; + + updated_at: Date; + + grants: Record>; + + notification_settings: NotificationSettings; + + settings: CallSettingsResponse; + + external_storage?: string; +} + +export interface CreateChannelTypeRequest { + automod: 'disabled' | 'simple' | 'AI'; + + automod_behavior: 'flag' | 'block'; + + max_message_length: number; + + name: string; + + blocklist?: string; + + blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; + + connect_events?: boolean; + + custom_events?: boolean; + + mark_messages_pending?: boolean; + + message_retention?: 'infinite' | 'numeric'; + + mutes?: boolean; + + partition_size?: number; + + partition_ttl?: string; + + polls?: boolean; + + push_notifications?: boolean; + + reactions?: boolean; + + read_events?: boolean; + + replies?: boolean; + + search?: boolean; + + skip_last_msg_update_for_system_msgs?: boolean; + + typing_events?: boolean; + + uploads?: boolean; + + url_enrichment?: boolean; + + user_message_reminders?: boolean; + + blocklists?: Array; + + commands?: Array; + + permissions?: Array; + + grants?: Record>; +} + +export interface CreateChannelTypeResponse { + automod: 'disabled' | 'simple' | 'AI'; + + automod_behavior: 'flag' | 'block' | 'shadow_block'; + + connect_events: boolean; + + created_at: Date; + + custom_events: boolean; + + duration: string; + + mark_messages_pending: boolean; + + max_message_length: number; + + mutes: boolean; + + name: string; + + polls: boolean; + + push_notifications: boolean; + + quotes: boolean; + + reactions: boolean; + + read_events: boolean; + + reminders: boolean; + + replies: boolean; + + search: boolean; + + skip_last_msg_update_for_system_msgs: boolean; + + typing_events: boolean; + + updated_at: Date; + + uploads: boolean; + + url_enrichment: boolean; + + user_message_reminders: boolean; + + commands: Array; + + permissions: Array; + + grants: Record>; + + blocklist?: string; + + blocklist_behavior?: 'flag' | 'block' | 'shadow_block'; + + partition_size?: number; + + partition_ttl?: string; + + allowed_flag_reasons?: Array; + + blocklists?: Array; + + automod_thresholds?: Thresholds; +} + +export interface CreateCommandRequest { + description: string; + + name: string; + + args?: string; + + set?: string; +} + +export interface CreateCommandResponse { + duration: string; + + command?: Command; +} + +export interface CreateDeviceRequest { + id: string; + + push_provider: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; + + push_provider_name?: string; + + user_id?: string; + + voip_token?: boolean; + + user?: UserRequest; +} + +export interface CreateExternalStorageRequest { + bucket: string; + + name: string; + + storage_type: 's3' | 'gcs' | 'abs'; + + gcs_credentials?: string; + + path?: string; + + aws_s3?: S3Request; + + azure_blob?: AzureRequest; +} + +export interface CreateExternalStorageResponse { + duration: string; +} + +export interface CreateFeedGroupRequest { + feed_group_id: string; + + activity_analysers?: Array; + + activity_selectors?: Array; + + aggregation?: AggregationConfig; + + custom?: Record; + + notification?: NotificationConfig; + + ranking?: RankingConfig; +} + +export interface CreateFeedGroupResponse { + duration: string; + + feed_group: FeedGroupResponse; +} + +export interface CreateFeedViewRequest { + view_id: string; + + activity_selectors?: Array; + + aggregation?: AggregationConfig; + + ranking?: RankingConfig; +} + +export interface CreateFeedViewResponse { + duration: string; + + feed_view: FeedViewResponse; +} + +export interface CreateFeedsBatchRequest { + feeds: Array; +} + +export interface CreateFeedsBatchResponse { + duration: string; + + feeds: Array; +} + +export interface CreateGuestRequest { + user: UserRequest; +} + +export interface CreateGuestResponse { + access_token: string; + + duration: string; + + user: UserResponse; +} + +export interface CreateImportRequest { + mode: 'insert' | 'upsert'; + + path: string; +} + +export interface CreateImportResponse { + duration: string; + + import_task?: ImportTask; +} + +export interface CreateImportURLRequest { + filename?: string; +} + +export interface CreateImportURLResponse { + duration: string; + + path: string; + + upload_url: string; +} + +export interface CreatePollOptionRequest { + text: string; + + user_id?: string; + + custom?: Record; + + user?: UserRequest; +} + +export interface CreatePollRequest { + name: string; + + allow_answers?: boolean; + + allow_user_suggested_options?: boolean; + + description?: string; + + enforce_unique_vote?: boolean; + + id?: string; + + is_closed?: boolean; + + max_votes_allowed?: number; + + user_id?: string; + + voting_visibility?: 'anonymous' | 'public'; + + options?: Array; + + custom?: Record; + + user?: UserRequest; +} + +export interface CreateReminderRequest { + remind_at?: Date; + + user_id?: string; + + user?: UserRequest; +} + +export interface CreateRoleRequest { + name: string; +} + +export interface CreateRoleResponse { + duration: string; + + role: Role; +} + +export interface CustomActionRequest { + id?: string; + + options?: Record; +} + +export interface CustomCheckFlag { + type: string; + + reason?: string; + + labels?: Array; + + custom?: Record; +} + +export interface CustomCheckRequest { + entity_id: string; + + entity_type: string; + + flags: Array; + + entity_creator_id?: string; + + user_id?: string; + + moderation_payload?: ModerationPayload; + + user?: UserRequest; +} + +export interface CustomCheckResponse { + duration: string; + + id: string; + + status: string; + + item?: ReviewQueueItemResponse; +} + +export interface CustomVideoEvent { + call_cid: string; + + created_at: Date; + + custom: Record; + + user: UserResponse; + + type: string; +} + +export interface DailyAggregateCallDurationReportResponse { + date: string; report: CallDurationReport; } -export interface DailyAggregateCallParticipantCountReportResponse { - date: string; +export interface DailyAggregateCallParticipantCountReportResponse { + date: string; + + report: CallParticipantCountReport; +} + +export interface DailyAggregateCallsPerDayReportResponse { + date: string; + + report: CallsPerDayReport; +} + +export interface DailyAggregateQualityScoreReportResponse { + date: string; + + report: QualityScoreReport; +} + +export interface DailyAggregateSDKUsageReportResponse { + date: string; + + report: SDKUsageReport; +} + +export interface DailyAggregateUserFeedbackReportResponse { + date: string; + + report: UserFeedbackReport; +} + +export interface Data { + id: string; +} + +export interface DataDogInfo { + api_key?: string; + + enabled?: boolean; + + site?: string; +} + +export interface DeactivateUserRequest { + created_by_id?: string; + + mark_messages_deleted?: boolean; +} + +export interface DeactivateUserResponse { + duration: string; + + user?: UserResponse; +} + +export interface DeactivateUsersRequest { + user_ids: Array; + + created_by_id?: string; + + mark_channels_deleted?: boolean; + + mark_messages_deleted?: boolean; +} + +export interface DeactivateUsersResponse { + duration: string; + + task_id: string; +} + +export interface DecayFunctionConfig { + base?: string; + + decay?: string; + + direction?: string; + + offset?: string; + + origin?: string; + + scale?: string; +} + +export interface DeleteActivitiesRequest { + activity_ids: Array; + + hard_delete?: boolean; + + user_id?: string; + + user?: UserRequest; +} + +export interface DeleteActivitiesResponse { + duration: string; + + deleted_activity_ids: Array; +} + +export interface DeleteActivityReactionResponse { + duration: string; + + activity: ActivityResponse; + + reaction: FeedsReactionResponse; +} + +export interface DeleteActivityRequest { + hard_delete?: boolean; +} + +export interface DeleteActivityResponse { + duration: string; +} + +export interface DeleteBookmarkResponse { + duration: string; + + bookmark: BookmarkResponse; +} + +export interface DeleteCallRequest { + hard?: boolean; +} + +export interface DeleteCallResponse { + duration: string; + + call: CallResponse; + + task_id?: string; +} + +export interface DeleteChannelResponse { + duration: string; + + channel?: ChannelResponse; +} + +export interface DeleteChannelsRequest { + cids: Array; + + hard_delete?: boolean; +} + +export interface DeleteChannelsResponse { + duration: string; + + task_id?: string; + + result?: Record; +} + +export interface DeleteChannelsResultResponse { + status: string; + + error?: string; +} + +export interface DeleteCommandResponse { + duration: string; + + name: string; +} + +export interface DeleteCommentReactionResponse { + duration: string; + + comment: CommentResponse; + + reaction: FeedsReactionResponse; +} + +export interface DeleteCommentResponse { + duration: string; +} + +export interface DeleteExternalStorageResponse { + duration: string; +} + +export interface DeleteFeedGroupResponse { + duration: string; +} + +export interface DeleteFeedResponse { + duration: string; +} + +export interface DeleteFeedUserDataResponse { + deleted_activities: number; + + deleted_bookmarks: number; + + deleted_comments: number; + + deleted_reactions: number; + + duration: string; +} + +export interface DeleteFeedViewResponse { + duration: string; +} + +export interface DeleteMessageRequest { + hard_delete?: boolean; +} + +export interface DeleteMessageResponse { + duration: string; + + message: MessageResponse; +} + +export interface DeleteModerationConfigResponse { + duration: string; +} + +export interface DeleteModerationTemplateResponse { + duration: string; +} + +export interface DeleteReactionRequest { + hard_delete?: boolean; +} + +export interface DeleteReactionResponse { + duration: string; + + message: MessageResponse; + + reaction: ReactionResponse; +} + +export interface DeleteRecordingResponse { + duration: string; +} + +export interface DeleteReminderResponse { + duration: string; +} + +export interface DeleteSegmentTargetsRequest { + target_ids: Array; +} + +export interface DeleteTranscriptionResponse { + duration: string; +} + +export interface DeleteUserRequest { + delete_conversation_channels?: boolean; + + delete_feeds_content?: boolean; + + hard_delete?: boolean; + + mark_messages_deleted?: boolean; +} + +export interface DeleteUsersRequest { + user_ids: Array; + + calls?: 'soft' | 'hard'; + + conversations?: 'soft' | 'hard'; + + messages?: 'soft' | 'pruning' | 'hard'; + + new_call_owner_id?: string; + + new_channel_owner_id?: string; + + user?: 'soft' | 'pruning' | 'hard'; +} + +export interface DeleteUsersResponse { + duration: string; + + task_id: string; +} + +export interface Device { + created_at: Date; + + id: string; + + push_provider: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; + + user_id: string; + + disabled?: boolean; + + disabled_reason?: string; + + push_provider_name?: string; + + voip?: boolean; +} + +export interface DeviceDataResponse { + name?: string; + + version?: string; +} + +export interface DeviceErrorInfo { + error_message: string; + + provider: string; + + provider_name: string; +} + +export interface DeviceResponse { + created_at: Date; + + id: string; + + push_provider: string; + + user_id: string; + + disabled?: boolean; + + disabled_reason?: string; + + push_provider_name?: string; + + voip?: boolean; +} + +export interface DraftPayloadResponse { + id: string; + + text: string; + + custom: Record; + + html?: string; + + mml?: string; + + parent_id?: string; + + poll_id?: string; + + quoted_message_id?: string; + + show_in_channel?: boolean; + + silent?: boolean; + + type?: string; + + attachments?: Array; + + mentioned_users?: Array; +} + +export interface DraftResponse { + channel_cid: string; + + created_at: Date; + + message: DraftPayloadResponse; + + parent_id?: string; + + channel?: ChannelResponse; + + parent_message?: MessageResponse; + + quoted_message?: MessageResponse; +} + +export interface EdgeResponse { + continent_code: string; + + country_iso_code: string; + + green: number; + + id: string; + + latency_test_url: string; + + latitude: number; + + longitude: number; + + red: number; + + subdivision_iso_code: string; + + yellow: number; +} + +export interface EgressHLSResponse { + playlist_url: string; + + status: string; +} + +export interface EgressRTMPResponse { + name: string; + + started_at: Date; + + stream_key?: string; + + stream_url?: string; +} + +export interface EgressResponse { + broadcasting: boolean; + + rtmps: Array; - report: CallParticipantCountReport; + frame_recording?: FrameRecordingResponse; + + hls?: EgressHLSResponse; } -export interface DailyAggregateCallsPerDayReportResponse { - date: string; +export interface EgressTaskConfig { + egress_user?: EgressUser; - report: CallsPerDayReport; + frame_recording_egress_config?: FrameRecordingEgressConfig; + + hls_egress_config?: HLSEgressConfig; + + recording_egress_config?: RecordingEgressConfig; + + rtmp_egress_config?: RTMPEgressConfig; + + stt_egress_config?: STTEgressConfig; } -export interface DailyAggregateQualityScoreReportResponse { - date: string; +export interface EgressUser { + token?: string; +} - report: QualityScoreReport; +export interface EndCallRequest {} + +export interface EndCallResponse { + duration: string; } -export interface DailyAggregateSDKUsageReportResponse { - date: string; +export interface EnrichedActivity { + foreign_id?: string; - report: SDKUsageReport; + id?: string; + + score?: number; + + verb?: string; + + to?: Array; + + actor?: Data; + + latest_reactions?: Record>; + + object?: Data; + + origin?: Data; + + own_reactions?: Record>; + + reaction_counts?: Record; + + target?: Data; } -export interface DailyAggregateUserFeedbackReportResponse { - date: string; +export interface EnrichedReaction { + activity_id: string; - report: UserFeedbackReport; + kind: string; + + user_id: string; + + id?: string; + + parent?: string; + + target_feeds?: Array; + + children_counts?: Record; + + created_at?: Time; + + data?: Record; + + latest_children?: Record>; + + own_children?: Record>; + + updated_at?: Time; + + user?: Data; } -export interface Data { +export interface EntityCreator { + ban_count: number; + + banned: boolean; + + deleted_content_count: number; + id: string; -} -export interface DataDogInfo { - api_key?: string; + online: boolean; - enabled?: boolean; + role: string; - site?: string; -} + custom: Record; -export interface DeactivateUserRequest { - created_by_id?: string; + teams_role: Record; - mark_messages_deleted?: boolean; -} + ban_expires?: Date; -export interface DeactivateUserResponse { - duration: string; + created_at?: Date; - user?: UserResponse; -} + deactivated_at?: Date; -export interface DeactivateUsersRequest { - user_ids: string[]; + deleted_at?: Date; - created_by_id?: string; + invisible?: boolean; - mark_channels_deleted?: boolean; + language?: string; - mark_messages_deleted?: boolean; -} + last_active?: Date; -export interface DeactivateUsersResponse { - duration: string; + last_engaged_at?: Date; - task_id: string; -} + revoke_tokens_issued_before?: Date; -export interface DeleteActivityRequest { - hard_delete?: boolean; -} + updated_at?: Date; -export interface DeleteCallRequest { - hard?: boolean; + teams?: Array; + + privacy_settings?: PrivacySettings; } -export interface DeleteCallResponse { - duration: string; +export interface EntityCreatorResponse { + ban_count: number; - call: CallResponse; + banned: boolean; - task_id?: string; -} + created_at: Date; -export interface DeleteChannelResponse { - duration: string; + deleted_content_count: number; - channel?: ChannelResponse; -} + flagged_count: number; -export interface DeleteChannelsRequest { - cids: string[]; + id: string; - hard_delete?: boolean; -} + invisible: boolean; -export interface DeleteChannelsResponse { - duration: string; + language: string; - task_id?: string; + online: boolean; - result?: Record; -} + role: string; -export interface DeleteChannelsResultResponse { - status: string; + shadow_banned: boolean; - error?: string; -} + updated_at: Date; -export interface DeleteCommandResponse { - duration: string; + blocked_user_ids: Array; - name: string; + teams: Array; + + custom: Record; + + ban_expires?: Date; + + deactivated_at?: Date; + + deleted_at?: Date; + + image?: string; + + last_active?: Date; + + name?: string; + + revoke_tokens_issued_before?: Date; + + devices?: Array; + + privacy_settings?: PrivacySettingsResponse; + + push_notifications?: PushNotificationSettingsResponse; + + teams_role?: Record; } -export interface DeleteExternalStorageResponse { - duration: string; +export interface ErrorResult { + type: string; + + stacktrace?: string; + + version?: string; } -export interface DeleteMessageRequest { - hard_delete?: boolean; +export interface EventHook { + created_at?: Date; + + enabled?: boolean; + + hook_type?: string; + + id?: string; + + sns_auth_type?: string; + + sns_key?: string; + + sns_region?: string; + + sns_role_arn?: string; + + sns_secret?: string; + + sns_topic_arn?: string; + + sqs_auth_type?: string; + + sqs_key?: string; + + sqs_queue_url?: string; + + sqs_region?: string; + + sqs_role_arn?: string; + + sqs_secret?: string; + + timeout_ms?: number; + + updated_at?: Date; + + webhook_url?: string; + + event_types?: Array; + + callback?: AsyncModerationCallbackConfig; } -export interface DeleteMessageResponse { - duration: string; +export interface EventNotificationSettings { + enabled: boolean; - message: MessageResponse; + apns: APNS; + + fcm: FCM; } -export interface DeleteModerationConfigResponse { - duration: string; +export interface EventRequest { + type: string; + + parent_id?: string; + + user_id?: string; + + custom?: Record; + + user?: UserRequest; } -export interface DeleteModerationTemplateResponse { +export interface EventResponse { duration: string; -} -export interface DeleteReactionRequest { - hard_delete?: boolean; + event: WSEvent; } -export interface DeleteReactionResponse { - duration: string; +export interface ExportChannelsRequest { + channels: Array; + + clear_deleted_message_text?: boolean; + + export_users?: boolean; + + include_soft_deleted_channels?: boolean; - message: MessageResponse; + include_truncated_messages?: boolean; - reaction: ReactionResponse; + version?: string; } -export interface DeleteRecordingResponse { +export interface ExportChannelsResponse { duration: string; -} -export interface DeleteSegmentTargetsRequest { - target_ids: string[]; + task_id: string; } -export interface DeleteTranscriptionResponse { +export interface ExportFeedUserDataRequest {} + +export interface ExportFeedUserDataResponse { duration: string; -} -export interface DeleteUserRequest { - delete_conversation_channels?: boolean; + activities: Array; - delete_feeds_content?: boolean; + bookmarks: Array; - hard_delete?: boolean; + comments: Array; - mark_messages_deleted?: boolean; + reactions: Array; } -export interface DeleteUsersRequest { - user_ids: string[]; - - calls?: 'soft' | 'hard'; - - conversations?: 'soft' | 'hard'; +export interface ExportUserResponse { + duration: string; - messages?: 'soft' | 'pruning' | 'hard'; + messages?: Array; - new_call_owner_id?: string; + reactions?: Array; - new_channel_owner_id?: string; + user?: UserResponse; +} - user?: 'soft' | 'pruning' | 'hard'; +export interface ExportUsersRequest { + user_ids: Array; } -export interface DeleteUsersResponse { +export interface ExportUsersResponse { duration: string; task_id: string; } -export interface Device { - created_at: Date; +export interface ExternalStorage { + abs_account_name?: string; - id: string; + abs_client_id?: string; - push_provider: 'firebase' | 'apn' | 'huawei' | 'xiaomi'; + abs_client_secret?: string; - user_id: string; + abs_tenant_id?: string; - disabled?: boolean; + bucket?: string; - disabled_reason?: string; + gcs_credentials?: string; - push_provider_name?: string; + path?: string; - voip?: boolean; -} + s3_api_key?: string; -export interface DeviceDataResponse { - name?: string; + s3_custom_endpoint?: string; - version?: string; -} + s3_region?: string; -export interface DeviceErrorInfo { - error_message: string; + s3_secret_key?: string; - provider: string; + storage_name?: string; - provider_name: string; + storage_type?: number; } -export interface DraftPayloadResponse { - id: string; +export interface ExternalStorageResponse { + bucket: string; - text: string; + name: string; - custom: Record; + path: string; - html?: string; + type: 's3' | 'gcs' | 'abs'; +} - mml?: string; +export interface FCM { + data?: Record; +} - parent_id?: string; +export interface FeedCreatedEvent { + created_at: Date; - poll_id?: string; + fid: string; - quoted_message_id?: string; + members: Array; - show_in_channel?: boolean; + custom: Record; - silent?: boolean; + feed: FeedResponse; - type?: string; + user: UserResponseCommonFields; - attachments?: Attachment[]; + type: string; - mentioned_users?: UserResponse[]; + received_at?: Date; } -export interface DraftResponse { - channel_cid: string; - +export interface FeedDeletedEvent { created_at: Date; - message: DraftPayloadResponse; + fid: string; - parent_id?: string; + custom: Record; - channel?: ChannelResponse; + type: string; - parent_message?: MessageResponse; + received_at?: Date; - quoted_message?: MessageResponse; + user?: UserResponseCommonFields; } -export interface EdgeResponse { - continent_code: string; - - country_iso_code: string; +export interface FeedGroup { + aggregation_version: number; - green: number; + app_pk: number; - id: string; + created_at: Date; - latency_test_url: string; + default_visibility: string; - latitude: number; + id: string; - longitude: number; + updated_at: Date; - red: number; + activity_analysers: Array; - subdivision_iso_code: string; + activity_selectors: Array; - yellow: number; -} + custom: Record; -export interface EgressHLSResponse { - playlist_url: string; + deleted_at?: Date; - status: string; -} + last_feed_get_at?: Date; -export interface EgressRTMPResponse { - name: string; + aggregation?: AggregationConfig; - started_at: Date; + notification?: NotificationConfig; - stream_key?: string; + ranking?: RankingConfig; - stream_url?: string; + stories?: StoriesConfig; } -export interface EgressResponse { - broadcasting: boolean; - - rtmps: EgressRTMPResponse[]; +export interface FeedGroupChangedEvent { + created_at: Date; - frame_recording?: FrameRecordingResponse; + fid: string; - hls?: EgressHLSResponse; -} + custom: Record; -export interface EndCallRequest {} + type: string; -export interface EndCallResponse { - duration: string; -} + received_at?: Date; -export interface EnrichedActivity { - foreign_id?: string; + feed_group?: FeedGroup; - id?: string; + user?: UserResponseCommonFields; +} - score?: number; +export interface FeedGroupDeletedEvent { + created_at: Date; - verb?: string; + fid: string; - to?: string[]; + group_id: string; - actor?: Data; + custom: Record; - latest_reactions?: Record; + type: string; - object?: Data; + received_at?: Date; +} - origin?: Data; +export interface FeedGroupResponse { + created_at: Date; - own_reactions?: Record; + group_id: string; - reaction_counts?: Record; + id: string; - target?: Data; -} + updated_at: Date; -export interface EnrichedReaction { - activity_id: string; + default_visibility?: string; - kind: string; + activity_analysers?: Array; - user_id: string; + activity_selectors?: Array; - id?: string; + aggregation?: AggregationConfig; - parent?: string; + custom?: Record; - target_feeds?: string[]; + notification?: NotificationConfig; - children_counts?: Record; + ranking?: RankingConfig; - created_at?: Time; + stories?: StoriesConfig; +} - data?: Record; +export interface FeedInput { + description?: string; - latest_children?: Record; + name?: string; - own_children?: Record; + visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; - updated_at?: Time; + members?: Array; - user?: Data; + custom?: Record; } -export interface EntityCreator { - ban_count: number; - - banned: boolean; - - deleted_content_count: number; +export interface FeedMemberAddedEvent { + created_at: Date; - id: string; + fid: string; - online: boolean; + custom: Record; - role: string; + member: FeedMemberResponse; - custom: Record; + type: string; - teams_role: Record; + received_at?: Date; - ban_expires?: Date; + user?: UserResponseCommonFields; +} - created_at?: Date; +export interface FeedMemberRemovedEvent { + created_at: Date; - deactivated_at?: Date; + fid: string; - deleted_at?: Date; + member_id: string; - invisible?: boolean; + custom: Record; - language?: string; + type: string; - last_active?: Date; + received_at?: Date; - last_engaged_at?: Date; + user?: UserResponseCommonFields; +} - revoke_tokens_issued_before?: Date; +export interface FeedMemberRequest { + user_id: string; - updated_at?: Date; + invite?: boolean; - teams?: string[]; + role?: string; - privacy_settings?: PrivacySettings; + custom?: Record; } -export interface EntityCreatorResponse { - ban_count: number; +export interface FeedMemberResponse { + created_at: Date; - banned: boolean; + role: string; - created_at: Date; + status: 'member' | 'pending' | 'rejected'; - deleted_content_count: number; + updated_at: Date; - flagged_count: number; + user: UserResponse; - id: string; + invite_accepted_at?: Date; - invisible: boolean; + invite_rejected_at?: Date; - language: string; + custom?: Record; +} - online: boolean; +export interface FeedMemberUpdatedEvent { + created_at: Date; - role: string; + fid: string; - shadow_banned: boolean; + custom: Record; - updated_at: Date; + member: FeedMemberResponse; - blocked_user_ids: string[]; + type: string; - teams: string[]; + received_at?: Date; - custom: Record; + user?: UserResponseCommonFields; +} - ban_expires?: Date; +export const FeedOwnCapability = { + ADD_ACTIVITY: 'add-activity', + ADD_ACTIVITY_REACTION: 'add-activity-reaction', + ADD_COMMENT: 'add-comment', + ADD_COMMENT_REACTION: 'add-comment-reaction', + BOOKMARK_ACTIVITY: 'bookmark-activity', + CREATE_FEED: 'create-feed', + DELETE_BOOKMARK: 'delete-bookmark', + DELETE_COMMENT: 'delete-comment', + DELETE_FEED: 'delete-feed', + EDIT_BOOKMARK: 'edit-bookmark', + FOLLOW: 'follow', + INVITE_FEED: 'invite-feed', + JOIN_FEED: 'join-feed', + LEAVE_FEED: 'leave-feed', + MANAGE_FEED_GROUP: 'manage-feed-group', + MARK_ACTIVITY: 'mark-activity', + PIN_ACTIVITY: 'pin-activity', + QUERY_FEED_MEMBERS: 'query-feed-members', + QUERY_FOLLOWS: 'query-follows', + READ_ACTIVITIES: 'read-activities', + READ_FEED: 'read-feed', + REMOVE_ACTIVITY: 'remove-activity', + REMOVE_ACTIVITY_REACTION: 'remove-activity-reaction', + REMOVE_COMMENT_REACTION: 'remove-comment-reaction', + UNFOLLOW: 'unfollow', + UPDATE_ACTIVITY: 'update-activity', + UPDATE_COMMENT: 'update-comment', + UPDATE_FEED: 'update-feed', + UPDATE_FEED_FOLLOWERS: 'update-feed-followers', + UPDATE_FEED_MEMBERS: 'update-feed-members', +} as const; - deactivated_at?: Date; +// eslint-disable-next-line @typescript-eslint/no-redeclare +export type FeedOwnCapability = + (typeof FeedOwnCapability)[keyof typeof FeedOwnCapability]; - deleted_at?: Date; +export interface FeedRequest { + feed_group_id: string; - image?: string; + feed_id: string; - last_active?: Date; + created_by_id?: string; + + description?: string; name?: string; - revoke_tokens_issued_before?: Date; + visibility?: 'public' | 'visible' | 'followers' | 'members' | 'private'; - devices?: DeviceResponse[]; + members?: Array; - privacy_settings?: PrivacySettingsResponse; + custom?: Record; +} - push_notifications?: PushNotificationSettingsResponse; +export interface FeedResponse { + created_at: Date; - teams_role?: Record; -} + description: string; + + fid: string; -export interface ErrorResult { - type: string; + follower_count: number; - stacktrace?: string; + following_count: number; - version?: string; -} + group_id: string; -export interface EventNotificationSettings { - enabled: boolean; + id: string; - apns: APNS; -} + member_count: number; -export interface EventRequest { - type: string; + name: string; - parent_id?: string; + pin_count: number; - user_id?: string; + updated_at: Date; - custom?: Record; + created_by: UserResponse; - user?: UserRequest; -} + deleted_at?: Date; -export interface EventResponse { - duration: string; + visibility?: string; - event: WSEvent; + custom?: Record; } -export interface ExportChannelsRequest { - channels: ChannelExport[]; +export interface FeedUpdatedEvent { + created_at: Date; - clear_deleted_message_text?: boolean; + fid: string; - export_users?: boolean; + custom: Record; - include_soft_deleted_channels?: boolean; + feed: FeedResponse; - include_truncated_messages?: boolean; + type: string; - version?: string; + received_at?: Date; + + user?: UserResponseCommonFields; } -export interface ExportChannelsResponse { - duration: string; +export interface FeedViewResponse { + feed_group_id: string; - task_id: string; -} + view_id: string; -export interface ExportUserResponse { - duration: string; + last_used_at?: Date; - messages?: MessageResponse[]; + activity_selectors?: Array; - reactions?: ReactionResponse[]; + aggregation?: AggregationConfig; - user?: UserResponse; + ranking?: RankingConfig; } -export interface ExportUsersRequest { - user_ids: string[]; +export interface FeedsModerationTemplateConfig { + config_key: string; + + data_types: Record; } -export interface ExportUsersResponse { - duration: string; +export interface FeedsReactionResponse { + activity_id: string; - task_id: string; -} + created_at: Date; -export interface ExternalStorageResponse { - bucket: string; + type: string; - name: string; + updated_at: Date; - path: string; + user: UserResponse; - type: 's3' | 'gcs' | 'abs'; + comment_id?: string; + + custom?: Record; } -export interface FeedsModerationTemplateConfig { - config_key: string; +export interface Field { + short: boolean; - data_types: Record; + title: string; + + value: string; } export interface FileUploadConfig { size_limit: number; - allowed_file_extensions?: string[]; + allowed_file_extensions?: Array; - allowed_mime_types?: string[]; + allowed_mime_types?: Array; - blocked_file_extensions?: string[]; + blocked_file_extensions?: Array; - blocked_mime_types?: string[]; + blocked_mime_types?: Array; } export interface FileUploadRequest { @@ -3486,16 +5194,16 @@ export interface FirebaseConfig { } export interface FirebaseConfigFields { - apn_template: string; - - data_template: string; - enabled: boolean; - notification_template: string; + apn_template?: string; credentials_json?: string; + data_template?: string; + + notification_template?: string; + server_key?: string; } @@ -3512,6 +5220,8 @@ export interface Flag { entity_creator_id?: string; + is_streamed_content?: boolean; + moderation_payload_hash?: string; reason?: string; @@ -3520,12 +5230,14 @@ export interface Flag { type?: string; - labels?: string[]; + labels?: Array; custom?: Record; moderation_payload?: ModerationPayload; + review_queue_item?: ReviewQueueItem; + user?: User; } @@ -3542,7 +5254,7 @@ export interface FlagFeedback { message_id: string; - labels: Label[]; + labels: Array