AWS application integration services provide messaging, event routing, and workflow orchestration capabilities for building decoupled and scalable distributed applications.
Fully managed messaging service for both application-to-application (A2A) and application-to-person (A2P) communication.
/**
* SNS topic for publish-subscribe messaging
*/
class Topic extends Resource implements ITopic {
constructor(scope: Construct, id: string, props?: TopicProps);
/**
* Import an existing topic by ARN
*/
static fromTopicArn(scope: Construct, id: string, topicArn: string): ITopic;
/**
* Add a subscription to this topic
*/
addSubscription(subscription: ITopicSubscription): void;
/**
* Grant topic publishing permissions to the given identity
*/
grantPublish(grantee: IGrantable): Grant;
readonly topicArn: string;
readonly topicName: string;
readonly fifo: boolean;
}Fully managed message queuing service that enables decoupling and scaling of microservices, distributed systems, and serverless applications.
/**
* SQS queue for message queuing
*/
class Queue extends Resource implements IQueue {
constructor(scope: Construct, id: string, props?: QueueProps);
/**
* Import an existing queue by ARN
*/
static fromQueueArn(scope: Construct, id: string, queueArn: string): IQueue;
/**
* Grant permissions to consume messages from the queue
*/
grantConsumeMessages(grantee: IGrantable): Grant;
/**
* Grant permissions to send messages to the queue
*/
grantSendMessages(grantee: IGrantable): Grant;
readonly queueArn: string;
readonly queueName: string;
readonly queueUrl: string;
readonly fifo: boolean;
}Serverless event bus that ingests data from your own apps, SaaS apps, and AWS services and routes that data to targets.
/**
* EventBridge event bus for event routing
*/
class EventBus extends Resource implements IEventBus {
constructor(scope: Construct, id: string, props?: EventBusProps);
/**
* Import an existing event bus by name
*/
static fromEventBusName(scope: Construct, id: string, eventBusName: string): IEventBus;
/**
* Grant permissions to put events to this event bus
*/
grantPutEventsTo(grantee: IGrantable): Grant;
readonly eventBusName: string;
readonly eventBusArn: string;
readonly eventBusPolicy: string;
readonly eventSourceName?: string;
}interface TopicProps {
readonly contentBasedDeduplication?: boolean;
readonly displayName?: string;
readonly fifo?: boolean;
readonly masterKey?: IKey;
readonly topicName?: string;
}
interface QueueProps {
readonly contentBasedDeduplication?: boolean;
readonly dataKeyReuse?: Duration;
readonly deadLetterQueue?: DeadLetterQueue;
readonly deliveryDelay?: Duration;
readonly encryption?: QueueEncryption;
readonly encryptionMasterKey?: IKey;
readonly fifo?: boolean;
readonly maxReceiveCount?: number;
readonly queueName?: string;
readonly receiveMessageWaitTime?: Duration;
readonly removalPolicy?: RemovalPolicy;
readonly retentionPeriod?: Duration;
readonly visibilityTimeout?: Duration;
}
interface EventBusProps {
readonly eventBusName?: string;
readonly eventSourceName?: string;
}
enum QueueEncryption {
UNENCRYPTED = 0,
KMS_MANAGED = 1,
KMS = 2,
SQS_MANAGED = 3
}