aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
81 lines (80 loc) • 2.9 kB
TypeScript
import * as iam from '../../aws-iam';
import { ISchedule, ScheduleTargetConfig, ScheduleTargetInput } from '../../aws-scheduler';
import * as sqs from '../../aws-sqs';
import { Duration } from '../../core';
/**
* Base properties for a Schedule Target
*/
export interface ScheduleTargetBaseProps {
/**
* An execution role is an IAM role that EventBridge Scheduler assumes in order to interact with other AWS services on your behalf.
*
* If none provided templates target will automatically create an IAM role with all the minimum necessary
* permissions to interact with the templated target. If you wish you may specify your own IAM role, then the templated targets
* will grant minimal required permissions.
*
* @default - created by target
*/
readonly role?: iam.IRole;
/**
* The SQS queue to be used as deadLetterQueue.
*
* The events not successfully delivered are automatically retried for a specified period of time,
* depending on the retry policy of the target.
* If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue.
*
* @default - no dead-letter queue
*/
readonly deadLetterQueue?: sqs.IQueue;
/**
* Input passed to the target.
*
* @default - no input.
*/
readonly input?: ScheduleTargetInput;
/**
* The maximum age of a request that Scheduler sends to a target for processing.
*
* Minimum value of 60.
* Maximum value of 86400.
*
* @default Duration.hours(24)
*/
readonly maxEventAge?: Duration;
/**
* The maximum number of times to retry when the target returns an error.
*
* Minimum value of 0.
* Maximum value of 185.
*
* @default 185
*/
readonly retryAttempts?: number;
}
/**
* Base class for Schedule Targets
*/
export declare abstract class ScheduleTargetBase {
private readonly baseProps;
protected readonly targetArn: string;
constructor(baseProps: ScheduleTargetBaseProps, targetArn: string);
protected abstract addTargetActionToRole(role: iam.IRole): void;
protected bindBaseTargetConfig(_schedule: ISchedule): ScheduleTargetConfig;
/**
* Create a return a Schedule Target Configuration for the given schedule
* @returns a Schedule Target Configuration
*/
bind(schedule: ISchedule): ScheduleTargetConfig;
/**
* Get or create the Role for the EventBridge Scheduler event
*
* If a role already exists, it will be returned. This ensures that if multiple
* schedules have the same target, they will share a role.
*/
private createOrGetScheduleTargetRole;
/**
* Allow schedule to send events with failed invocation to an Amazon SQS queue.
*/
private addDeadLetterQueueActionToRole;
private renderRetryPolicy;
}