import kms = require('@aws-cdk/aws-kms'); import s3n = require('@aws-cdk/aws-s3-notifications'); import cdk = require('@aws-cdk/cdk'); import { QueueArn } from './sqs.generated'; /** * Reference to a new or existing Amazon SQS queue */ export declare abstract class QueueRef extends cdk.Construct implements s3n.IBucketNotificationDestination { /** * Import an existing queue */ static import(parent: cdk.Construct, name: string, props: QueueRefProps): void; /** * The ARN of this queue */ abstract readonly queueArn: QueueArn; /** * The URL of this queue */ abstract readonly queueUrl: QueueUrl; /** * If this queue is server-side encrypted, this is the KMS encryption key. */ abstract readonly encryptionMasterKey?: kms.EncryptionKeyRef; /** * Controls automatic creation of policy objects. * * Set by subclasses. */ protected abstract readonly autoCreatePolicy: boolean; private policy?; /** * The set of S3 bucket IDs that are allowed to send notifications to this queue. */ private readonly notifyingBuckets; /** * Export a queue */ export(): QueueRefProps; /** * Adds a statement to the IAM resource policy associated with this queue. * * If this queue was created in this stack (`new Queue`), a queue policy * will be automatically created upon the first call to `addToPolicy`. If * the queue is improted (`Queue.import`), then this is a no-op. */ addToResourcePolicy(statement: cdk.PolicyStatement): void; /** * Allows using SQS queues as destinations for bucket notifications. * Use `bucket.onEvent(event, queue)` to subscribe. * @param bucketArn The ARN of the notifying bucket. * @param bucketId A unique ID for the notifying bucket. */ asBucketNotificationDestination(bucketArn: cdk.Arn, bucketId: string): s3n.BucketNotificationDestinationProps; } /** * Reference to a queue */ export interface QueueRefProps { /** * The ARN of the queue. */ queueArn: QueueArn; /** * The URL of the queue. */ queueUrl: QueueUrl; /** * KMS encryption key, if this queue is server-side encrypted by a KMS key. */ keyArn?: kms.KeyArn; } /** * URL of a queue */ export declare class QueueUrl extends cdk.Token { }