UNPKG

@message-queue-toolkit/sns

Version:
47 lines (46 loc) 2.04 kB
import type { CreateTopicCommandInput, SNSClient, Tag } from '@aws-sdk/client-sns'; import type { QueueDependencies, QueueOptions } from '@message-queue-toolkit/core'; import { AbstractQueueService } from '@message-queue-toolkit/core'; import type { STSClient } from '@aws-sdk/client-sts'; import type { SNS_MESSAGE_BODY_TYPE } from '../types/MessageTypes'; export declare const SNS_MESSAGE_MAX_SIZE: number; export type SNSDependencies = QueueDependencies & { snsClient: SNSClient; stsClient: STSClient; }; export type SNSTopicAWSConfig = CreateTopicCommandInput; export type SNSTopicConfig = { tags?: Tag[]; DataProtectionPolicy?: string; Attributes?: { DeliveryPolicy?: string; DisplayName?: string; Policy?: string; SignatureVersion?: number; TracingConfig?: string; FifoTopic?: boolean; ContentBasedDeduplication?: boolean; }; }; export type ExtraSNSCreationParams = { queueUrlsWithSubscribePermissionsPrefix?: string | readonly string[]; allowedSourceOwner?: string; forceTagUpdate?: boolean; }; export type SNSCreationConfig = { topic?: SNSTopicAWSConfig; updateAttributesIfExists?: boolean; } & ExtraSNSCreationParams; export type SNSTopicLocatorType = { topicArn?: string; topicName?: string; }; export type SNSOptions = QueueOptions<SNSCreationConfig, SNSTopicLocatorType>; export declare abstract class AbstractSnsService<MessagePayloadType extends object, MessageEnvelopeType extends object = SNS_MESSAGE_BODY_TYPE, SNSOptionsType extends SNSOptions = SNSOptions, DependenciesType extends SNSDependencies = SNSDependencies> extends AbstractQueueService<MessagePayloadType, MessageEnvelopeType, DependenciesType, SNSCreationConfig, SNSTopicLocatorType, SNSOptionsType> { protected readonly snsClient: SNSClient; protected readonly stsClient: STSClient; protected topicArn: string; constructor(dependencies: DependenciesType, options: SNSOptionsType); init(): Promise<void>; close(): Promise<void>; }