diff --git a/src/client.ts b/src/client.ts index d648da3e2..5bce92eda 100644 --- a/src/client.ts +++ b/src/client.ts @@ -754,7 +754,24 @@ export class StreamChat { 'data_template': 'data handlebars template', 'apn_template': 'apn notification handlebars template under v2' }, - 'webhook_url': 'https://acme.com/my/awesome/webhook/' + 'webhook_url': 'https://acme.com/my/awesome/webhook/', + 'event_hooks': [ + { + 'hook_type': 'webhook', + 'enabled': true, + 'event_types': ['message.new'], + 'webhook_url': 'https://acme.com/my/awesome/webhook/' + }, + { + 'hook_type': 'sqs', + 'enabled': true, + 'event_types': ['message.new'], + 'sqs_url': 'https://sqs.us-east-1.amazonaws.com/1234567890/my-queue', + 'sqs_auth_type': 'key', + 'sqs_key': 'my-access-key', + 'sqs_secret': 'my-secret-key' + } + ] } */ async updateAppSettings(options: AppSettings) { diff --git a/src/types.ts b/src/types.ts index 0aadc3565..4e7cceca1 100644 --- a/src/types.ts +++ b/src/types.ts @@ -129,6 +129,7 @@ export type AppSettingsAPIResponse = APIResponse & { disable_auth_checks?: boolean; disable_permissions_checks?: boolean; enforce_unique_usernames?: 'no' | 'app' | 'team'; + event_hooks?: Array; file_upload_config?: FileUploadConfig; geofences?: Array<{ country_codes: Array; @@ -2212,6 +2213,7 @@ export type AppSettings = { disable_auth_checks?: boolean; disable_permissions_checks?: boolean; enforce_unique_usernames?: 'no' | 'app' | 'team'; + event_hooks?: Array | null; // all possible file mime types are https://www.iana.org/assignments/media-types/media-types.xhtml file_upload_config?: FileUploadConfig; firebase_config?: { @@ -4005,3 +4007,27 @@ export type ThreadFilters = QueryFilters< | PrimitiveFilter; } >; + +export type HookType = 'webhook' | 'sqs' | 'sns'; + +export type EventHook = { + id?: string; + hook_type?: HookType; + enabled?: boolean; + event_types?: Array; + webhook_url?: string; + sqs_queue_url?: string; + sqs_region?: string; + sqs_auth_type?: string; + sqs_key?: string; + sqs_secret?: string; + sqs_role_arn?: string; + sns_topic_arn?: string; + sns_region?: string; + sns_auth_type?: string; + sns_key?: string; + sns_secret?: string; + sns_role_arn?: string; + created_at?: string; + updated_at?: string; +};