UNPKG

@wisegpt/awscdk-slack-event-bus

Version:

Exposes a Slack Events API Request URL that validates and sends all received events to an AWS Event Bus

48 lines (47 loc) 1.7 kB
import * as apigwv2 from "@aws-cdk/aws-apigatewayv2-alpha"; import { aws_events as Events } from "aws-cdk-lib"; import { IFunction } from "aws-cdk-lib/aws-lambda"; import { ISecret } from "aws-cdk-lib/aws-secretsmanager"; import { Construct } from "constructs"; export interface SlackEventBusSingleAppProps { /** * `appId` to use for all request validating */ readonly appId: string; /** * `eventsApiPath` which would be used for the events path */ readonly eventsApiPath: string; } export interface SlackEventBusProps { /** * `secret` is a reference to the Secret parameter that stores the signing-secret * and also if oAuth enabled; client id / client secret for each individual appId */ readonly secret: ISecret; /** * `eventBusName` optional name to override the event bus name */ readonly eventBusName?: string; /** * `httpApi` optional HTTP API to use, instead of Construct creating a new one */ readonly httpApi?: apigwv2.HttpApi; /** * `singleApp` optionally configure to use a single application * with fixed app id and path to use */ readonly singleApp?: SlackEventBusSingleAppProps; } export declare class SlackEventBus extends Construct { private readonly props; private static readonly SLACK_EVENT_BUS_NAME; private static appPath; private readonly pEventBus; private readonly pSlackHandlerLambdaAlias; private readonly pHttpApi; constructor(scope: Construct, id: string, props: SlackEventBusProps); slackEventsRequestUrl(appId?: string): string; get eventBus(): Events.EventBus; get slackHandlerLambdaAlias(): IFunction; }