import iam = require('@aws-cdk/aws-iam'); import cdk = require('@aws-cdk/cdk'); import { LogGroup } from './log-group'; import { DestinationArn } from './logs.generated'; import { ILogSubscriptionDestination, LogSubscriptionDestination } from './subscription-filter'; export interface CrossAccountDestinationProps { /** * The name of the log destination. * * @default Automatically generated */ destinationName?: string; /** * The role to assume that grants permissions to write to 'target'. * * The role must be assumable by 'logs.{REGION}.amazonaws.com'. */ role: iam.Role; /** * The log destination target's ARN */ targetArn: cdk.Arn; } /** * A new CloudWatch Logs Destination for use in cross-account scenarios * * Log destinations can be used to subscribe a Kinesis stream in a different * account to a CloudWatch Subscription. A Kinesis stream in the same account * can be subscribed directly. * * The @aws-cdk/aws-kinesis library takes care of this automatically; you shouldn't * need to bother with this class. */ export declare class CrossAccountDestination extends cdk.Construct implements ILogSubscriptionDestination { /** * Policy object of this CrossAccountDestination object */ readonly policyDocument: cdk.PolicyDocument; /** * The name of this CrossAccountDestination object */ readonly destinationName: DestinationName; /** * The ARN of this CrossAccountDestination object */ readonly destinationArn: DestinationArn; /** * The inner resource */ private readonly resource; constructor(parent: cdk.Construct, id: string, props: CrossAccountDestinationProps); addToPolicy(statement: cdk.PolicyStatement): void; logSubscriptionDestination(_sourceLogGroup: LogGroup): LogSubscriptionDestination; /** * Generate a unique Destination name in case the user didn't supply one */ private generateUniqueName; /** * Return a stringified JSON version of the PolicyDocument */ private stringifiedPolicyDocument; } /** * Name of a CloudWatch Destination */ export declare class DestinationName extends cdk.Token { }