UNPKG

@aws-cdk/aws-glue-alpha

Version:

The CDK Construct Library for AWS::Glue

206 lines (205 loc) 5.69 kB
import * as cdk from 'aws-cdk-lib/core'; import { JobState, CrawlerState, ConditionLogicalOperator, PredicateLogical } from '../constants'; import { IJob } from '../jobs/job'; import { CfnCrawler } from 'aws-cdk-lib/aws-glue'; import { ISecurityConfiguration } from '../security-configuration'; import * as events from 'aws-cdk-lib/aws-events'; /** * Represents a trigger action. */ export interface Action { /** * The job to be executed. * * @default - no job is executed */ readonly job?: IJob; /** * The job arguments used when this trigger fires. * * @default - no arguments are passed to the job */ readonly arguments?: { [key: string]: string; }; /** * The job run timeout. This is the maximum time that a job run can consume resources before it is terminated and enters TIMEOUT status. * * @default - the default timeout value set in the job definition */ readonly timeout?: cdk.Duration; /** * The `SecurityConfiguration` to be used with this action. * * @default - no security configuration is used */ readonly securityConfiguration?: ISecurityConfiguration; /** * The name of the crawler to be used with this action. * * @default - no crawler is used */ readonly crawler?: CfnCrawler; } /** * Represents a trigger schedule. */ export declare class TriggerSchedule { readonly expressionString: string; /** * Creates a new TriggerSchedule instance with a cron expression. * * @param options The cron options for the schedule. * @returns A new TriggerSchedule instance. */ static cron(options: events.CronOptions): TriggerSchedule; /** * Creates a new TriggerSchedule instance with a custom expression. * * @param expression The custom expression for the schedule. * @returns A new TriggerSchedule instance. */ static expression(expression: string): TriggerSchedule; /** * @param expressionString The expression string for the schedule. */ private constructor(); } /** * Represents a trigger predicate. */ export interface Predicate { /** * The logical operator to be applied to the conditions. * * @default - ConditionLogical.AND if multiple conditions are provided, no logical operator if only one condition */ readonly logical?: PredicateLogical; /** * A list of the conditions that determine when the trigger will fire. * * @default - no conditions are provided */ readonly conditions?: Condition[]; } /** * Represents a trigger condition. */ export interface Condition { /** * The logical operator for the condition. * * @default ConditionLogicalOperator.EQUALS */ readonly logicalOperator?: ConditionLogicalOperator; /** * The job to which this condition applies. * * @default - no job is specified */ readonly job?: IJob; /** * The condition job state. * * @default - no job state is specified */ readonly state?: JobState; /** * The name of the crawler to which this condition applies. * * @default - no crawler is specified */ readonly crawlerName?: string; /** * The condition crawler state. * * @default - no crawler state is specified */ readonly crawlState?: CrawlerState; } /** * Represents event trigger batch condition. */ export interface EventBatchingCondition { /** * Number of events that must be received from Amazon EventBridge before EventBridge event trigger fires. */ readonly batchSize: number; /** * Window of time in seconds after which EventBridge event trigger fires. * * @default - 900 seconds */ readonly batchWindow?: cdk.Duration; } /** * Properties for configuring a Glue Trigger */ export interface TriggerOptions { /** * A name for the trigger. * * @default - no name is provided */ readonly name?: string; /** * A description for the trigger. * * @default - no description */ readonly description?: string; /** * The actions initiated by this trigger. */ readonly actions: Action[]; } /** * Properties for configuring an on-demand Glue Trigger. */ export interface OnDemandTriggerOptions extends TriggerOptions { } /** * Properties for configuring a daily-scheduled Glue Trigger. */ export interface DailyScheduleTriggerOptions extends TriggerOptions { /** * Whether to start the trigger on creation or not. * * @default - false */ readonly startOnCreation?: boolean; } /** * Properties for configuring a weekly-scheduled Glue Trigger. */ export interface WeeklyScheduleTriggerOptions extends DailyScheduleTriggerOptions { } /** * Properties for configuring a custom-scheduled Glue Trigger. */ export interface CustomScheduledTriggerOptions extends WeeklyScheduleTriggerOptions { /** * The custom schedule for the trigger. */ readonly schedule: TriggerSchedule; } /** * Properties for configuring an Event Bridge based Glue Trigger. */ export interface NotifyEventTriggerOptions extends TriggerOptions { /** * Batch condition for the trigger. * * @default - no batch condition */ readonly eventBatchingCondition?: EventBatchingCondition; } /** * Properties for configuring a Condition (Predicate) based Glue Trigger. */ export interface ConditionalTriggerOptions extends DailyScheduleTriggerOptions { /** * The predicate for the trigger. */ readonly predicate: Predicate; }