@aws-cdk/aws-glue-alpha
Version:
The CDK Construct Library for AWS::Glue
206 lines (205 loc) • 5.69 kB
TypeScript
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;
}