aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
115 lines (114 loc) • 4.01 kB
TypeScript
import { Duration } from '../../core';
/**
* Algorithms which can be used by SNS to calculate the delays associated with all of the retry attempts between the first and last retries in the backoff phase.
*/
export declare enum BackoffFunction {
/**
* Arithmetic, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
*/
ARITHMETIC = "ARITHMETIC",
/**
* Exponential, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
*/
EXPONENTIAL = "EXPONENTIAL",
/**
* Geometric, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
*/
GEOMETRIC = "GEOMETRIC",
/**
* Linear, see {@link https://docs.aws.amazon.com/images/sns/latest/dg/images/backoff-graph.png|this image} for how this function compares to others
*/
LINEAR = "LINEAR"
}
/**
* Options for customising AWS SNS HTTP/S delivery throttling.
*/
export interface ThrottlePolicy {
/**
* The maximum number of deliveries per second, per subscription.
*
* @default - no throttling
*/
readonly maxReceivesPerSecond?: number;
}
/**
* Options for customising aspects of the content sent in AWS SNS HTTP/S requests.
*/
export interface RequestPolicy {
/**
* The content type of the notification being sent to HTTP/S endpoints.
*
* @default - text/plain; charset=UTF-8
*/
readonly headerContentType?: string;
}
/**
* Options for customising the retry policy of the delivery of SNS messages to HTTP/S endpoints.
*/
export interface HealthyRetryPolicy {
/**
* The minimum delay for a retry. Must be at least one second, not exceed `maxDelayTarget`, and correspond to a whole number of seconds.
*
* @default - 20 seconds
*/
readonly minDelayTarget?: Duration;
/**
* The maximum delay for a retry. Must be at least `minDelayTarget` less than 3,600 seconds, and correspond to a whole number of seconds,
*
* @default - 20 seconds
*/
readonly maxDelayTarget?: Duration;
/**
* The total number of retries, including immediate, pre-backoff, backoff, and post-backoff retries. Must be greater than or equal to zero and not exceed 100.
*
* @default 3
*/
readonly numRetries?: number;
/**
* The number of retries to be done immediately, with no delay between them. Must be zero or greater.
*
* @default 0
*/
readonly numNoDelayRetries?: number;
/**
* The number of retries in the pre-backoff phase, with the specified minimum delay between them. Must be zero or greater
*
* @default 0
*/
readonly numMinDelayRetries?: number;
/**
* The number of retries in the post-backoff phase, with the maximum delay between them. Must be zero or greater
*
* @default 0
*/
readonly numMaxDelayRetries?: number;
/**
* The model for backoff between retries.
*
* @default - linear
*/
readonly backoffFunction?: BackoffFunction;
}
/**
* Options for customising the delivery of SNS messages to HTTP/S endpoints.
*/
export interface DeliveryPolicy {
/**
* The retry policy of the delivery of SNS messages to HTTP/S endpoints.
*
* @default - Amazon SNS attempts up to three retries with a delay between failed attempts set at 20 seconds
*/
readonly healthyRetryPolicy?: HealthyRetryPolicy;
/**
* The throttling policy of the delivery of SNS messages to HTTP/S endpoints.
*
* @default - No throttling
*/
readonly throttlePolicy?: ThrottlePolicy;
/**
* The request of the content sent in AWS SNS HTTP/S requests.
*
* @default - The content type is set to 'text/plain; charset=UTF-8'
*/
readonly requestPolicy?: RequestPolicy;
}