import * as cdk from "../../core/lib"; import * as constructs from "constructs"; import * as cfn_parse from "../../core/lib/helpers-internal"; import { ChannelReference, IChannelRef, IResourcePolicyRef, IStreamConsumerRef, IStreamRef, ResourcePolicyReference, StreamConsumerReference, StreamReference } from "../../interfaces/generated/aws-kinesis-interfaces.generated"; import { aws_kinesis as kinesisRefs } from "../../interfaces"; /** * Creates a Kinesis stream that captures and transports data records that are emitted from data sources. * * For information about creating streams, see [CreateStream](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_CreateStream.html) in the Amazon Kinesis API Reference. * * @cloudformationResource AWS::Kinesis::Stream * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html */ export declare class CfnStream extends cdk.CfnResource implements cdk.IInspectable, IStreamRef, cdk.ITaggable { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnStream from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnStream; /** * Checks whether the given object is a CfnStream */ static isCfnStream(x: any): x is CfnStream; /** * Creates a new IStreamRef from an ARN */ static fromStreamArn(scope: constructs.Construct, id: string, arn: string): IStreamRef; /** * Creates a new IStreamRef from a streamName */ static fromStreamName(scope: constructs.Construct, id: string, streamName: string): IStreamRef; static arnForStream(resource: IStreamRef): string; /** * A list of shard-level metrics in properties to enable enhanced monitoring mode. */ private _desiredShardLevelMetrics?; /** * The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream. */ private _maxRecordSizeInKiB?; /** * The name of the Kinesis stream. */ private _name?; /** * The record distribution strategy for the stream. */ private _recordDistributionStrategy?; /** * The number of hours for the data records that are stored in shards to remain accessible. */ private _retentionPeriodHours?; /** * The number of shards that the stream uses. */ private _shardCount?; /** * When specified, enables or updates server-side encryption using an AWS KMS key for a specified stream. */ private _streamEncryption?; /** * Specifies the capacity mode to which you want to set your data stream. */ private _streamModeDetails?; /** * Tag Manager which manages the tags for this resource */ readonly tags: cdk.TagManager; /** * An arbitrary set of tags (key–value pairs) to associate with the Kinesis stream. */ private _tagsRaw?; /** * The target warm throughput in MB/s that the stream should be scaled to handle. */ private _warmThroughputMiBps?; protected readonly cfnPropertyNames: Record; /** * Create a new `AWS::Kinesis::Stream`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props?: CfnStreamProps); get streamRef(): StreamReference; /** * A list of shard-level metrics in properties to enable enhanced monitoring mode. */ get desiredShardLevelMetrics(): Array | undefined; /** * A list of shard-level metrics in properties to enable enhanced monitoring mode. */ set desiredShardLevelMetrics(value: Array | undefined); /** * The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream. */ get maxRecordSizeInKiB(): number | undefined; /** * The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream. */ set maxRecordSizeInKiB(value: number | undefined); /** * The name of the Kinesis stream. */ get name(): string | undefined; /** * The name of the Kinesis stream. */ set name(value: string | undefined); /** * The record distribution strategy for the stream. */ get recordDistributionStrategy(): string | undefined; /** * The record distribution strategy for the stream. */ set recordDistributionStrategy(value: string | undefined); /** * The number of hours for the data records that are stored in shards to remain accessible. */ get retentionPeriodHours(): number | undefined; /** * The number of hours for the data records that are stored in shards to remain accessible. */ set retentionPeriodHours(value: number | undefined); /** * The number of shards that the stream uses. */ get shardCount(): number | undefined; /** * The number of shards that the stream uses. */ set shardCount(value: number | undefined); /** * When specified, enables or updates server-side encryption using an AWS KMS key for a specified stream. */ get streamEncryption(): cdk.IResolvable | CfnStream.StreamEncryptionProperty | undefined; /** * When specified, enables or updates server-side encryption using an AWS KMS key for a specified stream. */ set streamEncryption(value: cdk.IResolvable | CfnStream.StreamEncryptionProperty | undefined); /** * Specifies the capacity mode to which you want to set your data stream. */ get streamModeDetails(): cdk.IResolvable | CfnStream.StreamModeDetailsProperty | undefined; /** * Specifies the capacity mode to which you want to set your data stream. */ set streamModeDetails(value: cdk.IResolvable | CfnStream.StreamModeDetailsProperty | undefined); /** * An arbitrary set of tags (key–value pairs) to associate with the Kinesis stream. */ get tagsRaw(): Array | undefined; /** * An arbitrary set of tags (key–value pairs) to associate with the Kinesis stream. */ set tagsRaw(value: Array | undefined); /** * The target warm throughput in MB/s that the stream should be scaled to handle. */ get warmThroughputMiBps(): number | undefined; /** * The target warm throughput in MB/s that the stream should be scaled to handle. */ set warmThroughputMiBps(value: number | undefined); /** * The Amazon resource name (ARN) of the Kinesis stream, such as `arn:aws:kinesis:us-east-2:123456789012:stream/mystream` . * * @cloudformationAttribute Arn */ get attrArn(): string; /** * Warm throughput configuration details for the stream. Only present for ON_DEMAND streams. * * @cloudformationAttribute WarmThroughputObject */ get attrWarmThroughputObject(): cdk.IResolvable; protected get cfnProperties(): Record; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record): Record; } export declare namespace CfnStream { /** * Specifies the capacity mode to which you want to set your data stream. * * Currently, in Kinesis Data Streams, you can choose between an *on-demand* capacity mode and a *provisioned* capacity mode for your data streams. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streammodedetails.html */ interface StreamModeDetailsProperty { /** * Specifies the capacity mode to which you want to set your data stream. * * Currently, in Kinesis Data Streams, you can choose between an *on-demand* capacity mode and a *provisioned* capacity mode for your data streams. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streammodedetails.html#cfn-kinesis-stream-streammodedetails-streammode */ readonly streamMode: string; } /** * Enables or updates server-side encryption using an AWS KMS key for a specified stream. * * > When invoking this API, you must use either the `StreamARN` or the `StreamName` parameter, or both. It is recommended that you use the `StreamARN` input parameter when you invoke this API. * * Starting encryption is an asynchronous operation. Upon receiving the request, Kinesis Data Streams returns immediately and sets the status of the stream to `UPDATING` . After the update is complete, Kinesis Data Streams sets the status of the stream back to `ACTIVE` . Updating or applying encryption normally takes a few seconds to complete, but it can take minutes. You can continue to read and write data to your stream while its status is `UPDATING` . Once the status of the stream is `ACTIVE` , encryption begins for records written to the stream. * * API Limits: You can successfully apply a new AWS KMS key for server-side encryption 25 times in a rolling 24-hour period. * * Note: It can take up to 5 seconds after the stream is in an `ACTIVE` status before all records written to the stream are encrypted. After you enable encryption, you can verify that encryption is applied by inspecting the API response from `PutRecord` or `PutRecords` . * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html */ interface StreamEncryptionProperty { /** * The encryption type to use. * * The only valid value is `KMS` . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-encryptiontype */ readonly encryptionType: string; /** * The GUID for the customer-managed AWS KMS key to use for encryption. * * This value can be a globally unique identifier, a fully specified Amazon Resource Name (ARN) to either an alias or a key, or an alias name prefixed by "alias/".You can also use a master key owned by Kinesis Data Streams by specifying the alias `aws/kinesis` . * * - Key ARN example: `arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012` * - Alias ARN example: `arn:aws:kms:us-east-1:123456789012:alias/MyAliasName` * - Globally unique key ID example: `12345678-1234-1234-1234-123456789012` * - Alias name example: `alias/MyAliasName` * - Master key owned by Kinesis Data Streams: `alias/aws/kinesis` * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-streamencryption.html#cfn-kinesis-stream-streamencryption-keyid */ readonly keyId: string; } /** * Represents the warm throughput configuration on the stream. * * This is only present for On-Demand Kinesis Data Streams in accounts that have `MinimumThroughputBillingCommitment` enabled. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-warmthroughputobject.html */ interface WarmThroughputObjectProperty { /** * The current warm throughput value on the stream. * * This is the write throughput in MiBps that the stream is currently scaled to handle. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-warmthroughputobject.html#cfn-kinesis-stream-warmthroughputobject-currentmibps */ readonly currentMiBps?: number; /** * The target warm throughput value on the stream. * * This indicates that the stream is currently scaling towards this target value. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-stream-warmthroughputobject.html#cfn-kinesis-stream-warmthroughputobject-targetmibps */ readonly targetMiBps?: number; } } /** * Properties for defining a `CfnStream` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html */ export interface CfnStreamProps { /** * A list of shard-level metrics in properties to enable enhanced monitoring mode. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-desiredshardlevelmetrics */ readonly desiredShardLevelMetrics?: Array; /** * The maximum record size of a single record in kibibyte (KiB) that you can write to, and read from a stream. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-maxrecordsizeinkib */ readonly maxRecordSizeInKiB?: number; /** * The name of the Kinesis stream. * * If you don't specify a name, AWS CloudFormation generates a unique physical ID and uses that ID for the stream name. For more information, see [Name Type](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-name.html) . * * If you specify a name, you cannot perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you must replace the resource, specify a new name. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-name */ readonly name?: string; /** * The record distribution strategy for the stream. * * This property can ONLY be set when StreamMode is ON_DEMAND * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-recorddistributionstrategy */ readonly recordDistributionStrategy?: string; /** * The number of hours for the data records that are stored in shards to remain accessible. * * The default value is 24. For more information about the stream retention period, see [Changing the Data Retention Period](https://docs.aws.amazon.com/streams/latest/dev/kinesis-extended-retention.html) in the Amazon Kinesis Developer Guide. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-retentionperiodhours */ readonly retentionPeriodHours?: number; /** * The number of shards that the stream uses. * * For greater provisioned throughput, increase the number of shards. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-shardcount */ readonly shardCount?: number; /** * When specified, enables or updates server-side encryption using an AWS KMS key for a specified stream. * * Removing this property from your stack template and updating your stack disables encryption. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-streamencryption */ readonly streamEncryption?: cdk.IResolvable | CfnStream.StreamEncryptionProperty; /** * Specifies the capacity mode to which you want to set your data stream. * * Currently, in Kinesis Data Streams, you can choose between an *on-demand* capacity mode and a *provisioned* capacity mode for your data streams. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-streammodedetails */ readonly streamModeDetails?: cdk.IResolvable | CfnStream.StreamModeDetailsProperty; /** * An arbitrary set of tags (key–value pairs) to associate with the Kinesis stream. * * For information about constraints for this property, see [Tag Restrictions](https://docs.aws.amazon.com/streams/latest/dev/tagging.html#tagging-restrictions) in the *Amazon Kinesis Developer Guide* . * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-tags */ readonly tags?: Array; /** * The target warm throughput in MB/s that the stream should be scaled to handle. * * This represents the throughput capacity that will be immediately available for write operations. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-stream.html#cfn-kinesis-stream-warmthroughputmibps */ readonly warmThroughputMiBps?: number; } /** * Use the AWS CloudFormation `AWS::Kinesis::StreamConsumer` resource to register a consumer with a Kinesis data stream. * * The consumer you register can then call [SubscribeToShard](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html) to receive data from the stream using enhanced fan-out, at a rate of up to 2 MiB per second for every shard you subscribe to. This rate is unaffected by the total number of consumers that read from the same stream. * * You can register up to 20 consumers per stream. However, you can request a limit increase using the [Kinesis Data Streams limits form](https://docs.aws.amazon.com/support/v1?#/) . A given consumer can only be registered with one stream at a time. * * For more information, see [Using Consumers with Enhanced Fan-Out](https://docs.aws.amazon.com/streams/latest/dev/introduction-to-enhanced-consumers.html) . * * @cloudformationResource AWS::Kinesis::StreamConsumer * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html */ export declare class CfnStreamConsumer extends cdk.CfnResource implements cdk.IInspectable, IStreamConsumerRef, cdk.ITaggableV2 { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnStreamConsumer from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnStreamConsumer; /** * Checks whether the given object is a CfnStreamConsumer */ static isCfnStreamConsumer(x: any): x is CfnStreamConsumer; /** * Tag Manager which manages the tags for this resource */ readonly cdkTagManager: cdk.TagManager; /** * The name of the consumer is something you choose when you register the consumer. */ private _consumerName; /** * The ARN of the stream with which you registered the consumer. */ private _streamArn; /** * An array of tags to be added to a specified Kinesis resource. */ private _tags?; protected readonly cfnPropertyNames: Record; /** * Create a new `AWS::Kinesis::StreamConsumer`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnStreamConsumerProps); get streamConsumerRef(): StreamConsumerReference; /** * The name of the consumer is something you choose when you register the consumer. */ get consumerName(): string; /** * The name of the consumer is something you choose when you register the consumer. */ set consumerName(value: string); /** * The ARN of the stream with which you registered the consumer. */ get streamArn(): string; /** * The ARN of the stream with which you registered the consumer. */ set streamArn(value: string); /** * An array of tags to be added to a specified Kinesis resource. */ get tags(): Array | undefined; /** * An array of tags to be added to a specified Kinesis resource. */ set tags(value: Array | undefined); /** * When you register a consumer, Kinesis Data Streams generates an ARN for it. You need this ARN to be able to call [SubscribeToShard](https://docs.aws.amazon.com/kinesis/latest/APIReference/API_SubscribeToShard.html) . * * If you delete a consumer and then create a new one with the same name, it won't have the same ARN. That's because consumer ARNs contain the creation timestamp. This is important to keep in mind if you have IAM policies that reference consumer ARNs. * * @cloudformationAttribute ConsumerARN */ get attrConsumerArn(): string; /** * The time at which the consumer was created. * * @cloudformationAttribute ConsumerCreationTimestamp */ get attrConsumerCreationTimestamp(): string; /** * The name you gave the consumer when you registered it. * * @cloudformationAttribute ConsumerName */ get attrConsumerName(): string; /** * A consumer can't read data while in the `CREATING` or `DELETING` states. * * @cloudformationAttribute ConsumerStatus */ get attrConsumerStatus(): string; /** * The ARN of the data stream with which the consumer is registered. * * @cloudformationAttribute StreamARN */ get attrStreamArn(): string; protected get cfnProperties(): Record; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record): Record; } /** * Properties for defining a `CfnStreamConsumer` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html */ export interface CfnStreamConsumerProps { /** * The name of the consumer is something you choose when you register the consumer. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-consumername */ readonly consumerName: string; /** * The ARN of the stream with which you registered the consumer. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-streamarn */ readonly streamArn: string; /** * An array of tags to be added to a specified Kinesis resource. * * A tag consists of a required key and an optional value. You can specify up to 50 tag key-value pairs. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-streamconsumer.html#cfn-kinesis-streamconsumer-tags */ readonly tags?: Array; } /** * Resource Type definition for AWS::Kinesis::Channel. * * @cloudformationResource AWS::Kinesis::Channel * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html */ export declare class CfnChannel extends cdk.CfnResource implements cdk.IInspectable, IChannelRef, cdk.ITaggableV2 { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnChannel from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnChannel; /** * Checks whether the given object is a CfnChannel */ static isCfnChannel(x: any): x is CfnChannel; static arnForChannel(resource: IChannelRef): string; /** * Tag Manager which manages the tags for this resource */ readonly cdkTagManager: cdk.TagManager; /** * The name of the channel. */ private _channelName; /** * Server-side encryption configuration for data at rest in the destination. */ private _encryptionConfiguration?; /** * Configuration for delivering channel operational logs. */ private _loggingConfiguration?; /** * Configuration for delivery to a vanilla S3 bucket destination. */ private _s3DestinationConfiguration?; /** * Configuration for delivery to S3 Tables destinations. */ private _s3TablesDestinationConfiguration?; /** * The ARN of the IAM role that the channel assumes to read from the source stream, deliver records to the destination, and (when enabled) write CloudWatch Logs. */ private _serviceExecutionRoleArn; /** * List of stream configurations associated with the channel. */ private _streamConfigurationList; /** * An arbitrary set of tags (key-value pairs) to associate with the Kinesis channel. */ private _tags?; protected readonly cfnPropertyNames: Record; /** * Create a new `AWS::Kinesis::Channel`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnChannelProps); get channelRef(): ChannelReference; /** * The name of the channel. */ get channelName(): string; /** * The name of the channel. */ set channelName(value: string); /** * Server-side encryption configuration for data at rest in the destination. */ get encryptionConfiguration(): CfnChannel.EncryptionConfigurationProperty | cdk.IResolvable | undefined; /** * Server-side encryption configuration for data at rest in the destination. */ set encryptionConfiguration(value: CfnChannel.EncryptionConfigurationProperty | cdk.IResolvable | undefined); /** * Configuration for delivering channel operational logs. */ get loggingConfiguration(): cdk.IResolvable | CfnChannel.LoggingConfigurationProperty | undefined; /** * Configuration for delivering channel operational logs. */ set loggingConfiguration(value: cdk.IResolvable | CfnChannel.LoggingConfigurationProperty | undefined); /** * Configuration for delivery to a vanilla S3 bucket destination. */ get s3DestinationConfiguration(): cdk.IResolvable | CfnChannel.S3DestinationConfigurationProperty | undefined; /** * Configuration for delivery to a vanilla S3 bucket destination. */ set s3DestinationConfiguration(value: cdk.IResolvable | CfnChannel.S3DestinationConfigurationProperty | undefined); /** * Configuration for delivery to S3 Tables destinations. */ get s3TablesDestinationConfiguration(): cdk.IResolvable | CfnChannel.S3TablesDestinationConfigurationProperty | undefined; /** * Configuration for delivery to S3 Tables destinations. */ set s3TablesDestinationConfiguration(value: cdk.IResolvable | CfnChannel.S3TablesDestinationConfigurationProperty | undefined); /** * The ARN of the IAM role that the channel assumes to read from the source stream, deliver records to the destination, and (when enabled) write CloudWatch Logs. */ get serviceExecutionRoleArn(): string; /** * The ARN of the IAM role that the channel assumes to read from the source stream, deliver records to the destination, and (when enabled) write CloudWatch Logs. */ set serviceExecutionRoleArn(value: string); /** * List of stream configurations associated with the channel. */ get streamConfigurationList(): Array | cdk.IResolvable; /** * List of stream configurations associated with the channel. */ set streamConfigurationList(value: Array | cdk.IResolvable); /** * An arbitrary set of tags (key-value pairs) to associate with the Kinesis channel. */ get tags(): Array | undefined; /** * An arbitrary set of tags (key-value pairs) to associate with the Kinesis channel. */ set tags(value: Array | undefined); /** * The ARN of the channel. * * @cloudformationAttribute ChannelARN */ get attrChannelArn(): string; /** * Timestamp of when the channel was created. * * @cloudformationAttribute ChannelCreationTimestamp */ get attrChannelCreationTimestamp(): string; /** * The service-generated unique identifier for the channel. * * @cloudformationAttribute ChannelId */ get attrChannelId(): string; /** * The status of the channel. * * @cloudformationAttribute ChannelStatus */ get attrChannelStatus(): string; protected get cfnProperties(): Record; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record): Record; } export declare namespace CfnChannel { /** * Server-side encryption configuration for data at rest in the destination. * * Data delivered to S3 / S3 Tables is encrypted with the same key. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-encryptionconfiguration.html */ interface EncryptionConfigurationProperty { /** * The encryption type. * * KMS is the only supported value. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-encryptionconfiguration.html#cfn-kinesis-channel-encryptionconfiguration-encryptiontype */ readonly encryptionType: string; /** * The customer-managed AWS KMS key. * * Accepts a key GUID, key ARN, alias ARN, or alias name prefixed by 'alias/'. The Kinesis Data Streams managed alias 'aws/kinesis' is not accepted - the key must be customer-owned so it can also be used by readers of the destination. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-encryptionconfiguration.html#cfn-kinesis-channel-encryptionconfiguration-keyid */ readonly keyId: string; } /** * Configuration for delivery to a vanilla S3 bucket destination. * * Exactly one of S3DestinationConfiguration and S3TablesDestinationConfiguration must be specified on the channel. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3destinationconfiguration.html */ interface S3DestinationConfigurationProperty { /** * The maximum time in seconds the channel buffers records before delivery if the minimum target file size is not reached. * * @default - 300 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3destinationconfiguration.html#cfn-kinesis-channel-s3destinationconfiguration-datafreshnessinseconds */ readonly dataFreshnessInSeconds?: number; /** * Configuration of the S3 bucket used to capture records that cannot be delivered to the primary destination. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3destinationconfiguration.html#cfn-kinesis-channel-s3destinationconfiguration-deadletterqueues3configuration */ readonly deadLetterQueueS3Configuration?: CfnChannel.DeadLetterQueueS3ConfigurationProperty | cdk.IResolvable; /** * S3 storage configuration that describes the destination bucket and how delivered objects are stored. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3destinationconfiguration.html#cfn-kinesis-channel-s3destinationconfiguration-storageconfiguration */ readonly storageConfiguration: cdk.IResolvable | CfnChannel.S3StorageConfigurationProperty; } /** * Configuration of the S3 bucket used to capture records that cannot be delivered to the primary destination. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-deadletterqueues3configuration.html */ interface DeadLetterQueueS3ConfigurationProperty { /** * The ARN of the S3 bucket for storing failed records. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-deadletterqueues3configuration.html#cfn-kinesis-channel-deadletterqueues3configuration-bucketarn */ readonly bucketArn: string; /** * Optional S3 key prefix under which error records are organized. * * When omitted, the service uses the default 'kinesis-channel/errors///'. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-deadletterqueues3configuration.html#cfn-kinesis-channel-deadletterqueues3configuration-erroroutputprefix */ readonly errorOutputPrefix?: string; /** * The AWS account ID of the expected owner of the dead-letter queue S3 bucket. * * Used to verify bucket ownership before delivery. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-deadletterqueues3configuration.html#cfn-kinesis-channel-deadletterqueues3configuration-expectedbucketowner */ readonly expectedBucketOwner: string; } /** * S3 storage configuration that describes the destination bucket and how delivered objects are stored. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3storageconfiguration.html */ interface S3StorageConfigurationProperty { /** * The ARN of the S3 bucket for record delivery. * * Different channels can deliver to the same bucket. Buckets can be cross-account but must be in the same region as the channel. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3storageconfiguration.html#cfn-kinesis-channel-s3storageconfiguration-bucketarn */ readonly bucketArn: string; /** * The compression algorithm applied to delivered objects. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3storageconfiguration.html#cfn-kinesis-channel-s3storageconfiguration-compressiontype */ readonly compressionType: string; /** * The AWS account ID of the expected owner of the destination S3 bucket. * * Used to verify bucket ownership before delivery. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3storageconfiguration.html#cfn-kinesis-channel-s3storageconfiguration-expectedbucketowner */ readonly expectedBucketOwner: string; /** * Optional template for the S3 object key path. * * Supports placeholders in the form !{name}: !{channel-name}, !{channel-id}, !{stream-name}, !{yyyy}, !{yy}, !{MM}, !{dd}, !{HH}, !{mm}, and !{extension} (a literal file extension can be supplied as !{extension:.json.gz}). When omitted, the service uses the default 'kinesis-channel/!{channel-name}/!{channel-id}/!{yyyy}/!{MM}/!{dd}/!{HH}/!{channel-name}-!{channel-id}-!{yyyy}-!{MM}-!{dd}-!{HH}-!{mm}!{extension}'. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3storageconfiguration.html#cfn-kinesis-channel-s3storageconfiguration-outputkeytemplate */ readonly outputKeyTemplate?: string; /** * The S3 storage class for delivered objects. * * @default - "STANDARD" * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3storageconfiguration.html#cfn-kinesis-channel-s3storageconfiguration-storageclass */ readonly storageClass?: string; } /** * Configuration for delivering channel operational logs. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-loggingconfiguration.html */ interface LoggingConfigurationProperty { /** * CloudWatch Logs configuration for the channel. * * When Enabled is true and LogGroupName is omitted, the service uses a default group derived from the channel name and id; LogStreamName defaults to the literal string 'DestinationDelivery'. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-loggingconfiguration.html#cfn-kinesis-channel-loggingconfiguration-cloudwatchlogs */ readonly cloudWatchLogs: CfnChannel.CloudWatchLogsConfigurationProperty | cdk.IResolvable; } /** * CloudWatch Logs configuration for the channel. * * When Enabled is true and LogGroupName is omitted, the service uses a default group derived from the channel name and id; LogStreamName defaults to the literal string 'DestinationDelivery'. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-cloudwatchlogsconfiguration.html */ interface CloudWatchLogsConfigurationProperty { /** * Whether CloudWatch Logs delivery is enabled. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-cloudwatchlogsconfiguration.html#cfn-kinesis-channel-cloudwatchlogsconfiguration-enabled */ readonly enabled: boolean | cdk.IResolvable; /** * The CloudWatch log group name. * * When Enabled is true and LogGroupName is omitted, the service uses the default '/aws/kinesis//'. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-cloudwatchlogsconfiguration.html#cfn-kinesis-channel-cloudwatchlogsconfiguration-loggroupname */ readonly logGroupName?: string; /** * The CloudWatch log stream name. * * Defaults to the literal string 'DestinationDelivery' when omitted. * * @default - "DestinationDelivery" * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-cloudwatchlogsconfiguration.html#cfn-kinesis-channel-cloudwatchlogsconfiguration-logstreamname */ readonly logStreamName?: string; } /** * The configuration of a Kinesis stream that the channel reads from. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-streamconfiguration.html */ interface StreamConfigurationProperty { /** * The configuration that describes how records on the source stream are encoded. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-streamconfiguration.html#cfn-kinesis-channel-streamconfiguration-recordconfiguration */ readonly recordConfiguration: cdk.IResolvable | CfnChannel.RecordConfigurationProperty; /** * The Amazon resource name (ARN) of the Kinesis data stream that the channel reads from. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-streamconfiguration.html#cfn-kinesis-channel-streamconfiguration-streamarn */ readonly streamArn: string; } /** * The configuration that describes how records on the source stream are encoded. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-recordconfiguration.html */ interface RecordConfigurationProperty { /** * The ARN of the AWS Glue Schema Registry (GSR) schema. * * Required for the S3 Tables destination, where it is used to create the S3 Table and to validate that the record format matches the table schema. Also used when RecordFormatType is GSR_JSON to interpret records read from the source stream. Vanilla S3 delivery writes records as S3 objects and does not need a schema. The schema must be in the same account and region as the channel. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-recordconfiguration.html#cfn-kinesis-channel-recordconfiguration-gsrschemaarn */ readonly gsrSchemaArn?: string; /** * The format used to interpret records read from the source stream. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-recordconfiguration.html#cfn-kinesis-channel-recordconfiguration-recordformattype */ readonly recordFormatType: string; } /** * Configuration for delivery to S3 Tables destinations. * * Exactly one of S3DestinationConfiguration and S3TablesDestinationConfiguration must be specified on the channel. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tablesdestinationconfiguration.html */ interface S3TablesDestinationConfigurationProperty { /** * The maximum time in seconds the channel buffers records before delivery if the minimum target file size is not reached. * * @default - 300 * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tablesdestinationconfiguration.html#cfn-kinesis-channel-s3tablesdestinationconfiguration-datafreshnessinseconds */ readonly dataFreshnessInSeconds?: number; /** * Configuration of the S3 bucket used to capture records that cannot be delivered to the primary destination. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tablesdestinationconfiguration.html#cfn-kinesis-channel-s3tablesdestinationconfiguration-deadletterqueues3configuration */ readonly deadLetterQueueS3Configuration: CfnChannel.DeadLetterQueueS3ConfigurationProperty | cdk.IResolvable; /** * The list of S3 Tables destinations. * * v1 supports a single element; the list shape allows future extensibility to fan out to multiple tables. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tablesdestinationconfiguration.html#cfn-kinesis-channel-s3tablesdestinationconfiguration-s3tablesconfigurationlist */ readonly s3TablesConfigurationList: Array | cdk.IResolvable; } /** * An S3 Tables destination including its table bucket, namespace, table name, and partition spec. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tableconfiguration.html */ interface S3TableConfigurationProperty { /** * The compression algorithm applied to objects delivered to the S3 Tables destination. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tableconfiguration.html#cfn-kinesis-channel-s3tableconfiguration-compressiontype */ readonly compressionType: string; /** * The name of the S3 Tables namespace that contains the destination table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tableconfiguration.html#cfn-kinesis-channel-s3tableconfiguration-namespace */ readonly namespace: string; /** * Partitioning specification for the destination Iceberg table. * * Follows the S3 Tables / Iceberg PartitionSpec format. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tableconfiguration.html#cfn-kinesis-channel-s3tableconfiguration-partitionspec */ readonly partitionSpec?: cdk.IResolvable | CfnChannel.PartitionSpecProperty; /** * The ARN of the S3 Tables table bucket for record delivery. * * Buckets can be cross-account but must be in the same region as the channel. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tableconfiguration.html#cfn-kinesis-channel-s3tableconfiguration-tablebucketarn */ readonly tableBucketArn: string; /** * The name of the destination S3 Tables table. * * The table is created for the customer if it does not yet exist. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-s3tableconfiguration.html#cfn-kinesis-channel-s3tableconfiguration-tablename */ readonly tableName: string; } /** * Partitioning specification for the destination Iceberg table. * * Follows the S3 Tables / Iceberg PartitionSpec format. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-partitionspec.html */ interface PartitionSpecProperty { /** * List of partition fields that define how records are partitioned when written to the destination table. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-partitionspec.html#cfn-kinesis-channel-partitionspec-partitionfields */ readonly partitionFields: Array | cdk.IResolvable; } /** * A single partition field consisting of a transform applied to a source column. * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-partitionfield.html */ interface PartitionFieldProperty { /** * The name of the source column on which the transform is applied. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-partitionfield.html#cfn-kinesis-channel-partitionfield-sourcename */ readonly sourceName: string; /** * The partitioning transform applied to the SourceName column. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesis-channel-partitionfield.html#cfn-kinesis-channel-partitionfield-transform */ readonly transform: string; } } /** * Properties for defining a `CfnChannel` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html */ export interface CfnChannelProps { /** * The name of the channel. * * The name's uniqueness is scoped per AWS account and region. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-channelname */ readonly channelName: string; /** * Server-side encryption configuration for data at rest in the destination. * * Data delivered to S3 / S3 Tables is encrypted with the same key. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-encryptionconfiguration */ readonly encryptionConfiguration?: CfnChannel.EncryptionConfigurationProperty | cdk.IResolvable; /** * Configuration for delivering channel operational logs. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-loggingconfiguration */ readonly loggingConfiguration?: cdk.IResolvable | CfnChannel.LoggingConfigurationProperty; /** * Configuration for delivery to a vanilla S3 bucket destination. * * Exactly one of S3DestinationConfiguration and S3TablesDestinationConfiguration must be specified on the channel. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-s3destinationconfiguration */ readonly s3DestinationConfiguration?: cdk.IResolvable | CfnChannel.S3DestinationConfigurationProperty; /** * Configuration for delivery to S3 Tables destinations. * * Exactly one of S3DestinationConfiguration and S3TablesDestinationConfiguration must be specified on the channel. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-s3tablesdestinationconfiguration */ readonly s3TablesDestinationConfiguration?: cdk.IResolvable | CfnChannel.S3TablesDestinationConfigurationProperty; /** * The ARN of the IAM role that the channel assumes to read from the source stream, deliver records to the destination, and (when enabled) write CloudWatch Logs. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-serviceexecutionrolearn */ readonly serviceExecutionRoleArn: string; /** * List of stream configurations associated with the channel. * * v1 supports a single element; the list shape allows future extensibility to fan in from multiple streams. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-streamconfigurationlist */ readonly streamConfigurationList: Array | cdk.IResolvable; /** * An arbitrary set of tags (key-value pairs) to associate with the Kinesis channel. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-channel.html#cfn-kinesis-channel-tags */ readonly tags?: Array; } /** * Attaches a resource-based policy to a data stream or registered consumer. * * If you are using an identity other than the root user of the AWS account that owns the resource, the calling identity must have the `PutResourcePolicy` permissions on the specified Kinesis Data Streams resource and belong to the owner's account in order to use this operation. If you don't have `PutResourcePolicy` permissions, Amazon Kinesis Data Streams returns a `403 Access Denied error` . If you receive a `ResourceNotFoundException` , check to see if you passed a valid stream or consumer resource. * * Request patterns can be one of the following: * * - Data stream pattern: `arn:aws.*:kinesis:.*:\d{12}:.*stream/\S+` * - Consumer pattern: `^(arn):aws.*:kinesis:.*:\d{12}:.*stream\/[a-zA-Z0-9_.-]+\/consumer\/[a-zA-Z0-9_.-]+:[0-9]+` * * For more information, see [Controlling Access to Amazon Kinesis Data Streams Resources Using IAM](https://docs.aws.amazon.com/streams/latest/dev/controlling-access.html) . * * @cloudformationResource AWS::Kinesis::ResourcePolicy * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html */ export declare class CfnResourcePolicy extends cdk.CfnResource implements cdk.IInspectable, IResourcePolicyRef { /** * The CloudFormation resource type name for this resource class. */ static readonly CFN_RESOURCE_TYPE_NAME: string; /** * Build a CfnResourcePolicy from CloudFormation properties * * A factory method that creates a new instance of this class from an object * containing the CloudFormation properties of this resource. * Used in the @aws-cdk/cloudformation-include module. * * @internal */ static _fromCloudFormation(scope: constructs.Construct, id: string, resourceAttributes: any, options: cfn_parse.FromCloudFormationOptions): CfnResourcePolicy; /** * Checks whether the given object is a CfnResourcePolicy */ static isCfnResourcePolicy(x: any): x is CfnResourcePolicy; /** * Returns the Amazon Resource Name (ARN) of the resource-based policy. */ private _resourceArn; /** * This is the description for the resource policy. */ private _resourcePolicy; protected readonly cfnPropertyNames: Record; /** * Create a new `AWS::Kinesis::ResourcePolicy`. * * @param scope Scope in which this resource is defined * @param id Construct identifier for this resource (unique in its scope) * @param props Resource properties */ constructor(scope: constructs.Construct, id: string, props: CfnResourcePolicyProps); get resourcePolicyRef(): ResourcePolicyReference; /** * Returns the Amazon Resource Name (ARN) of the resource-based policy. */ get resourceArn(): string; /** * Returns the Amazon Resource Name (ARN) of the resource-based policy. */ set resourceArn(value: string); /** * This is the description for the resource policy. */ get resourcePolicy(): any | cdk.IResolvable; /** * This is the description for the resource policy. */ set resourcePolicy(value: any | cdk.IResolvable); protected get cfnProperties(): Record; /** * Examines the CloudFormation resource and discloses attributes * * @param inspector tree inspector to collect and process attributes */ inspect(inspector: cdk.TreeInspector): void; protected renderProperties(props: Record): Record; } /** * Properties for defining a `CfnResourcePolicy` * * @struct * @stability external * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html */ export interface CfnResourcePolicyProps { /** * Returns the Amazon Resource Name (ARN) of the resource-based policy. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html#cfn-kinesis-resourcepolicy-resourcearn */ readonly resourceArn: kinesisRefs.IStreamConsumerRef | kinesisRefs.IStreamRef | string; /** * This is the description for the resource policy. * * @see http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kinesis-resourcepolicy.html#cfn-kinesis-resourcepolicy-resourcepolicy */ readonly resourcePolicy: any | cdk.IResolvable; } export type { IStreamRef, StreamReference }; export type { IStreamConsumerRef, StreamConsumerReference }; export type { IChannelRef, ChannelReference }; export type { IResourcePolicyRef, ResourcePolicyReference };