import { Value } from '../../../cloudformation/Value';
import { BufferingHintsProps } from './BufferingHintsProps';
import { EncryptionConfigurationProps } from './EncryptionConfigurationProps';
import { CloudWatchLoggingOptionsProps } from './CloudWatchLoggingOptionsProps';
/**
  The <code>S3DestinationConfiguration</code> property type specifies an Amazon Simple Storage Service (Amazon S3) destination to which Amazon Kinesis Data Firehose (Kinesis Data Firehose) delivers data.
  For full documentation go to <a href="http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-s3destinationconfiguration.html">the AWS Docs</a>
*/
export interface S3DestinationConfigurationProps {
    /** <code>ErrorOutputPrefix</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-erroroutputprefix"></a>
  A prefix that Kinesis Data Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html">Custom Prefixes for Amazon S3 Objects</a>.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>1024</code><br />
  
  Pattern: <code>.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    errorOutputPrefix?: Value<string>;
    /** <code>BucketARN</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bucketarn"></a>
  The Amazon Resource Name (ARN) of the Amazon S3 bucket to send data to.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>2048</code><br />
  
  Pattern: <code>arn:.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    bucketARN: Value<string>;
    /** <code>BufferingHints</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-bufferinghints"></a>
  Configures how Kinesis Data Firehose buffers incoming data while delivering it to the Amazon S3 bucket.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    bufferingHints?: BufferingHintsProps;
    /** <code>CompressionFormat</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-compressionformat"></a>
  The type of compression that Kinesis Data Firehose uses to compress the data that it delivers to the Amazon S3 bucket. For valid values, see the <code>CompressionFormat</code> content for the <a href="https://docs.aws.amazon.com/firehose/latest/APIReference/API_S3DestinationConfiguration.html">S3DestinationConfiguration</a> data type in the
  Amazon Kinesis Data Firehose API Reference: br />
  
  Required: No<br />
  
  Allowed values: <code>GZIP | HADOOP_SNAPPY | Snappy | UNCOMPRESSED | ZIP</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    compressionFormat?: Value<'GZIP' | 'HADOOP_SNAPPY' | 'Snappy' | 'UNCOMPRESSED' | 'ZIP'>;
    /** <code>EncryptionConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-encryptionconfiguration"></a>
  Configures Amazon Simple Storage Service (Amazon S3) server-side encryption. Kinesis Data Firehose uses AWS Key Management Service (AWS KMS) to encrypt the data that it delivers to your Amazon S3 bucket.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    encryptionConfiguration?: EncryptionConfigurationProps;
    /** <code>Prefix</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-prefix"></a>
  A prefix that Kinesis Data Firehose adds to the files that it delivers to the Amazon S3 bucket. The prefix helps you identify the files that Kinesis Data Firehose delivered.<br />
  
  Required: No<br />
  
  Minimum: <code>0</code><br />
  
  Maximum: <code>1024</code><br />
  
  Pattern: <code>.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    prefix?: Value<string>;
    /** <code>CloudWatchLoggingOptions</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-cloudwatchloggingoptions"></a>
  The CloudWatch logging options for your delivery stream.<br />
  
  Required: No<br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    cloudWatchLoggingOptions?: CloudWatchLoggingOptionsProps;
    /** <code>RoleARN</code>  <a name="cfn-kinesisfirehose-deliverystream-s3destinationconfiguration-rolearn"></a>
  The ARN of an AWS Identity and Access Management (IAM) role that grants Kinesis Data Firehose access to your Amazon S3 bucket and AWS KMS (if you enable data encryption). For more information, see <a href="https://docs.aws.amazon.com/firehose/latest/dev/controlling-access.html#using-iam-s3">Grant Kinesis Data Firehose Access to an Amazon S3 Destination</a> in the
  Amazon Kinesis Data Firehose Developer Guide: br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>512</code><br />
  
  Pattern: <code>arn:.*</code><br />
  
  Update requires: <a href="https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-updating-stacks-update-behaviors.html#update-no-interrupt">No interruption</a> */
    roleARN: Value<string>;
}
