import { S3DestinationConfigurationProps } from './S3DestinationConfigurationProps';
import { Value } from '../../../cloudformation/Value';
import { CopyCommandProps } from './CopyCommandProps';
import { RedshiftRetryOptionsProps } from './RedshiftRetryOptionsProps';
import { ProcessingConfigurationProps } from './ProcessingConfigurationProps';
import { CloudWatchLoggingOptionsProps } from './CloudWatchLoggingOptionsProps';
/**
  The <code>RedshiftDestinationConfiguration</code> property type specifies an Amazon Redshift cluster 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-redshiftdestinationconfiguration.html">the AWS Docs</a>
*/
export interface RedshiftDestinationConfigurationProps {
    /** <code>S3BackupConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupconfiguration"></a>
  The configuration for backup in Amazon S3.<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> */
    s3BackupConfiguration?: S3DestinationConfigurationProps;
    /** <code>S3Configuration</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3configuration"></a>
  The S3 bucket where Kinesis Data Firehose first delivers data. After the data is in the bucket, Kinesis Data Firehose uses the <code>COPY</code> command to load the data into the Amazon Redshift cluster. For the Amazon S3 bucket’s compression format, don’t specify <code>SNAPPY</code> or <code>ZIP</code> because the Amazon Redshift <code>COPY</code> command doesn’t support them.<br />
  
  Required: Yes<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> */
    s3Configuration: S3DestinationConfigurationProps;
    /** <code>Username</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-username"></a>
  The Amazon Redshift user that has permission to access the Amazon Redshift cluster. This user must have <code>INSERT</code> privileges for copying data from the Amazon S3 bucket to the cluster.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>512</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> */
    username: Value<string>;
    /** <code>CopyCommand</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-copycommand"></a>
  Configures the Amazon Redshift <code>COPY</code> command that Kinesis Data Firehose uses to load data into the cluster from the Amazon S3 bucket.<br />
  
  Required: Yes<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> */
    copyCommand: CopyCommandProps;
    /** <code>RetryOptions</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-retryoptions"></a>
  The retry behavior in case Kinesis Data Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).<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> */
    retryOptions?: RedshiftRetryOptionsProps;
    /** <code>ProcessingConfiguration</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-processingconfiguration"></a>
  The data processing configuration for the Kinesis Data Firehose 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> */
    processingConfiguration?: ProcessingConfigurationProps;
    /** <code>CloudWatchLoggingOptions</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-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>ClusterJDBCURL</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-clusterjdbcurl"></a>
  The connection string that Kinesis Data Firehose uses to connect to the Amazon Redshift cluster.<br />
  
  Required: Yes<br />
  
  Minimum: <code>1</code><br />
  
  Maximum: <code>512</code><br />
  
  Pattern: <code>jdbc:(redshift|postgresql)://((?!-)[A-Za-z0-9-]{1,63}(?&lt;!-)\.)+redshift\.([a-zA-Z0-9\.]+):\d{1,5}/[a-zA-Z0-9_$-]+</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> */
    clusterJDBCURL: Value<string>;
    /** <code>RoleARN</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-rolearn"></a>
  The ARN of the 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-rs">Grant Kinesis Data Firehose Access to an Amazon Redshift 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>;
    /** <code>Password</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-password"></a>
  The password for the Amazon Redshift user that you specified in the <code>Username</code> property.<br />
  
  Required: Yes<br />
  
  Minimum: <code>6</code><br />
  
  Maximum: <code>512</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> */
    password: Value<string>;
    /** <code>S3BackupMode</code>  <a name="cfn-kinesisfirehose-deliverystream-redshiftdestinationconfiguration-s3backupmode"></a>
  The Amazon S3 backup mode. After you create a delivery stream, you can update it to enable Amazon S3 backup if it is disabled. If backup is enabled, you can’t update the delivery stream to disable it.<br />
  
  Required: No<br />
  
  Allowed values: <code>Disabled | Enabled</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> */
    s3BackupMode?: Value<'Disabled' | 'Enabled'>;
}
