217 lines
7.0 KiB
TypeScript
217 lines
7.0 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { ScheduleExpression } from './schedule-expression';
|
|
import type { IScheduleGroup } from './schedule-group';
|
|
import type { IScheduleRef, ScheduleReference } from './scheduler.generated';
|
|
import type { IScheduleTarget } from './target';
|
|
import * as cloudwatch from '../../aws-cloudwatch';
|
|
import type * as kms from '../../aws-kms';
|
|
import type { Duration, IResource } from '../../core';
|
|
import { Resource } from '../../core';
|
|
/**
|
|
* Interface representing a created or an imported `Schedule`.
|
|
*/
|
|
export interface ISchedule extends IResource, IScheduleRef {
|
|
/**
|
|
* The arn of the schedule.
|
|
* @attribute
|
|
*/
|
|
readonly scheduleArn: string;
|
|
/**
|
|
* The name of the schedule.
|
|
* @attribute
|
|
*/
|
|
readonly scheduleName: string;
|
|
/**
|
|
* The schedule group associated with this schedule.
|
|
*/
|
|
readonly scheduleGroup?: IScheduleGroup;
|
|
}
|
|
/**
|
|
* A time window during which EventBridge Scheduler invokes the schedule.
|
|
*/
|
|
export declare class TimeWindow {
|
|
/**
|
|
* TimeWindow is disabled.
|
|
*/
|
|
static off(): TimeWindow;
|
|
/**
|
|
* TimeWindow is enabled.
|
|
*/
|
|
static flexible(maxWindow: Duration): TimeWindow;
|
|
/**
|
|
* Determines whether the schedule is invoked within a flexible time window.
|
|
*/
|
|
readonly mode: 'OFF' | 'FLEXIBLE';
|
|
/**
|
|
* The maximum time window during which the schedule can be invoked.
|
|
*
|
|
* Must be between 1 to 1440 minutes.
|
|
*
|
|
* @default - no value
|
|
*/
|
|
readonly maxWindow?: Duration;
|
|
private constructor();
|
|
}
|
|
/**
|
|
* Construction properties for `Schedule`.
|
|
*/
|
|
export interface ScheduleProps {
|
|
/**
|
|
* The expression that defines when the schedule runs. Can be either a `at`, `rate`
|
|
* or `cron` expression.
|
|
*/
|
|
readonly schedule: ScheduleExpression;
|
|
/**
|
|
* The schedule's target details.
|
|
*/
|
|
readonly target: IScheduleTarget;
|
|
/**
|
|
* The name of the schedule.
|
|
*
|
|
* Up to 64 letters (uppercase and lowercase), numbers, hyphens, underscores and dots are allowed.
|
|
*
|
|
* @default - A unique name will be generated
|
|
*/
|
|
readonly scheduleName?: string;
|
|
/**
|
|
* The description you specify for the schedule.
|
|
*
|
|
* @default - no value
|
|
*/
|
|
readonly description?: string;
|
|
/**
|
|
* The schedule's group.
|
|
*
|
|
* @default - By default a schedule will be associated with the `default` group.
|
|
*/
|
|
readonly scheduleGroup?: IScheduleGroup;
|
|
/**
|
|
* Indicates whether the schedule is enabled.
|
|
*
|
|
* @default true
|
|
*/
|
|
readonly enabled?: boolean;
|
|
/**
|
|
* The customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.
|
|
*
|
|
* @default - All events in Scheduler are encrypted with a key that AWS owns and manages.
|
|
*/
|
|
readonly key?: kms.IKey;
|
|
/**
|
|
* A time window during which EventBridge Scheduler invokes the schedule.
|
|
*
|
|
* @see https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-schedule-flexible-time-windows.html
|
|
*
|
|
* @default TimeWindow.off()
|
|
*/
|
|
readonly timeWindow?: TimeWindow;
|
|
/**
|
|
* The date, in UTC, after which the schedule can begin invoking its target.
|
|
* EventBridge Scheduler ignores start for one-time schedules.
|
|
*
|
|
* @default - no value
|
|
*/
|
|
readonly start?: Date;
|
|
/**
|
|
* The date, in UTC, before which the schedule can invoke its target.
|
|
* EventBridge Scheduler ignores end for one-time schedules.
|
|
*
|
|
* @default - no value
|
|
*/
|
|
readonly end?: Date;
|
|
}
|
|
/**
|
|
* An EventBridge Schedule
|
|
*/
|
|
export declare class Schedule extends Resource implements ISchedule {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Return the given named metric for all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAll(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for the number of invocations that were throttled across all schedules.
|
|
*
|
|
* @see https://docs.aws.amazon.com/scheduler/latest/UserGuide/scheduler-quotas.html
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllThrottled(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for all invocation attempts across all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllAttempts(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Emitted when the target returns an exception after EventBridge Scheduler calls the target API across all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for invocation failures due to API throttling by the target across all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllTargetThrottled(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for dropped invocations when EventBridge Scheduler stops attempting to invoke the target after a schedule's retry policy has been exhausted.
|
|
* Metric is calculated for all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllDropped(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for invocations delivered to the DLQ across all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllSentToDLQ(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for failed invocations that also failed to deliver to DLQ across all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllFailedToBeSentToDLQ(errorCode?: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for delivery of failed invocations to DLQ when the payload of the event sent to the DLQ exceeds the maximum size allowed by Amazon SQS.
|
|
* Metric is calculated for all schedules.
|
|
*
|
|
* @default - sum over 5 minutes
|
|
*/
|
|
static metricAllSentToDLQTruncated(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Import an existing schedule using the ARN.
|
|
*/
|
|
static fromScheduleArn(scope: Construct, id: string, scheduleArn: string): ISchedule;
|
|
/**
|
|
* The schedule group associated with this schedule.
|
|
*/
|
|
readonly scheduleGroup?: IScheduleGroup;
|
|
/**
|
|
* The arn of the schedule.
|
|
*/
|
|
get scheduleArn(): string;
|
|
/**
|
|
* The name of the schedule.
|
|
*/
|
|
get scheduleName(): string;
|
|
/**
|
|
* The customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt your data.
|
|
*/
|
|
readonly key?: kms.IKey;
|
|
private readonly _resource;
|
|
/**
|
|
* A `RetryPolicy` object that includes information about the retry policy settings.
|
|
*/
|
|
private readonly retryPolicy?;
|
|
constructor(scope: Construct, id: string, props: ScheduleProps);
|
|
private renderRetryPolicy;
|
|
private validateTimeFrame;
|
|
get scheduleRef(): ScheduleReference;
|
|
}
|