217 lines
8.2 KiB
TypeScript
217 lines
8.2 KiB
TypeScript
import type { Construct } from 'constructs';
|
|
import type { IDestination } from './destination';
|
|
import type { StreamEncryption } from './encryption';
|
|
import { DeliveryStreamGrants } from './kinesisfirehose-grants.generated';
|
|
import type { DeliveryStreamReference, IDeliveryStreamRef } from './kinesisfirehose.generated';
|
|
import type { ISource } from './source';
|
|
import * as cloudwatch from '../../aws-cloudwatch';
|
|
import * as ec2 from '../../aws-ec2';
|
|
import * as iam from '../../aws-iam';
|
|
import * as cdk from '../../core';
|
|
/**
|
|
* Represents an Amazon Data Firehose delivery stream.
|
|
*/
|
|
export interface IDeliveryStream extends cdk.IResource, iam.IGrantable, ec2.IConnectable, IDeliveryStreamRef {
|
|
/**
|
|
* The ARN of the delivery stream.
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly deliveryStreamArn: string;
|
|
/**
|
|
* The name of the delivery stream.
|
|
*
|
|
* @attribute
|
|
*/
|
|
readonly deliveryStreamName: string;
|
|
/**
|
|
* Grant the `grantee` identity permissions to perform `actions`.
|
|
*/
|
|
grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
|
|
/**
|
|
* Grant the `grantee` identity permissions to perform `firehose:PutRecord` and `firehose:PutRecordBatch` actions on this delivery stream.
|
|
*/
|
|
grantPutRecords(grantee: iam.IGrantable): iam.Grant;
|
|
/**
|
|
* Return the given named metric for this delivery stream.
|
|
*/
|
|
metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for the number of bytes ingested successfully into the delivery stream over the specified time period after throttling.
|
|
*
|
|
* By default, this metric will be calculated as an average over a period of 5 minutes.
|
|
*/
|
|
metricIncomingBytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for the number of records ingested successfully into the delivery stream over the specified time period after throttling.
|
|
*
|
|
* By default, this metric will be calculated as an average over a period of 5 minutes.
|
|
*/
|
|
metricIncomingRecords(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for the number of bytes delivered to Amazon S3 for backup over the specified time period.
|
|
*
|
|
* By default, this metric will be calculated as an average over a period of 5 minutes.
|
|
*/
|
|
metricBackupToS3Bytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for the age (from getting into Amazon Data Firehose to now) of the oldest record in Amazon Data Firehose.
|
|
*
|
|
* Any record older than this age has been delivered to the Amazon S3 bucket for backup.
|
|
*
|
|
* By default, this metric will be calculated as an average over a period of 5 minutes.
|
|
*/
|
|
metricBackupToS3DataFreshness(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
/**
|
|
* Metric for the number of records delivered to Amazon S3 for backup over the specified time period.
|
|
*
|
|
* By default, this metric will be calculated as an average over a period of 5 minutes.
|
|
*/
|
|
metricBackupToS3Records(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
}
|
|
/**
|
|
* Base class for new and imported Amazon Data Firehose delivery streams.
|
|
*/
|
|
declare abstract class DeliveryStreamBase extends cdk.Resource implements IDeliveryStream {
|
|
abstract readonly deliveryStreamName: string;
|
|
abstract readonly deliveryStreamArn: string;
|
|
abstract readonly grantPrincipal: iam.IPrincipal;
|
|
/**
|
|
* Collection of grant methods for a DeliveryStream
|
|
*/
|
|
readonly grants: DeliveryStreamGrants;
|
|
/**
|
|
* Network connections between Amazon Data Firehose and other resources, i.e. Redshift cluster.
|
|
*/
|
|
readonly connections: ec2.Connections;
|
|
constructor(scope: Construct, id: string, props?: cdk.ResourceProps);
|
|
get deliveryStreamRef(): DeliveryStreamReference;
|
|
/**
|
|
* [disable-awslint:no-grants]
|
|
*/
|
|
grant(grantee: iam.IGrantable, ...actions: string[]): iam.Grant;
|
|
/**
|
|
*
|
|
* The use of this method is discouraged. Please use `grants.putRecords()` instead.
|
|
*
|
|
* [disable-awslint:no-grants]
|
|
*/
|
|
grantPutRecords(grantee: iam.IGrantable): iam.Grant;
|
|
metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
metricIncomingBytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
metricIncomingRecords(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
metricBackupToS3Bytes(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
metricBackupToS3DataFreshness(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
metricBackupToS3Records(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
|
|
private cannedMetric;
|
|
}
|
|
/**
|
|
* Options for server-side encryption of a delivery stream.
|
|
*/
|
|
export declare enum StreamEncryptionType {
|
|
/**
|
|
* Data in the stream is stored unencrypted.
|
|
*/
|
|
UNENCRYPTED = 0,
|
|
/**
|
|
* Data in the stream is stored encrypted by a KMS key managed by the customer.
|
|
*/
|
|
CUSTOMER_MANAGED = 1,
|
|
/**
|
|
* Data in the stream is stored encrypted by a KMS key owned by AWS and managed for use in multiple AWS accounts.
|
|
*/
|
|
AWS_OWNED = 2
|
|
}
|
|
/**
|
|
* Properties for a new delivery stream.
|
|
*/
|
|
export interface DeliveryStreamProps {
|
|
/**
|
|
* The destination that this delivery stream will deliver data to.
|
|
*/
|
|
readonly destination: IDestination;
|
|
/**
|
|
* A name for the delivery stream.
|
|
*
|
|
* @default - a name is generated by CloudFormation.
|
|
*/
|
|
readonly deliveryStreamName?: string;
|
|
/**
|
|
* The Kinesis data stream to use as a source for this delivery stream.
|
|
*
|
|
* @default - data must be written to the delivery stream via a direct put.
|
|
*/
|
|
readonly source?: ISource;
|
|
/**
|
|
* The IAM role associated with this delivery stream.
|
|
*
|
|
* Assumed by Amazon Data Firehose to read from sources and encrypt data server-side.
|
|
*
|
|
* @default - a role will be created with default permissions.
|
|
*/
|
|
readonly role?: iam.IRole;
|
|
/**
|
|
* Indicates the type of customer master key (CMK) to use for server-side encryption, if any.
|
|
*
|
|
* @default StreamEncryption.unencrypted()
|
|
*/
|
|
readonly encryption?: StreamEncryption;
|
|
}
|
|
/**
|
|
* A full specification of a delivery stream that can be used to import it fluently into the CDK application.
|
|
*/
|
|
export interface DeliveryStreamAttributes {
|
|
/**
|
|
* The ARN of the delivery stream.
|
|
*
|
|
* At least one of deliveryStreamArn and deliveryStreamName must be provided.
|
|
*
|
|
* @default - derived from `deliveryStreamName`.
|
|
*/
|
|
readonly deliveryStreamArn?: string;
|
|
/**
|
|
* The name of the delivery stream
|
|
*
|
|
* At least one of deliveryStreamName and deliveryStreamArn must be provided.
|
|
*
|
|
* @default - derived from `deliveryStreamArn`.
|
|
*/
|
|
readonly deliveryStreamName?: string;
|
|
/**
|
|
* The IAM role associated with this delivery stream.
|
|
*
|
|
* Assumed by Amazon Data Firehose to read from sources and encrypt data server-side.
|
|
*
|
|
* @default - the imported stream cannot be granted access to other resources as an `iam.IGrantable`.
|
|
*/
|
|
readonly role?: iam.IRole;
|
|
}
|
|
/**
|
|
* Create a Amazon Data Firehose delivery stream
|
|
*
|
|
* @resource AWS::KinesisFirehose::DeliveryStream
|
|
*/
|
|
export declare class DeliveryStream extends DeliveryStreamBase {
|
|
/** Uniquely identifies this class. */
|
|
static readonly PROPERTY_INJECTION_ID: string;
|
|
/**
|
|
* Import an existing delivery stream from its name.
|
|
*/
|
|
static fromDeliveryStreamName(scope: Construct, id: string, deliveryStreamName: string): IDeliveryStream;
|
|
/**
|
|
* Import an existing delivery stream from its ARN.
|
|
*/
|
|
static fromDeliveryStreamArn(scope: Construct, id: string, deliveryStreamArn: string): IDeliveryStream;
|
|
/**
|
|
* Import an existing delivery stream from its attributes.
|
|
*/
|
|
static fromDeliveryStreamAttributes(scope: Construct, id: string, attrs: DeliveryStreamAttributes): IDeliveryStream;
|
|
private readonly resource;
|
|
private _role?;
|
|
get deliveryStreamArn(): string;
|
|
get deliveryStreamName(): string;
|
|
get grantPrincipal(): iam.IPrincipal;
|
|
constructor(scope: Construct, id: string, props: DeliveryStreamProps);
|
|
}
|
|
export {};
|