packages/aws-cdk-lib/aws-scheduler-targets/lib/firehose-put-record.ts (18 lines of code) (raw):
import { ScheduleTargetBase, ScheduleTargetBaseProps } from './target';
import { IRole, PolicyStatement } from '../../aws-iam';
import { IDeliveryStream } from '../../aws-kinesisfirehose';
import { IScheduleTarget } from '../../aws-scheduler';
/**
* Use an Amazon Data Firehose as a target for AWS EventBridge Scheduler.
*/
export class FirehosePutRecord extends ScheduleTargetBase implements IScheduleTarget {
constructor(
private readonly deliveryStream: IDeliveryStream,
props: ScheduleTargetBaseProps = {},
) {
super(props, deliveryStream.deliveryStreamArn);
}
protected addTargetActionToRole(role: IRole): void {
role.addToPrincipalPolicy(new PolicyStatement({
actions: ['firehose:PutRecord'],
resources: [this.deliveryStream.deliveryStreamArn],
}));
}
}