-- Hoogle documentation, generated by Haddock
-- See Hoogle, http://www.haskell.org/hoogle/


-- | Amazon Kinesis Firehose SDK.
--   
--   The types from this library are intended to be used with
--   <a>amazonka</a>, which provides mechanisms for specifying AuthN/AuthZ
--   information, sending requests, and receiving responses.
--   
--   Lenses are used for constructing and manipulating types, due to the
--   depth of nesting of AWS types and transparency regarding
--   de/serialisation into more palatable Haskell values. The provided
--   lenses should be compatible with any of the major lens libraries such
--   as <a>lens</a> or <a>lens-family-core</a>.
--   
--   See <a>Network.AWS.Firehose</a> or <a>the AWS documentation</a> to get
--   started.
@package amazonka-kinesis-firehose
@version 1.4.5


module Network.AWS.Firehose.Types

-- | API version <tt>2015-08-04</tt> of the Amazon Kinesis Firehose SDK
--   configuration.
firehose :: Service

-- | The specified input parameter has an value that is not valid.
_InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Another modification has already happened. Fetch <b>VersionId</b>
--   again and use it to update the destination.
_ConcurrentModificationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service is unavailable, back off and retry the operation. If you
--   continue to see the exception, throughput limits for the delivery
--   stream may have been exceeded. For more information about limits and
--   how to request an increase, see <a>Amazon Kinesis Firehose Limits</a>
--   .
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified resource could not be found.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You have already reached the limit for a requested resource.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The resource is already in use and not available for this operation.
_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError
data CompressionFormat
Gzip :: CompressionFormat
Snappy :: CompressionFormat
Uncompressed :: CompressionFormat
Zip :: CompressionFormat
data DeliveryStreamStatus
Active :: DeliveryStreamStatus
Creating :: DeliveryStreamStatus
Deleting :: DeliveryStreamStatus
data ElasticsearchIndexRotationPeriod
NoRotation :: ElasticsearchIndexRotationPeriod
OneDay :: ElasticsearchIndexRotationPeriod
OneHour :: ElasticsearchIndexRotationPeriod
OneMonth :: ElasticsearchIndexRotationPeriod
OneWeek :: ElasticsearchIndexRotationPeriod
data ElasticsearchS3BackupMode
AllDocuments :: ElasticsearchS3BackupMode
FailedDocumentsOnly :: ElasticsearchS3BackupMode
data NoEncryptionConfig
NoEncryption :: NoEncryptionConfig

-- | Describes hints for the buffering to perform before delivering data to
--   the destination. Please note that these options are treated as hints,
--   and therefore Firehose may choose to use different values when it is
--   optimal.
--   
--   <i>See:</i> <a>bufferingHints</a> smart constructor.
data BufferingHints

-- | Creates a value of <a>BufferingHints</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bhSizeInMBs</a> - Buffer incoming data to the specified size,
--   in MBs, before delivering it to the destination. The default value is
--   5. We recommend setting SizeInMBs to a value greater than the amount
--   of data you typically ingest into the delivery stream in 10 seconds.
--   For example, if you typically ingest data at 1 MB/sec set SizeInMBs to
--   be 10 MB or higher.</li>
--   <li><a>bhIntervalInSeconds</a> - Buffer incoming data for the
--   specified period of time, in seconds, before delivering it to the
--   destination. The default value is 300.</li>
--   </ul>
bufferingHints :: BufferingHints

-- | Buffer incoming data to the specified size, in MBs, before delivering
--   it to the destination. The default value is 5. We recommend setting
--   SizeInMBs to a value greater than the amount of data you typically
--   ingest into the delivery stream in 10 seconds. For example, if you
--   typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher.
bhSizeInMBs :: Lens' BufferingHints (Maybe Natural)

-- | Buffer incoming data for the specified period of time, in seconds,
--   before delivering it to the destination. The default value is 300.
bhIntervalInSeconds :: Lens' BufferingHints (Maybe Natural)

-- | Describes CloudWatch logging options for your delivery stream.
--   
--   <i>See:</i> <a>cloudWatchLoggingOptions</a> smart constructor.
data CloudWatchLoggingOptions

-- | Creates a value of <a>CloudWatchLoggingOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cwloEnabled</a> - Enables or disables CloudWatch logging.</li>
--   <li><a>cwloLogGroupName</a> - The CloudWatch group name for logging.
--   This value is required if Enabled is true.</li>
--   <li><a>cwloLogStreamName</a> - The CloudWatch log stream name for
--   logging. This value is required if Enabled is true.</li>
--   </ul>
cloudWatchLoggingOptions :: CloudWatchLoggingOptions

-- | Enables or disables CloudWatch logging.
cwloEnabled :: Lens' CloudWatchLoggingOptions (Maybe Bool)

-- | The CloudWatch group name for logging. This value is required if
--   Enabled is true.
cwloLogGroupName :: Lens' CloudWatchLoggingOptions (Maybe Text)

-- | The CloudWatch log stream name for logging. This value is required if
--   Enabled is true.
cwloLogStreamName :: Lens' CloudWatchLoggingOptions (Maybe Text)

-- | Describes a <tt>COPY</tt> command for Amazon Redshift.
--   
--   <i>See:</i> <a>copyCommand</a> smart constructor.
data CopyCommand

-- | Creates a value of <a>CopyCommand</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccCopyOptions</a> - Optional parameters to use with the Amazon
--   Redshift <tt>COPY</tt> command. For more information, see the
--   "Optional Parameters" section of <a>Amazon Redshift COPY command</a> .
--   Some possible examples that would apply to Firehose are as follows.
--   <tt>delimiter '\t' lzop;</tt> - fields are delimited with "t" (TAB
--   character) and compressed using lzop. <tt>delimiter '|</tt> - fields
--   are delimited with "|" (this is the default delimiter). <tt>delimiter
--   '|' escape</tt> - the delimiter should be escaped. <tt>fixedwidth
--   'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'</tt> -
--   fields are fixed width in the source, with each width specified after
--   every column in the table. <tt>JSON 's3://mybucket/jsonpaths.txt'</tt>
--   - data is in JSON format, and the path specified is the format of the
--   data. For more examples, see <a>Amazon Redshift COPY command
--   examples</a> .</li>
--   <li><a>ccDataTableColumns</a> - A comma-separated list of column
--   names.</li>
--   <li><a>ccDataTableName</a> - The name of the target table. The table
--   must already exist in the database.</li>
--   </ul>
copyCommand :: Text -> CopyCommand

-- | Optional parameters to use with the Amazon Redshift <tt>COPY</tt>
--   command. For more information, see the "Optional Parameters" section
--   of <a>Amazon Redshift COPY command</a> . Some possible examples that
--   would apply to Firehose are as follows. <tt>delimiter '\t' lzop;</tt>
--   - fields are delimited with "t" (TAB character) and compressed using
--   lzop. <tt>delimiter '|</tt> - fields are delimited with "|" (this is
--   the default delimiter). <tt>delimiter '|' escape</tt> - the delimiter
--   should be escaped. <tt>fixedwidth
--   'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'</tt> -
--   fields are fixed width in the source, with each width specified after
--   every column in the table. <tt>JSON 's3://mybucket/jsonpaths.txt'</tt>
--   - data is in JSON format, and the path specified is the format of the
--   data. For more examples, see <a>Amazon Redshift COPY command
--   examples</a> .
ccCopyOptions :: Lens' CopyCommand (Maybe Text)

-- | A comma-separated list of column names.
ccDataTableColumns :: Lens' CopyCommand (Maybe Text)

-- | The name of the target table. The table must already exist in the
--   database.
ccDataTableName :: Lens' CopyCommand Text

-- | Contains information about a delivery stream.
--   
--   <i>See:</i> <a>deliveryStreamDescription</a> smart constructor.
data DeliveryStreamDescription

-- | Creates a value of <a>DeliveryStreamDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsdCreateTimestamp</a> - The date and time that the delivery
--   stream was created.</li>
--   <li><a>dsdLastUpdateTimestamp</a> - The date and time that the
--   delivery stream was last updated.</li>
--   <li><a>dsdDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   <li><a>dsdDeliveryStreamARN</a> - The Amazon Resource Name (ARN) of
--   the delivery stream.</li>
--   <li><a>dsdDeliveryStreamStatus</a> - The status of the delivery
--   stream.</li>
--   <li><a>dsdVersionId</a> - Used when calling the
--   <tt>UpdateDestination</tt> operation. Each time the destination is
--   updated for the delivery stream, the VersionId is changed, and the
--   current VersionId is required when updating the destination. This is
--   so that the service knows it is applying the changes to the correct
--   version of the delivery stream.</li>
--   <li><a>dsdDestinations</a> - The destinations.</li>
--   <li><a>dsdHasMoreDestinations</a> - Indicates whether there are more
--   destinations available to list.</li>
--   </ul>
deliveryStreamDescription :: Text -> Text -> DeliveryStreamStatus -> Text -> Bool -> DeliveryStreamDescription

-- | The date and time that the delivery stream was created.
dsdCreateTimestamp :: Lens' DeliveryStreamDescription (Maybe UTCTime)

-- | The date and time that the delivery stream was last updated.
dsdLastUpdateTimestamp :: Lens' DeliveryStreamDescription (Maybe UTCTime)

-- | The name of the delivery stream.
dsdDeliveryStreamName :: Lens' DeliveryStreamDescription Text

-- | The Amazon Resource Name (ARN) of the delivery stream.
dsdDeliveryStreamARN :: Lens' DeliveryStreamDescription Text

-- | The status of the delivery stream.
dsdDeliveryStreamStatus :: Lens' DeliveryStreamDescription DeliveryStreamStatus

-- | Used when calling the <tt>UpdateDestination</tt> operation. Each time
--   the destination is updated for the delivery stream, the VersionId is
--   changed, and the current VersionId is required when updating the
--   destination. This is so that the service knows it is applying the
--   changes to the correct version of the delivery stream.
dsdVersionId :: Lens' DeliveryStreamDescription Text

-- | The destinations.
dsdDestinations :: Lens' DeliveryStreamDescription [DestinationDescription]

-- | Indicates whether there are more destinations available to list.
dsdHasMoreDestinations :: Lens' DeliveryStreamDescription Bool

-- | Describes the destination for a delivery stream.
--   
--   <i>See:</i> <a>destinationDescription</a> smart constructor.
data DestinationDescription

-- | Creates a value of <a>DestinationDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddS3DestinationDescription</a> - The Amazon S3
--   destination.</li>
--   <li><a>ddElasticsearchDestinationDescription</a> - The destination in
--   Amazon ES.</li>
--   <li><a>ddRedshiftDestinationDescription</a> - The destination in
--   Amazon Redshift.</li>
--   <li><a>ddDestinationId</a> - The ID of the destination.</li>
--   </ul>
destinationDescription :: Text -> DestinationDescription

-- | The Amazon S3 destination.
ddS3DestinationDescription :: Lens' DestinationDescription (Maybe S3DestinationDescription)

-- | The destination in Amazon ES.
ddElasticsearchDestinationDescription :: Lens' DestinationDescription (Maybe ElasticsearchDestinationDescription)

-- | The destination in Amazon Redshift.
ddRedshiftDestinationDescription :: Lens' DestinationDescription (Maybe RedshiftDestinationDescription)

-- | The ID of the destination.
ddDestinationId :: Lens' DestinationDescription Text

-- | Describes the buffering to perform before delivering data to the
--   Amazon ES destination.
--   
--   <i>See:</i> <a>elasticsearchBufferingHints</a> smart constructor.
data ElasticsearchBufferingHints

-- | Creates a value of <a>ElasticsearchBufferingHints</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebhSizeInMBs</a> - Buffer incoming data to the specified size,
--   in MBs, before delivering it to the destination. The default value is
--   5. We recommend setting <b>SizeInMBs</b> to a value greater than the
--   amount of data you typically ingest into the delivery stream in 10
--   seconds. For example, if you typically ingest data at 1 MB/sec, set
--   <b>SizeInMBs</b> to be 10 MB or higher.</li>
--   <li><a>ebhIntervalInSeconds</a> - Buffer incoming data for the
--   specified period of time, in seconds, before delivering it to the
--   destination. The default value is 300 (5 minutes).</li>
--   </ul>
elasticsearchBufferingHints :: ElasticsearchBufferingHints

-- | Buffer incoming data to the specified size, in MBs, before delivering
--   it to the destination. The default value is 5. We recommend setting
--   <b>SizeInMBs</b> to a value greater than the amount of data you
--   typically ingest into the delivery stream in 10 seconds. For example,
--   if you typically ingest data at 1 MB/sec, set <b>SizeInMBs</b> to be
--   10 MB or higher.
ebhSizeInMBs :: Lens' ElasticsearchBufferingHints (Maybe Natural)

-- | Buffer incoming data for the specified period of time, in seconds,
--   before delivering it to the destination. The default value is 300 (5
--   minutes).
ebhIntervalInSeconds :: Lens' ElasticsearchBufferingHints (Maybe Natural)

-- | Describes the configuration of a destination in Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchDestinationConfiguration</a> smart
--   constructor.
data ElasticsearchDestinationConfiguration

-- | Creates a value of <a>ElasticsearchDestinationConfiguration</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edcIndexRotationPeriod</a> - The Elasticsearch index rotation
--   period. Index rotation appends a timestamp to the IndexName to
--   facilitate expiration of old data. For more information, see <a>Index
--   Rotation for Amazon Elasticsearch Service Destination</a> . Default
--   value is <tt>OneDay</tt> .</li>
--   <li><a>edcS3BackupMode</a> - Defines how documents should be delivered
--   to Amazon S3. When set to FailedDocumentsOnly, Firehose writes any
--   documents that could not be indexed to the configured Amazon S3
--   destination, with elasticsearch-failed<i> appended to the key prefix.
--   When set to AllDocuments, Firehose delivers all incoming records to
--   Amazon S3, and also writes failed documents with
--   elasticsearch-failed</i> appended to the prefix. For more information,
--   see <a>Amazon S3 Backup for Amazon Elasticsearch Service
--   Destination</a> . Default value is FailedDocumentsOnly.</li>
--   <li><a>edcCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>edcBufferingHints</a> - Buffering options. If no value is
--   specified, <b>ElasticsearchBufferingHints</b> object default values
--   are used.</li>
--   <li><a>edcRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon ES. Default
--   value is 300 (5 minutes).</li>
--   <li><a>edcRoleARN</a> - The ARN of the IAM role to be assumed by
--   Firehose for calling the Amazon ES Configuration API and for indexing
--   documents. For more information, see <a>Amazon S3 Bucket Access</a>
--   .</li>
--   <li><a>edcDomainARN</a> - The ARN of the Amazon ES domain. The IAM
--   role must have permission for <tt>DescribeElasticsearchDomain</tt> ,
--   <tt>DescribeElasticsearchDomains</tt> , and
--   <tt>DescribeElasticsearchDomainConfig</tt> after assuming
--   <b>RoleARN</b> .</li>
--   <li><a>edcIndexName</a> - The Elasticsearch index name.</li>
--   <li><a>edcTypeName</a> - The Elasticsearch type name.</li>
--   <li><a>edcS3Configuration</a> - Undocumented member.</li>
--   </ul>
elasticsearchDestinationConfiguration :: Text -> Text -> Text -> Text -> S3DestinationConfiguration -> ElasticsearchDestinationConfiguration

-- | The Elasticsearch index rotation period. Index rotation appends a
--   timestamp to the IndexName to facilitate expiration of old data. For
--   more information, see <a>Index Rotation for Amazon Elasticsearch
--   Service Destination</a> . Default value is <tt>OneDay</tt> .
edcIndexRotationPeriod :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchIndexRotationPeriod)

-- | Defines how documents should be delivered to Amazon S3. When set to
--   FailedDocumentsOnly, Firehose writes any documents that could not be
--   indexed to the configured Amazon S3 destination, with
--   elasticsearch-failed<i> appended to the key prefix. When set to
--   AllDocuments, Firehose delivers all incoming records to Amazon S3, and
--   also writes failed documents with elasticsearch-failed</i> appended to
--   the prefix. For more information, see <a>Amazon S3 Backup for Amazon
--   Elasticsearch Service Destination</a> . Default value is
--   FailedDocumentsOnly.
edcS3BackupMode :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchS3BackupMode)

-- | Describes CloudWatch logging options for your delivery stream.
edcCloudWatchLoggingOptions :: Lens' ElasticsearchDestinationConfiguration (Maybe CloudWatchLoggingOptions)

-- | Buffering options. If no value is specified,
--   <b>ElasticsearchBufferingHints</b> object default values are used.
edcBufferingHints :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchBufferingHints)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon ES. Default value is 300 (5 minutes).
edcRetryOptions :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchRetryOptions)

-- | The ARN of the IAM role to be assumed by Firehose for calling the
--   Amazon ES Configuration API and for indexing documents. For more
--   information, see <a>Amazon S3 Bucket Access</a> .
edcRoleARN :: Lens' ElasticsearchDestinationConfiguration Text

-- | The ARN of the Amazon ES domain. The IAM role must have permission for
--   <tt>DescribeElasticsearchDomain</tt> ,
--   <tt>DescribeElasticsearchDomains</tt> , and
--   <tt>DescribeElasticsearchDomainConfig</tt> after assuming
--   <b>RoleARN</b> .
edcDomainARN :: Lens' ElasticsearchDestinationConfiguration Text

-- | The Elasticsearch index name.
edcIndexName :: Lens' ElasticsearchDestinationConfiguration Text

-- | The Elasticsearch type name.
edcTypeName :: Lens' ElasticsearchDestinationConfiguration Text

-- | Undocumented member.
edcS3Configuration :: Lens' ElasticsearchDestinationConfiguration S3DestinationConfiguration

-- | The destination description in Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchDestinationDescription</a> smart
--   constructor.
data ElasticsearchDestinationDescription

-- | Creates a value of <a>ElasticsearchDestinationDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eddIndexRotationPeriod</a> - The Elasticsearch index rotation
--   period</li>
--   <li><a>eddTypeName</a> - The Elasticsearch type name.</li>
--   <li><a>eddS3BackupMode</a> - Amazon S3 backup mode.</li>
--   <li><a>eddDomainARN</a> - The ARN of the Amazon ES domain.</li>
--   <li><a>eddCloudWatchLoggingOptions</a> - CloudWatch logging
--   options.</li>
--   <li><a>eddS3DestinationDescription</a> - Undocumented member.</li>
--   <li><a>eddBufferingHints</a> - Buffering options.</li>
--   <li><a>eddRetryOptions</a> - Elasticsearch retry options.</li>
--   <li><a>eddRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>eddIndexName</a> - The Elasticsearch index name.</li>
--   </ul>
elasticsearchDestinationDescription :: ElasticsearchDestinationDescription

-- | The Elasticsearch index rotation period
eddIndexRotationPeriod :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchIndexRotationPeriod)

-- | The Elasticsearch type name.
eddTypeName :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | Amazon S3 backup mode.
eddS3BackupMode :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchS3BackupMode)

-- | The ARN of the Amazon ES domain.
eddDomainARN :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | CloudWatch logging options.
eddCloudWatchLoggingOptions :: Lens' ElasticsearchDestinationDescription (Maybe CloudWatchLoggingOptions)

-- | Undocumented member.
eddS3DestinationDescription :: Lens' ElasticsearchDestinationDescription (Maybe S3DestinationDescription)

-- | Buffering options.
eddBufferingHints :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchBufferingHints)

-- | Elasticsearch retry options.
eddRetryOptions :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchRetryOptions)

-- | The ARN of the AWS credentials.
eddRoleARN :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | The Elasticsearch index name.
eddIndexName :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | Describes an update for a destination in Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchDestinationUpdate</a> smart constructor.
data ElasticsearchDestinationUpdate

-- | Creates a value of <a>ElasticsearchDestinationUpdate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eduIndexRotationPeriod</a> - The Elasticsearch index rotation
--   period. Index rotation appends a timestamp to the IndexName to
--   facilitate the expiration of old data. For more information, see
--   <a>Index Rotation for Amazon Elasticsearch Service Destination</a> .
--   Default value is <tt>OneDay</tt> .</li>
--   <li><a>eduTypeName</a> - The Elasticsearch type name.</li>
--   <li><a>eduDomainARN</a> - The ARN of the Amazon ES domain. The IAM
--   role must have permission for DescribeElasticsearchDomain,
--   DescribeElasticsearchDomains , and DescribeElasticsearchDomainConfig
--   after assuming <b>RoleARN</b> .</li>
--   <li><a>eduCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>eduS3Update</a> - Undocumented member.</li>
--   <li><a>eduBufferingHints</a> - Buffering options. If no value is
--   specified, <b>ElasticsearchBufferingHints</b> object default values
--   are used.</li>
--   <li><a>eduRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon ES. Default
--   value is 300 (5 minutes).</li>
--   <li><a>eduRoleARN</a> - The ARN of the IAM role to be assumed by
--   Firehose for calling the Amazon ES Configuration API and for indexing
--   documents. For more information, see <a>Amazon S3 Bucket Access</a>
--   .</li>
--   <li><a>eduIndexName</a> - The Elasticsearch index name.</li>
--   </ul>
elasticsearchDestinationUpdate :: ElasticsearchDestinationUpdate

-- | The Elasticsearch index rotation period. Index rotation appends a
--   timestamp to the IndexName to facilitate the expiration of old data.
--   For more information, see <a>Index Rotation for Amazon Elasticsearch
--   Service Destination</a> . Default value is <tt>OneDay</tt> .
eduIndexRotationPeriod :: Lens' ElasticsearchDestinationUpdate (Maybe ElasticsearchIndexRotationPeriod)

-- | The Elasticsearch type name.
eduTypeName :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | The ARN of the Amazon ES domain. The IAM role must have permission for
--   DescribeElasticsearchDomain, DescribeElasticsearchDomains , and
--   DescribeElasticsearchDomainConfig after assuming <b>RoleARN</b> .
eduDomainARN :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
eduCloudWatchLoggingOptions :: Lens' ElasticsearchDestinationUpdate (Maybe CloudWatchLoggingOptions)

-- | Undocumented member.
eduS3Update :: Lens' ElasticsearchDestinationUpdate (Maybe S3DestinationUpdate)

-- | Buffering options. If no value is specified,
--   <b>ElasticsearchBufferingHints</b> object default values are used.
eduBufferingHints :: Lens' ElasticsearchDestinationUpdate (Maybe ElasticsearchBufferingHints)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon ES. Default value is 300 (5 minutes).
eduRetryOptions :: Lens' ElasticsearchDestinationUpdate (Maybe ElasticsearchRetryOptions)

-- | The ARN of the IAM role to be assumed by Firehose for calling the
--   Amazon ES Configuration API and for indexing documents. For more
--   information, see <a>Amazon S3 Bucket Access</a> .
eduRoleARN :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | The Elasticsearch index name.
eduIndexName :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchRetryOptions</a> smart constructor.
data ElasticsearchRetryOptions

-- | Creates a value of <a>ElasticsearchRetryOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eroDurationInSeconds</a> - After an initial failure to deliver
--   to Amazon ES, the total amount of time during which Firehose
--   re-attempts delivery (including the first attempt). After this time
--   has elapsed, the failed documents are written to Amazon S3. Default
--   value is 300 seconds (5 minutes). A value of 0 (zero) results in no
--   retries.</li>
--   </ul>
elasticsearchRetryOptions :: ElasticsearchRetryOptions

-- | After an initial failure to deliver to Amazon ES, the total amount of
--   time during which Firehose re-attempts delivery (including the first
--   attempt). After this time has elapsed, the failed documents are
--   written to Amazon S3. Default value is 300 seconds (5 minutes). A
--   value of 0 (zero) results in no retries.
eroDurationInSeconds :: Lens' ElasticsearchRetryOptions (Maybe Natural)

-- | Describes the encryption for a destination in Amazon S3.
--   
--   <i>See:</i> <a>encryptionConfiguration</a> smart constructor.
data EncryptionConfiguration

-- | Creates a value of <a>EncryptionConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecNoEncryptionConfig</a> - Specifically override existing
--   encryption information to ensure no encryption is used.</li>
--   <li><a>ecKMSEncryptionConfig</a> - The encryption key.</li>
--   </ul>
encryptionConfiguration :: EncryptionConfiguration

-- | Specifically override existing encryption information to ensure no
--   encryption is used.
ecNoEncryptionConfig :: Lens' EncryptionConfiguration (Maybe NoEncryptionConfig)

-- | The encryption key.
ecKMSEncryptionConfig :: Lens' EncryptionConfiguration (Maybe KMSEncryptionConfig)

-- | Describes an encryption key for a destination in Amazon S3.
--   
--   <i>See:</i> <a>kmsEncryptionConfig</a> smart constructor.
data KMSEncryptionConfig

-- | Creates a value of <a>KMSEncryptionConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kecAWSKMSKeyARN</a> - The ARN of the encryption key. Must
--   belong to the same region as the destination Amazon S3 bucket.</li>
--   </ul>
kmsEncryptionConfig :: Text -> KMSEncryptionConfig

-- | The ARN of the encryption key. Must belong to the same region as the
--   destination Amazon S3 bucket.
kecAWSKMSKeyARN :: Lens' KMSEncryptionConfig Text

-- | Contains the result for an individual record from a
--   <tt>PutRecordBatch</tt> request. If the record is successfully added
--   to your delivery stream, it receives a record ID. If the record fails
--   to be added to your delivery stream, the result includes an error code
--   and an error message.
--   
--   <i>See:</i> <a>putRecordBatchResponseEntry</a> smart constructor.
data PutRecordBatchResponseEntry

-- | Creates a value of <a>PutRecordBatchResponseEntry</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prbreRecordId</a> - The ID of the record.</li>
--   <li><a>prbreErrorCode</a> - The error code for an individual record
--   result.</li>
--   <li><a>prbreErrorMessage</a> - The error message for an individual
--   record result.</li>
--   </ul>
putRecordBatchResponseEntry :: PutRecordBatchResponseEntry

-- | The ID of the record.
prbreRecordId :: Lens' PutRecordBatchResponseEntry (Maybe Text)

-- | The error code for an individual record result.
prbreErrorCode :: Lens' PutRecordBatchResponseEntry (Maybe Text)

-- | The error message for an individual record result.
prbreErrorMessage :: Lens' PutRecordBatchResponseEntry (Maybe Text)

-- | The unit of data in a delivery stream.
--   
--   <i>See:</i> <a>record</a> smart constructor.
data Record

-- | Creates a value of <a>Record</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rData</a> - The data blob, which is base64-encoded when the
--   blob is serialized. The maximum size of the data blob, before
--   base64-encoding, is 1,000 KB.-- <i>Note:</i> This <tt>Lens</tt>
--   automatically encodes and decodes Base64 data. The underlying
--   isomorphism will encode to Base64 representation during serialisation,
--   and decode from Base64 representation during deserialisation. This
--   <tt>Lens</tt> accepts and returns only raw unencoded data.</li>
--   </ul>
record :: ByteString -> Record

-- | The data blob, which is base64-encoded when the blob is serialized.
--   The maximum size of the data blob, before base64-encoding, is 1,000
--   KB.-- <i>Note:</i> This <tt>Lens</tt> automatically encodes and
--   decodes Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.
rData :: Lens' Record ByteString

-- | Describes the configuration of a destination in Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftDestinationConfiguration</a> smart constructor.
data RedshiftDestinationConfiguration

-- | Creates a value of <a>RedshiftDestinationConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rdcCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>rdcRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon Redshift.
--   Default value is 3600 (60 minutes).</li>
--   <li><a>rdcRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>rdcClusterJDBCURL</a> - The database connection string.</li>
--   <li><a>rdcCopyCommand</a> - The <tt>COPY</tt> command.</li>
--   <li><a>rdcUsername</a> - The name of the user.</li>
--   <li><a>rdcPassword</a> - The user password.</li>
--   <li><a>rdcS3Configuration</a> - The S3 configuration for the
--   intermediate location from which Amazon Redshift obtains data.
--   Restrictions are described in the topic for
--   <tt>CreateDeliveryStream</tt> . The compression formats
--   <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationConfiguration.S3Configuration</b> because the
--   Amazon Redshift <tt>COPY</tt> operation that reads from the S3 bucket
--   doesn't support these compression formats.</li>
--   </ul>
redshiftDestinationConfiguration :: Text -> Text -> CopyCommand -> Text -> Text -> S3DestinationConfiguration -> RedshiftDestinationConfiguration

-- | Describes CloudWatch logging options for your delivery stream.
rdcCloudWatchLoggingOptions :: Lens' RedshiftDestinationConfiguration (Maybe CloudWatchLoggingOptions)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift. Default value is 3600 (60
--   minutes).
rdcRetryOptions :: Lens' RedshiftDestinationConfiguration (Maybe RedshiftRetryOptions)

-- | The ARN of the AWS credentials.
rdcRoleARN :: Lens' RedshiftDestinationConfiguration Text

-- | The database connection string.
rdcClusterJDBCURL :: Lens' RedshiftDestinationConfiguration Text

-- | The <tt>COPY</tt> command.
rdcCopyCommand :: Lens' RedshiftDestinationConfiguration CopyCommand

-- | The name of the user.
rdcUsername :: Lens' RedshiftDestinationConfiguration Text

-- | The user password.
rdcPassword :: Lens' RedshiftDestinationConfiguration Text

-- | The S3 configuration for the intermediate location from which Amazon
--   Redshift obtains data. Restrictions are described in the topic for
--   <tt>CreateDeliveryStream</tt> . The compression formats
--   <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationConfiguration.S3Configuration</b> because the
--   Amazon Redshift <tt>COPY</tt> operation that reads from the S3 bucket
--   doesn't support these compression formats.
rdcS3Configuration :: Lens' RedshiftDestinationConfiguration S3DestinationConfiguration

-- | Describes a destination in Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftDestinationDescription</a> smart constructor.
data RedshiftDestinationDescription

-- | Creates a value of <a>RedshiftDestinationDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rddCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>rddRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon Redshift.
--   Default value is 3600 (60 minutes).</li>
--   <li><a>rddRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>rddClusterJDBCURL</a> - The database connection string.</li>
--   <li><a>rddCopyCommand</a> - The <tt>COPY</tt> command.</li>
--   <li><a>rddUsername</a> - The name of the user.</li>
--   <li><a>rddS3DestinationDescription</a> - The Amazon S3
--   destination.</li>
--   </ul>
redshiftDestinationDescription :: Text -> Text -> CopyCommand -> Text -> S3DestinationDescription -> RedshiftDestinationDescription

-- | Describes CloudWatch logging options for your delivery stream.
rddCloudWatchLoggingOptions :: Lens' RedshiftDestinationDescription (Maybe CloudWatchLoggingOptions)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift. Default value is 3600 (60
--   minutes).
rddRetryOptions :: Lens' RedshiftDestinationDescription (Maybe RedshiftRetryOptions)

-- | The ARN of the AWS credentials.
rddRoleARN :: Lens' RedshiftDestinationDescription Text

-- | The database connection string.
rddClusterJDBCURL :: Lens' RedshiftDestinationDescription Text

-- | The <tt>COPY</tt> command.
rddCopyCommand :: Lens' RedshiftDestinationDescription CopyCommand

-- | The name of the user.
rddUsername :: Lens' RedshiftDestinationDescription Text

-- | The Amazon S3 destination.
rddS3DestinationDescription :: Lens' RedshiftDestinationDescription S3DestinationDescription

-- | Describes an update for a destination in Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftDestinationUpdate</a> smart constructor.
data RedshiftDestinationUpdate

-- | Creates a value of <a>RedshiftDestinationUpdate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rduCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>rduUsername</a> - The name of the user.</li>
--   <li><a>rduS3Update</a> - The Amazon S3 destination. The compression
--   formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationUpdate.S3Update</b> because the Amazon Redshift
--   <tt>COPY</tt> operation that reads from the S3 bucket doesn't support
--   these compression formats.</li>
--   <li><a>rduPassword</a> - The user password.</li>
--   <li><a>rduCopyCommand</a> - The <tt>COPY</tt> command.</li>
--   <li><a>rduRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon Redshift.
--   Default value is 3600 (60 minutes).</li>
--   <li><a>rduClusterJDBCURL</a> - The database connection string.</li>
--   <li><a>rduRoleARN</a> - The ARN of the AWS credentials.</li>
--   </ul>
redshiftDestinationUpdate :: RedshiftDestinationUpdate

-- | Describes CloudWatch logging options for your delivery stream.
rduCloudWatchLoggingOptions :: Lens' RedshiftDestinationUpdate (Maybe CloudWatchLoggingOptions)

-- | The name of the user.
rduUsername :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | The Amazon S3 destination. The compression formats <tt>SNAPPY</tt> or
--   <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationUpdate.S3Update</b> because the Amazon Redshift
--   <tt>COPY</tt> operation that reads from the S3 bucket doesn't support
--   these compression formats.
rduS3Update :: Lens' RedshiftDestinationUpdate (Maybe S3DestinationUpdate)

-- | The user password.
rduPassword :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | The <tt>COPY</tt> command.
rduCopyCommand :: Lens' RedshiftDestinationUpdate (Maybe CopyCommand)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift. Default value is 3600 (60
--   minutes).
rduRetryOptions :: Lens' RedshiftDestinationUpdate (Maybe RedshiftRetryOptions)

-- | The database connection string.
rduClusterJDBCURL :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | The ARN of the AWS credentials.
rduRoleARN :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftRetryOptions</a> smart constructor.
data RedshiftRetryOptions

-- | Creates a value of <a>RedshiftRetryOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rroDurationInSeconds</a> - The length of time during which
--   Firehose retries delivery after a failure, starting from the initial
--   request and including the first attempt. The default value is 3600
--   seconds (60 minutes). Firehose does not retry if the value of
--   <tt>DurationInSeconds</tt> is 0 (zero) or if the first delivery
--   attempt takes longer than the current value.</li>
--   </ul>
redshiftRetryOptions :: RedshiftRetryOptions

-- | The length of time during which Firehose retries delivery after a
--   failure, starting from the initial request and including the first
--   attempt. The default value is 3600 seconds (60 minutes). Firehose does
--   not retry if the value of <tt>DurationInSeconds</tt> is 0 (zero) or if
--   the first delivery attempt takes longer than the current value.
rroDurationInSeconds :: Lens' RedshiftRetryOptions (Maybe Natural)

-- | Describes the configuration of a destination in Amazon S3.
--   
--   <i>See:</i> <a>s3DestinationConfiguration</a> smart constructor.
data S3DestinationConfiguration

-- | Creates a value of <a>S3DestinationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdcPrefix</a> - The "YYYY<i>MM</i>DD<i>HH" time format prefix
--   is automatically used for delivered S3 files. You can specify an extra
--   prefix to be added in front of the time format prefix. Note that if
--   the prefix ends with a slash, it appears as a folder in the S3 bucket.
--   For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .</li>
--   <li><a>sdcCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>sdcEncryptionConfiguration</a> - The encryption configuration.
--   If no value is specified, the default is no encryption.</li>
--   <li><a>sdcCompressionFormat</a> - The compression format. If no value
--   is specified, the default is <tt>UNCOMPRESSED</tt> . The compression
--   formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified for Amazon
--   Redshift destinations because they are not supported by the Amazon
--   Redshift <tt>COPY</tt> operation that reads from the S3 bucket.</li>
--   <li><a>sdcBufferingHints</a> - The buffering option. If no value is
--   specified, <b>BufferingHints</b> object default values are used.</li>
--   <li><a>sdcRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>sdcBucketARN</a> - The ARN of the S3 bucket.</li>
--   </ul>
s3DestinationConfiguration :: Text -> Text -> S3DestinationConfiguration

-- | The "YYYY<i>MM</i>DD<i>HH" time format prefix is automatically used
--   for delivered S3 files. You can specify an extra prefix to be added in
--   front of the time format prefix. Note that if the prefix ends with a
--   slash, it appears as a folder in the S3 bucket. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .
sdcPrefix :: Lens' S3DestinationConfiguration (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
sdcCloudWatchLoggingOptions :: Lens' S3DestinationConfiguration (Maybe CloudWatchLoggingOptions)

-- | The encryption configuration. If no value is specified, the default is
--   no encryption.
sdcEncryptionConfiguration :: Lens' S3DestinationConfiguration (Maybe EncryptionConfiguration)

-- | The compression format. If no value is specified, the default is
--   <tt>UNCOMPRESSED</tt> . The compression formats <tt>SNAPPY</tt> or
--   <tt>ZIP</tt> cannot be specified for Amazon Redshift destinations
--   because they are not supported by the Amazon Redshift <tt>COPY</tt>
--   operation that reads from the S3 bucket.
sdcCompressionFormat :: Lens' S3DestinationConfiguration (Maybe CompressionFormat)

-- | The buffering option. If no value is specified, <b>BufferingHints</b>
--   object default values are used.
sdcBufferingHints :: Lens' S3DestinationConfiguration (Maybe BufferingHints)

-- | The ARN of the AWS credentials.
sdcRoleARN :: Lens' S3DestinationConfiguration Text

-- | The ARN of the S3 bucket.
sdcBucketARN :: Lens' S3DestinationConfiguration Text

-- | Describes a destination in Amazon S3.
--   
--   <i>See:</i> <a>s3DestinationDescription</a> smart constructor.
data S3DestinationDescription

-- | Creates a value of <a>S3DestinationDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sddPrefix</a> - The "YYYY<i>MM</i>DD<i>HH" time format prefix
--   is automatically used for delivered S3 files. You can specify an extra
--   prefix to be added in front of the time format prefix. Note that if
--   the prefix ends with a slash, it appears as a folder in the S3 bucket.
--   For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .</li>
--   <li><a>sddCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>sddRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>sddBucketARN</a> - The ARN of the S3 bucket.</li>
--   <li><a>sddBufferingHints</a> - The buffering option. If no value is
--   specified, <b>BufferingHints</b> object default values are used.</li>
--   <li><a>sddCompressionFormat</a> - The compression format. If no value
--   is specified, the default is <tt>NOCOMPRESSION</tt> .</li>
--   <li><a>sddEncryptionConfiguration</a> - The encryption configuration.
--   If no value is specified, the default is no encryption.</li>
--   </ul>
s3DestinationDescription :: Text -> Text -> BufferingHints -> CompressionFormat -> EncryptionConfiguration -> S3DestinationDescription

-- | The "YYYY<i>MM</i>DD<i>HH" time format prefix is automatically used
--   for delivered S3 files. You can specify an extra prefix to be added in
--   front of the time format prefix. Note that if the prefix ends with a
--   slash, it appears as a folder in the S3 bucket. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .
sddPrefix :: Lens' S3DestinationDescription (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
sddCloudWatchLoggingOptions :: Lens' S3DestinationDescription (Maybe CloudWatchLoggingOptions)

-- | The ARN of the AWS credentials.
sddRoleARN :: Lens' S3DestinationDescription Text

-- | The ARN of the S3 bucket.
sddBucketARN :: Lens' S3DestinationDescription Text

-- | The buffering option. If no value is specified, <b>BufferingHints</b>
--   object default values are used.
sddBufferingHints :: Lens' S3DestinationDescription BufferingHints

-- | The compression format. If no value is specified, the default is
--   <tt>NOCOMPRESSION</tt> .
sddCompressionFormat :: Lens' S3DestinationDescription CompressionFormat

-- | The encryption configuration. If no value is specified, the default is
--   no encryption.
sddEncryptionConfiguration :: Lens' S3DestinationDescription EncryptionConfiguration

-- | Describes an update for a destination in Amazon S3.
--   
--   <i>See:</i> <a>s3DestinationUpdate</a> smart constructor.
data S3DestinationUpdate

-- | Creates a value of <a>S3DestinationUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sduPrefix</a> - The "YYYY<i>MM</i>DD<i>HH" time format prefix
--   is automatically used for delivered S3 files. You can specify an extra
--   prefix to be added in front of the time format prefix. Note that if
--   the prefix ends with a slash, it appears as a folder in the S3 bucket.
--   For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .</li>
--   <li><a>sduCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>sduEncryptionConfiguration</a> - The encryption configuration.
--   If no value is specified, the default is no encryption.</li>
--   <li><a>sduCompressionFormat</a> - The compression format. If no value
--   is specified, the default is <tt>NOCOMPRESSION</tt> . The compression
--   formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified for Amazon
--   Redshift destinations because they are not supported by the Amazon
--   Redshift <tt>COPY</tt> operation that reads from the S3 bucket.</li>
--   <li><a>sduBufferingHints</a> - The buffering option. If no value is
--   specified, <b>BufferingHints</b> object default values are used.</li>
--   <li><a>sduBucketARN</a> - The ARN of the S3 bucket.</li>
--   <li><a>sduRoleARN</a> - The ARN of the AWS credentials.</li>
--   </ul>
s3DestinationUpdate :: S3DestinationUpdate

-- | The "YYYY<i>MM</i>DD<i>HH" time format prefix is automatically used
--   for delivered S3 files. You can specify an extra prefix to be added in
--   front of the time format prefix. Note that if the prefix ends with a
--   slash, it appears as a folder in the S3 bucket. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .
sduPrefix :: Lens' S3DestinationUpdate (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
sduCloudWatchLoggingOptions :: Lens' S3DestinationUpdate (Maybe CloudWatchLoggingOptions)

-- | The encryption configuration. If no value is specified, the default is
--   no encryption.
sduEncryptionConfiguration :: Lens' S3DestinationUpdate (Maybe EncryptionConfiguration)

-- | The compression format. If no value is specified, the default is
--   <tt>NOCOMPRESSION</tt> . The compression formats <tt>SNAPPY</tt> or
--   <tt>ZIP</tt> cannot be specified for Amazon Redshift destinations
--   because they are not supported by the Amazon Redshift <tt>COPY</tt>
--   operation that reads from the S3 bucket.
sduCompressionFormat :: Lens' S3DestinationUpdate (Maybe CompressionFormat)

-- | The buffering option. If no value is specified, <b>BufferingHints</b>
--   object default values are used.
sduBufferingHints :: Lens' S3DestinationUpdate (Maybe BufferingHints)

-- | The ARN of the S3 bucket.
sduBucketARN :: Lens' S3DestinationUpdate (Maybe Text)

-- | The ARN of the AWS credentials.
sduRoleARN :: Lens' S3DestinationUpdate (Maybe Text)


-- | Updates the specified destination of the specified delivery stream.
--   Note: Switching between Elasticsearch and other services is not
--   supported. For Elasticsearch destination, you can only update an
--   existing Elasticsearch destination with this operation.
--   
--   This operation can be used to change the destination type (for
--   example, to replace the Amazon S3 destination with Amazon Redshift) or
--   change the parameters associated with a given destination (for
--   example, to change the bucket name of the Amazon S3 destination). The
--   update may not occur immediately. The target delivery stream remains
--   active while the configurations are updated, so data writes to the
--   delivery stream can continue during this process. The updated
--   configurations are normally effective within a few minutes.
--   
--   If the destination type is the same, Firehose merges the configuration
--   parameters specified in the <a>UpdateDestination</a> request with the
--   destination configuration that already exists on the delivery stream.
--   If any of the parameters are not specified in the update request, then
--   the existing configuration parameters are retained. For example, in
--   the Amazon S3 destination, if <a>EncryptionConfiguration</a> is not
--   specified then the existing <a>EncryptionConfiguration</a> is
--   maintained on the destination.
--   
--   If the destination type is not the same, for example, changing the
--   destination from Amazon S3 to Amazon Redshift, Firehose does not merge
--   any parameters. In this case, all parameters must be specified.
--   
--   Firehose uses the <b>CurrentDeliveryStreamVersionId</b> to avoid race
--   conditions and conflicting merges. This is a required field in every
--   request and the service only updates the configuration if the existing
--   configuration matches the <b>VersionId</b> . After the update is
--   applied successfully, the <b>VersionId</b> is updated, which can be
--   retrieved with the <tt>DescribeDeliveryStream</tt> operation. The new
--   <b>VersionId</b> should be uses to set
--   <b>CurrentDeliveryStreamVersionId</b> in the next
--   <a>UpdateDestination</a> operation.
module Network.AWS.Firehose.UpdateDestination

-- | Creates a value of <a>UpdateDestination</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udS3DestinationUpdate</a> - Describes an update for a
--   destination in Amazon S3.</li>
--   <li><a>udRedshiftDestinationUpdate</a> - Describes an update for a
--   destination in Amazon Redshift.</li>
--   <li><a>udElasticsearchDestinationUpdate</a> - Describes an update for
--   a destination in Amazon ES.</li>
--   <li><a>udDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   <li><a>udCurrentDeliveryStreamVersionId</a> - Obtain this value from
--   the <b>VersionId</b> result of the <a>DeliveryStreamDescription</a>
--   operation. This value is required, and helps the service to perform
--   conditional operations. For example, if there is a interleaving update
--   and this value is null, then the update destination fails. After the
--   update is successful, the <b>VersionId</b> value is updated. The
--   service then performs a merge of the old configuration with the new
--   configuration.</li>
--   <li><a>udDestinationId</a> - The ID of the destination.</li>
--   </ul>
updateDestination :: Text -> Text -> Text -> UpdateDestination

-- | Contains the parameters for <a>UpdateDestination</a> .
--   
--   <i>See:</i> <a>updateDestination</a> smart constructor.
data UpdateDestination

-- | Describes an update for a destination in Amazon S3.
udS3DestinationUpdate :: Lens' UpdateDestination (Maybe S3DestinationUpdate)

-- | Describes an update for a destination in Amazon Redshift.
udRedshiftDestinationUpdate :: Lens' UpdateDestination (Maybe RedshiftDestinationUpdate)

-- | Describes an update for a destination in Amazon ES.
udElasticsearchDestinationUpdate :: Lens' UpdateDestination (Maybe ElasticsearchDestinationUpdate)

-- | The name of the delivery stream.
udDeliveryStreamName :: Lens' UpdateDestination Text

-- | Obtain this value from the <b>VersionId</b> result of the
--   <a>DeliveryStreamDescription</a> operation. This value is required,
--   and helps the service to perform conditional operations. For example,
--   if there is a interleaving update and this value is null, then the
--   update destination fails. After the update is successful, the
--   <b>VersionId</b> value is updated. The service then performs a merge
--   of the old configuration with the new configuration.
udCurrentDeliveryStreamVersionId :: Lens' UpdateDestination Text

-- | The ID of the destination.
udDestinationId :: Lens' UpdateDestination Text

-- | Creates a value of <a>UpdateDestinationResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>udrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
updateDestinationResponse :: Int -> UpdateDestinationResponse

-- | Contains the output of <a>UpdateDestination</a> .
--   
--   <i>See:</i> <a>updateDestinationResponse</a> smart constructor.
data UpdateDestinationResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
udrsResponseStatus :: Lens' UpdateDestinationResponse Int
instance GHC.Generics.Generic Network.AWS.Firehose.UpdateDestination.UpdateDestinationResponse
instance Data.Data.Data Network.AWS.Firehose.UpdateDestination.UpdateDestinationResponse
instance GHC.Show.Show Network.AWS.Firehose.UpdateDestination.UpdateDestinationResponse
instance GHC.Read.Read Network.AWS.Firehose.UpdateDestination.UpdateDestinationResponse
instance GHC.Classes.Eq Network.AWS.Firehose.UpdateDestination.UpdateDestinationResponse
instance GHC.Generics.Generic Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Data.Data.Data Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance GHC.Show.Show Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance GHC.Read.Read Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance GHC.Classes.Eq Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Control.DeepSeq.NFData Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.UpdateDestination.UpdateDestination
instance Control.DeepSeq.NFData Network.AWS.Firehose.UpdateDestination.UpdateDestinationResponse


module Network.AWS.Firehose.Waiters


-- | Writes multiple data records into a delivery stream in a single call,
--   which can achieve higher throughput per producer than when writing
--   single records. To write single data records into a delivery stream,
--   use <tt>PutRecord</tt> . Applications using these operations are
--   referred to as producers.
--   
--   Each <a>PutRecordBatch</a> request supports up to 500 records. Each
--   record in the request can be as large as 1,000 KB (before 64-bit
--   encoding), up to a limit of 4 MB for the entire request. By default,
--   each delivery stream can take in up to 2,000 transactions per second,
--   5,000 records per second, or 5 MB per second. Note that if you use
--   <tt>PutRecord</tt> and <a>PutRecordBatch</a> , the limits are an
--   aggregate across these two operations for each delivery stream. For
--   more information about limits and how to request an increase, see
--   <a>Amazon Kinesis Firehose Limits</a> .
--   
--   You must specify the name of the delivery stream and the data record
--   when using <tt>PutRecord</tt> . The data record consists of a data
--   blob that can be up to 1,000 KB in size, and any kind of data, for
--   example, a segment from a log file, geographic location data, web site
--   clickstream data, and so on.
--   
--   Firehose buffers records before delivering them to the destination. To
--   disambiguate the data blobs at the destination, a common solution is
--   to use delimiters in the data, such as a newline (<tt>n</tt> ) or some
--   other character unique within the data. This allows the consumer
--   application(s) to parse individual data items when reading the data
--   from the destination.
--   
--   The <a>PutRecordBatch</a> response includes a count of any failed
--   records, <b>FailedPutCount</b> , and an array of responses,
--   <b>RequestResponses</b> . The <b>FailedPutCount</b> value is a count
--   of records that failed. Each entry in the <b>RequestResponses</b>
--   array gives additional information of the processed record. Each entry
--   in <b>RequestResponses</b> directly correlates with a record in the
--   request array using the same ordering, from the top to the bottom of
--   the request and response. <b>RequestResponses</b> always includes the
--   same number of records as the request array. <b>RequestResponses</b>
--   both successfully and unsuccessfully processed records. Firehose
--   attempts to process all records in each <a>PutRecordBatch</a> request.
--   A single record failure does not stop the processing of subsequent
--   records.
--   
--   A successfully processed record includes a <b>RecordId</b> value,
--   which is a unique value identified for the record. An unsuccessfully
--   processed record includes <b>ErrorCode</b> and <b>ErrorMessage</b>
--   values. <b>ErrorCode</b> reflects the type of error and is one of the
--   following values: <tt>ServiceUnavailable</tt> or
--   <tt>InternalFailure</tt> . <tt>ErrorMessage</tt> provides more
--   detailed information about the error.
--   
--   If <b>FailedPutCount</b> is greater than 0 (zero), retry the request.
--   A retry of the entire batch of records is possible; however, we
--   strongly recommend that you inspect the entire response and resend
--   only those records that failed processing. This minimizes duplicate
--   records and also reduces the total bytes sent (and corresponding
--   charges).
--   
--   If the <a>PutRecordBatch</a> operation throws a
--   <b>ServiceUnavailableException</b> , back off and retry. If the
--   exception persists, it is possible that the throughput limits have
--   been exceeded for the delivery stream.
--   
--   Data records sent to Firehose are stored for 24 hours from the time
--   they are added to a delivery stream as it attempts to send the records
--   to the destination. If the destination is unreachable for more than 24
--   hours, the data is no longer available.
module Network.AWS.Firehose.PutRecordBatch

-- | Creates a value of <a>PutRecordBatch</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prbDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   <li><a>prbRecords</a> - One or more records.</li>
--   </ul>
putRecordBatch :: Text -> NonEmpty Record -> PutRecordBatch

-- | Contains the parameters for <a>PutRecordBatch</a> .
--   
--   <i>See:</i> <a>putRecordBatch</a> smart constructor.
data PutRecordBatch

-- | The name of the delivery stream.
prbDeliveryStreamName :: Lens' PutRecordBatch Text

-- | One or more records.
prbRecords :: Lens' PutRecordBatch (NonEmpty Record)

-- | Creates a value of <a>PutRecordBatchResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prbrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>prbrsFailedPutCount</a> - The number of unsuccessfully written
--   records.</li>
--   <li><a>prbrsRequestResponses</a> - The results for the individual
--   records. The index of each element matches the same index in which
--   records were sent.</li>
--   </ul>
putRecordBatchResponse :: Int -> Natural -> NonEmpty PutRecordBatchResponseEntry -> PutRecordBatchResponse

-- | Contains the output of <a>PutRecordBatch</a> .
--   
--   <i>See:</i> <a>putRecordBatchResponse</a> smart constructor.
data PutRecordBatchResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
prbrsResponseStatus :: Lens' PutRecordBatchResponse Int

-- | The number of unsuccessfully written records.
prbrsFailedPutCount :: Lens' PutRecordBatchResponse Natural

-- | The results for the individual records. The index of each element
--   matches the same index in which records were sent.
prbrsRequestResponses :: Lens' PutRecordBatchResponse (NonEmpty PutRecordBatchResponseEntry)
instance GHC.Generics.Generic Network.AWS.Firehose.PutRecordBatch.PutRecordBatchResponse
instance Data.Data.Data Network.AWS.Firehose.PutRecordBatch.PutRecordBatchResponse
instance GHC.Show.Show Network.AWS.Firehose.PutRecordBatch.PutRecordBatchResponse
instance GHC.Read.Read Network.AWS.Firehose.PutRecordBatch.PutRecordBatchResponse
instance GHC.Classes.Eq Network.AWS.Firehose.PutRecordBatch.PutRecordBatchResponse
instance GHC.Generics.Generic Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Data.Data.Data Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance GHC.Show.Show Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance GHC.Read.Read Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance GHC.Classes.Eq Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Control.DeepSeq.NFData Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.PutRecordBatch.PutRecordBatch
instance Control.DeepSeq.NFData Network.AWS.Firehose.PutRecordBatch.PutRecordBatchResponse


-- | Writes a single data record into an Amazon Kinesis Firehose delivery
--   stream. To write multiple data records into a delivery stream, use
--   <tt>PutRecordBatch</tt> . Applications using these operations are
--   referred to as producers.
--   
--   By default, each delivery stream can take in up to 2,000 transactions
--   per second, 5,000 records per second, or 5 MB per second. Note that if
--   you use <a>PutRecord</a> and <tt>PutRecordBatch</tt> , the limits are
--   an aggregate across these two operations for each delivery stream. For
--   more information about limits and how to request an increase, see
--   <a>Amazon Kinesis Firehose Limits</a> .
--   
--   You must specify the name of the delivery stream and the data record
--   when using <a>PutRecord</a> . The data record consists of a data blob
--   that can be up to 1,000 KB in size, and any kind of data, for example,
--   a segment from a log file, geographic location data, web site
--   clickstream data, etc.
--   
--   Firehose buffers records before delivering them to the destination. To
--   disambiguate the data blobs at the destination, a common solution is
--   to use delimiters in the data, such as a newline (<tt>n</tt> ) or some
--   other character unique within the data. This allows the consumer
--   application(s) to parse individual data items when reading the data
--   from the destination.
--   
--   The <a>PutRecord</a> operation returns a <b>RecordId</b> , which is a
--   unique string assigned to each record. Producer applications can use
--   this ID for purposes such as auditability and investigation.
--   
--   If the <a>PutRecord</a> operation throws a
--   <b>ServiceUnavailableException</b> , back off and retry. If the
--   exception persists, it is possible that the throughput limits have
--   been exceeded for the delivery stream.
--   
--   Data records sent to Firehose are stored for 24 hours from the time
--   they are added to a delivery stream as it attempts to send the records
--   to the destination. If the destination is unreachable for more than 24
--   hours, the data is no longer available.
module Network.AWS.Firehose.PutRecord

-- | Creates a value of <a>PutRecord</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   <li><a>prRecord</a> - The record.</li>
--   </ul>
putRecord :: Text -> Record -> PutRecord

-- | Contains the parameters for <a>PutRecord</a> .
--   
--   <i>See:</i> <a>putRecord</a> smart constructor.
data PutRecord

-- | The name of the delivery stream.
prDeliveryStreamName :: Lens' PutRecord Text

-- | The record.
prRecord :: Lens' PutRecord Record

-- | Creates a value of <a>PutRecordResponse</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>prrsRecordId</a> - The ID of the record.</li>
--   </ul>
putRecordResponse :: Int -> Text -> PutRecordResponse

-- | Contains the output of <a>PutRecord</a> .
--   
--   <i>See:</i> <a>putRecordResponse</a> smart constructor.
data PutRecordResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
prrsResponseStatus :: Lens' PutRecordResponse Int

-- | The ID of the record.
prrsRecordId :: Lens' PutRecordResponse Text
instance GHC.Generics.Generic Network.AWS.Firehose.PutRecord.PutRecordResponse
instance Data.Data.Data Network.AWS.Firehose.PutRecord.PutRecordResponse
instance GHC.Show.Show Network.AWS.Firehose.PutRecord.PutRecordResponse
instance GHC.Read.Read Network.AWS.Firehose.PutRecord.PutRecordResponse
instance GHC.Classes.Eq Network.AWS.Firehose.PutRecord.PutRecordResponse
instance GHC.Generics.Generic Network.AWS.Firehose.PutRecord.PutRecord
instance Data.Data.Data Network.AWS.Firehose.PutRecord.PutRecord
instance GHC.Show.Show Network.AWS.Firehose.PutRecord.PutRecord
instance GHC.Read.Read Network.AWS.Firehose.PutRecord.PutRecord
instance GHC.Classes.Eq Network.AWS.Firehose.PutRecord.PutRecord
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.PutRecord.PutRecord
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.PutRecord.PutRecord
instance Control.DeepSeq.NFData Network.AWS.Firehose.PutRecord.PutRecord
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.PutRecord.PutRecord
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.PutRecord.PutRecord
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.PutRecord.PutRecord
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.PutRecord.PutRecord
instance Control.DeepSeq.NFData Network.AWS.Firehose.PutRecord.PutRecordResponse


-- | Lists your delivery streams.
--   
--   The number of delivery streams might be too large to return using a
--   single call to <a>ListDeliveryStreams</a> . You can limit the number
--   of delivery streams returned, using the <b>Limit</b> parameter. To
--   determine whether there are more delivery streams to list, check the
--   value of <b>HasMoreDeliveryStreams</b> in the output. If there are
--   more delivery streams to list, you can request them by specifying the
--   name of the last delivery stream returned in the call in the
--   <b>ExclusiveStartDeliveryStreamName</b> parameter of a subsequent
--   call.
module Network.AWS.Firehose.ListDeliveryStreams

-- | Creates a value of <a>ListDeliveryStreams</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldsLimit</a> - The maximum number of delivery streams to
--   list.</li>
--   <li><a>ldsExclusiveStartDeliveryStreamName</a> - The name of the
--   delivery stream to start the list with.</li>
--   </ul>
listDeliveryStreams :: ListDeliveryStreams

-- | Contains the parameters for <a>ListDeliveryStreams</a> .
--   
--   <i>See:</i> <a>listDeliveryStreams</a> smart constructor.
data ListDeliveryStreams

-- | The maximum number of delivery streams to list.
ldsLimit :: Lens' ListDeliveryStreams (Maybe Natural)

-- | The name of the delivery stream to start the list with.
ldsExclusiveStartDeliveryStreamName :: Lens' ListDeliveryStreams (Maybe Text)

-- | Creates a value of <a>ListDeliveryStreamsResponse</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ldsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ldsrsDeliveryStreamNames</a> - The names of the delivery
--   streams.</li>
--   <li><a>ldsrsHasMoreDeliveryStreams</a> - Indicates whether there are
--   more delivery streams available to list.</li>
--   </ul>
listDeliveryStreamsResponse :: Int -> Bool -> ListDeliveryStreamsResponse

-- | Contains the output of <a>ListDeliveryStreams</a> .
--   
--   <i>See:</i> <a>listDeliveryStreamsResponse</a> smart constructor.
data ListDeliveryStreamsResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ldsrsResponseStatus :: Lens' ListDeliveryStreamsResponse Int

-- | The names of the delivery streams.
ldsrsDeliveryStreamNames :: Lens' ListDeliveryStreamsResponse [Text]

-- | Indicates whether there are more delivery streams available to list.
ldsrsHasMoreDeliveryStreams :: Lens' ListDeliveryStreamsResponse Bool
instance GHC.Generics.Generic Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreamsResponse
instance Data.Data.Data Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreamsResponse
instance GHC.Show.Show Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreamsResponse
instance GHC.Read.Read Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreamsResponse
instance GHC.Classes.Eq Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreamsResponse
instance GHC.Generics.Generic Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Data.Data.Data Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance GHC.Show.Show Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance GHC.Read.Read Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance GHC.Classes.Eq Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Control.DeepSeq.NFData Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreams
instance Control.DeepSeq.NFData Network.AWS.Firehose.ListDeliveryStreams.ListDeliveryStreamsResponse


-- | Describes the specified delivery stream and gets the status. For
--   example, after your delivery stream is created, call
--   <a>DescribeDeliveryStream</a> to see if the delivery stream is
--   <tt>ACTIVE</tt> and therefore ready for data to be sent to it.
module Network.AWS.Firehose.DescribeDeliveryStream

-- | Creates a value of <a>DescribeDeliveryStream</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddsExclusiveStartDestinationId</a> - Specifies the destination
--   ID to start returning the destination information. Currently Firehose
--   supports one destination per delivery stream.</li>
--   <li><a>ddsLimit</a> - The limit on the number of destinations to
--   return. Currently, you can have one destination per delivery
--   stream.</li>
--   <li><a>ddsDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   </ul>
describeDeliveryStream :: Text -> DescribeDeliveryStream

-- | Contains the parameters for <a>DescribeDeliveryStream</a> .
--   
--   <i>See:</i> <a>describeDeliveryStream</a> smart constructor.
data DescribeDeliveryStream

-- | Specifies the destination ID to start returning the destination
--   information. Currently Firehose supports one destination per delivery
--   stream.
ddsExclusiveStartDestinationId :: Lens' DescribeDeliveryStream (Maybe Text)

-- | The limit on the number of destinations to return. Currently, you can
--   have one destination per delivery stream.
ddsLimit :: Lens' DescribeDeliveryStream (Maybe Natural)

-- | The name of the delivery stream.
ddsDeliveryStreamName :: Lens' DescribeDeliveryStream Text

-- | Creates a value of <a>DescribeDeliveryStreamResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddsrsResponseStatus</a> - -- | The response status code.</li>
--   <li><a>ddsrsDeliveryStreamDescription</a> - Information about the
--   delivery stream.</li>
--   </ul>
describeDeliveryStreamResponse :: Int -> DeliveryStreamDescription -> DescribeDeliveryStreamResponse

-- | Contains the output of <a>DescribeDeliveryStream</a> .
--   
--   <i>See:</i> <a>describeDeliveryStreamResponse</a> smart constructor.
data DescribeDeliveryStreamResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
ddsrsResponseStatus :: Lens' DescribeDeliveryStreamResponse Int

-- | Information about the delivery stream.
ddsrsDeliveryStreamDescription :: Lens' DescribeDeliveryStreamResponse DeliveryStreamDescription
instance GHC.Generics.Generic Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStreamResponse
instance Data.Data.Data Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStreamResponse
instance GHC.Show.Show Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStreamResponse
instance GHC.Read.Read Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStreamResponse
instance GHC.Classes.Eq Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStreamResponse
instance GHC.Generics.Generic Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Data.Data.Data Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance GHC.Show.Show Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance GHC.Read.Read Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance GHC.Classes.Eq Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Control.DeepSeq.NFData Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStream
instance Control.DeepSeq.NFData Network.AWS.Firehose.DescribeDeliveryStream.DescribeDeliveryStreamResponse


-- | Deletes a delivery stream and its data.
--   
--   You can delete a delivery stream only if it is in <tt>ACTIVE</tt> or
--   <tt>DELETING</tt> state, and not in the <tt>CREATING</tt> state. While
--   the deletion request is in process, the delivery stream is in the
--   <tt>DELETING</tt> state.
--   
--   To check the state of a delivery stream, use
--   <tt>DescribeDeliveryStream</tt> .
--   
--   While the delivery stream is <tt>DELETING</tt> state, the service may
--   continue to accept the records, but the service doesn't make any
--   guarantees with respect to delivering the data. Therefore, as a best
--   practice, you should first stop any applications that are sending
--   records before deleting a delivery stream.
module Network.AWS.Firehose.DeleteDeliveryStream

-- | Creates a value of <a>DeleteDeliveryStream</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dDeliveryStreamName</a> - The name of the delivery stream.</li>
--   </ul>
deleteDeliveryStream :: Text -> DeleteDeliveryStream

-- | Contains the parameters for <a>DeleteDeliveryStream</a> .
--   
--   <i>See:</i> <a>deleteDeliveryStream</a> smart constructor.
data DeleteDeliveryStream

-- | The name of the delivery stream.
dDeliveryStreamName :: Lens' DeleteDeliveryStream Text

-- | Creates a value of <a>DeleteDeliveryStreamResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>drsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
deleteDeliveryStreamResponse :: Int -> DeleteDeliveryStreamResponse

-- | Contains the output of <a>DeleteDeliveryStream</a> .
--   
--   <i>See:</i> <a>deleteDeliveryStreamResponse</a> smart constructor.
data DeleteDeliveryStreamResponse

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
drsResponseStatus :: Lens' DeleteDeliveryStreamResponse Int
instance GHC.Generics.Generic Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStreamResponse
instance Data.Data.Data Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStreamResponse
instance GHC.Show.Show Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStreamResponse
instance GHC.Read.Read Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStreamResponse
instance GHC.Classes.Eq Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStreamResponse
instance GHC.Generics.Generic Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Data.Data.Data Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance GHC.Show.Show Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance GHC.Read.Read Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance GHC.Classes.Eq Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Control.DeepSeq.NFData Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStream
instance Control.DeepSeq.NFData Network.AWS.Firehose.DeleteDeliveryStream.DeleteDeliveryStreamResponse


-- | Creates a delivery stream.
--   
--   <a>CreateDeliveryStream</a> is an asynchronous operation that
--   immediately returns. The initial status of the delivery stream is
--   <tt>CREATING</tt> . After the delivery stream is created, its status
--   is <tt>ACTIVE</tt> and it now accepts data. Attempts to send data to a
--   delivery stream that is not in the <tt>ACTIVE</tt> state cause an
--   exception. To check the state of a delivery stream, use
--   <tt>DescribeDeliveryStream</tt> .
--   
--   The name of a delivery stream identifies it. You can't have two
--   delivery streams with the same name in the same region. Two delivery
--   streams in different AWS accounts or different regions in the same AWS
--   account can have the same name.
--   
--   By default, you can create up to 20 delivery streams per region.
--   
--   A delivery stream can only be configured with a single destination,
--   Amazon S3, Amazon Elasticsearch Service, or Amazon Redshift. For
--   correct <a>CreateDeliveryStream</a> request syntax, specify only one
--   destination configuration parameter: either
--   <b>S3DestinationConfiguration</b> ,
--   <b>ElasticsearchDestinationConfiguration</b> , or
--   <b>RedshiftDestinationConfiguration</b> .
--   
--   As part of <b>S3DestinationConfiguration</b> , optional values
--   <b>BufferingHints</b> , <b>EncryptionConfiguration</b> , and
--   <b>CompressionFormat</b> can be provided. By default, if no
--   <b>BufferingHints</b> value is provided, Firehose buffers data up to 5
--   MB or for 5 minutes, whichever condition is satisfied first. Note that
--   <b>BufferingHints</b> is a hint, so there are some cases where the
--   service cannot adhere to these conditions strictly; for example,
--   record boundaries are such that the size is a little over or under the
--   configured buffering size. By default, no encryption is performed. We
--   strongly recommend that you enable encryption to ensure secure data
--   storage in Amazon S3.
--   
--   A few notes about <b>RedshiftDestinationConfiguration</b> :
--   
--   <ul>
--   <li>An Amazon Redshift destination requires an S3 bucket as
--   intermediate location, as Firehose first delivers data to S3 and then
--   uses <tt>COPY</tt> syntax to load data into an Amazon Redshift table.
--   This is specified in the
--   <b>RedshiftDestinationConfiguration.S3Configuration</b> parameter
--   element.</li>
--   <li>The compression formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be
--   specified in <b>RedshiftDestinationConfiguration.S3Configuration</b>
--   because the Amazon Redshift <tt>COPY</tt> operation that reads from
--   the S3 bucket doesn't support these compression formats.</li>
--   <li>We strongly recommend that the username and password provided is
--   used exclusively for Firehose purposes, and that the permissions for
--   the account are restricted for Amazon Redshift <tt>INSERT</tt>
--   permissions.</li>
--   </ul>
--   
--   Firehose assumes the IAM role that is configured as part of
--   destinations. The IAM role should allow the Firehose principal to
--   assume the role, and the role should have permissions that allows the
--   service to deliver the data. For more information, see <a>Amazon S3
--   Bucket Access</a> in the <i>Amazon Kinesis Firehose Developer
--   Guide</i> .
module Network.AWS.Firehose.CreateDeliveryStream

-- | Creates a value of <a>CreateDeliveryStream</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdsS3DestinationConfiguration</a> - The destination in Amazon
--   S3. This value must be specified if
--   <b>ElasticsearchDestinationConfiguration</b> or
--   <b>RedshiftDestinationConfiguration</b> is specified (see restrictions
--   listed above).</li>
--   <li><a>cdsRedshiftDestinationConfiguration</a> - The destination in
--   Amazon Redshift. This value cannot be specified if Amazon S3 or Amazon
--   Elasticsearch is the desired destination (see restrictions listed
--   above).</li>
--   <li><a>cdsElasticsearchDestinationConfiguration</a> - The destination
--   in Amazon ES. This value cannot be specified if Amazon S3 or Amazon
--   Redshift is the desired destination (see restrictions listed
--   above).</li>
--   <li><a>cdsDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   </ul>
createDeliveryStream :: Text -> CreateDeliveryStream

-- | Contains the parameters for <a>CreateDeliveryStream</a> .
--   
--   <i>See:</i> <a>createDeliveryStream</a> smart constructor.
data CreateDeliveryStream

-- | The destination in Amazon S3. This value must be specified if
--   <b>ElasticsearchDestinationConfiguration</b> or
--   <b>RedshiftDestinationConfiguration</b> is specified (see restrictions
--   listed above).
cdsS3DestinationConfiguration :: Lens' CreateDeliveryStream (Maybe S3DestinationConfiguration)

-- | The destination in Amazon Redshift. This value cannot be specified if
--   Amazon S3 or Amazon Elasticsearch is the desired destination (see
--   restrictions listed above).
cdsRedshiftDestinationConfiguration :: Lens' CreateDeliveryStream (Maybe RedshiftDestinationConfiguration)

-- | The destination in Amazon ES. This value cannot be specified if Amazon
--   S3 or Amazon Redshift is the desired destination (see restrictions
--   listed above).
cdsElasticsearchDestinationConfiguration :: Lens' CreateDeliveryStream (Maybe ElasticsearchDestinationConfiguration)

-- | The name of the delivery stream.
cdsDeliveryStreamName :: Lens' CreateDeliveryStream Text

-- | Creates a value of <a>CreateDeliveryStreamResponse</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cdsrsDeliveryStreamARN</a> - The ARN of the delivery
--   stream.</li>
--   <li><a>cdsrsResponseStatus</a> - -- | The response status code.</li>
--   </ul>
createDeliveryStreamResponse :: Int -> CreateDeliveryStreamResponse

-- | Contains the output of <a>CreateDeliveryStream</a> .
--   
--   <i>See:</i> <a>createDeliveryStreamResponse</a> smart constructor.
data CreateDeliveryStreamResponse

-- | The ARN of the delivery stream.
cdsrsDeliveryStreamARN :: Lens' CreateDeliveryStreamResponse (Maybe Text)

-- | <ul>
--   <li>- | The response status code.</li>
--   </ul>
cdsrsResponseStatus :: Lens' CreateDeliveryStreamResponse Int
instance GHC.Generics.Generic Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStreamResponse
instance Data.Data.Data Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStreamResponse
instance GHC.Show.Show Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStreamResponse
instance GHC.Read.Read Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStreamResponse
instance GHC.Classes.Eq Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStreamResponse
instance GHC.Generics.Generic Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Data.Data.Data Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance GHC.Show.Show Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance GHC.Read.Read Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance GHC.Classes.Eq Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Network.AWS.Types.AWSRequest Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Data.Hashable.Class.Hashable Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Control.DeepSeq.NFData Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Network.AWS.Data.Headers.ToHeaders Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Data.Aeson.Types.ToJSON.ToJSON Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Network.AWS.Data.Path.ToPath Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Network.AWS.Data.Query.ToQuery Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStream
instance Control.DeepSeq.NFData Network.AWS.Firehose.CreateDeliveryStream.CreateDeliveryStreamResponse


-- | <b>Amazon Kinesis Firehose API Reference</b>
--   
--   Amazon Kinesis Firehose is a fully-managed service that delivers
--   real-time streaming data to destinations such as Amazon Simple Storage
--   Service (Amazon S3), Amazon Elasticsearch Service (Amazon ES), and
--   Amazon Redshift.
module Network.AWS.Firehose

-- | API version <tt>2015-08-04</tt> of the Amazon Kinesis Firehose SDK
--   configuration.
firehose :: Service

-- | The specified input parameter has an value that is not valid.
_InvalidArgumentException :: AsError a => Getting (First ServiceError) a ServiceError

-- | Another modification has already happened. Fetch <b>VersionId</b>
--   again and use it to update the destination.
_ConcurrentModificationException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The service is unavailable, back off and retry the operation. If you
--   continue to see the exception, throughput limits for the delivery
--   stream may have been exceeded. For more information about limits and
--   how to request an increase, see <a>Amazon Kinesis Firehose Limits</a>
--   .
_ServiceUnavailableException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The specified resource could not be found.
_ResourceNotFoundException :: AsError a => Getting (First ServiceError) a ServiceError

-- | You have already reached the limit for a requested resource.
_LimitExceededException :: AsError a => Getting (First ServiceError) a ServiceError

-- | The resource is already in use and not available for this operation.
_ResourceInUseException :: AsError a => Getting (First ServiceError) a ServiceError
data CompressionFormat
Gzip :: CompressionFormat
Snappy :: CompressionFormat
Uncompressed :: CompressionFormat
Zip :: CompressionFormat
data DeliveryStreamStatus
Active :: DeliveryStreamStatus
Creating :: DeliveryStreamStatus
Deleting :: DeliveryStreamStatus
data ElasticsearchIndexRotationPeriod
NoRotation :: ElasticsearchIndexRotationPeriod
OneDay :: ElasticsearchIndexRotationPeriod
OneHour :: ElasticsearchIndexRotationPeriod
OneMonth :: ElasticsearchIndexRotationPeriod
OneWeek :: ElasticsearchIndexRotationPeriod
data ElasticsearchS3BackupMode
AllDocuments :: ElasticsearchS3BackupMode
FailedDocumentsOnly :: ElasticsearchS3BackupMode
data NoEncryptionConfig
NoEncryption :: NoEncryptionConfig

-- | Describes hints for the buffering to perform before delivering data to
--   the destination. Please note that these options are treated as hints,
--   and therefore Firehose may choose to use different values when it is
--   optimal.
--   
--   <i>See:</i> <a>bufferingHints</a> smart constructor.
data BufferingHints

-- | Creates a value of <a>BufferingHints</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>bhSizeInMBs</a> - Buffer incoming data to the specified size,
--   in MBs, before delivering it to the destination. The default value is
--   5. We recommend setting SizeInMBs to a value greater than the amount
--   of data you typically ingest into the delivery stream in 10 seconds.
--   For example, if you typically ingest data at 1 MB/sec set SizeInMBs to
--   be 10 MB or higher.</li>
--   <li><a>bhIntervalInSeconds</a> - Buffer incoming data for the
--   specified period of time, in seconds, before delivering it to the
--   destination. The default value is 300.</li>
--   </ul>
bufferingHints :: BufferingHints

-- | Buffer incoming data to the specified size, in MBs, before delivering
--   it to the destination. The default value is 5. We recommend setting
--   SizeInMBs to a value greater than the amount of data you typically
--   ingest into the delivery stream in 10 seconds. For example, if you
--   typically ingest data at 1 MB/sec set SizeInMBs to be 10 MB or higher.
bhSizeInMBs :: Lens' BufferingHints (Maybe Natural)

-- | Buffer incoming data for the specified period of time, in seconds,
--   before delivering it to the destination. The default value is 300.
bhIntervalInSeconds :: Lens' BufferingHints (Maybe Natural)

-- | Describes CloudWatch logging options for your delivery stream.
--   
--   <i>See:</i> <a>cloudWatchLoggingOptions</a> smart constructor.
data CloudWatchLoggingOptions

-- | Creates a value of <a>CloudWatchLoggingOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>cwloEnabled</a> - Enables or disables CloudWatch logging.</li>
--   <li><a>cwloLogGroupName</a> - The CloudWatch group name for logging.
--   This value is required if Enabled is true.</li>
--   <li><a>cwloLogStreamName</a> - The CloudWatch log stream name for
--   logging. This value is required if Enabled is true.</li>
--   </ul>
cloudWatchLoggingOptions :: CloudWatchLoggingOptions

-- | Enables or disables CloudWatch logging.
cwloEnabled :: Lens' CloudWatchLoggingOptions (Maybe Bool)

-- | The CloudWatch group name for logging. This value is required if
--   Enabled is true.
cwloLogGroupName :: Lens' CloudWatchLoggingOptions (Maybe Text)

-- | The CloudWatch log stream name for logging. This value is required if
--   Enabled is true.
cwloLogStreamName :: Lens' CloudWatchLoggingOptions (Maybe Text)

-- | Describes a <tt>COPY</tt> command for Amazon Redshift.
--   
--   <i>See:</i> <a>copyCommand</a> smart constructor.
data CopyCommand

-- | Creates a value of <a>CopyCommand</a> with the minimum fields required
--   to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ccCopyOptions</a> - Optional parameters to use with the Amazon
--   Redshift <tt>COPY</tt> command. For more information, see the
--   "Optional Parameters" section of <a>Amazon Redshift COPY command</a> .
--   Some possible examples that would apply to Firehose are as follows.
--   <tt>delimiter '\t' lzop;</tt> - fields are delimited with "t" (TAB
--   character) and compressed using lzop. <tt>delimiter '|</tt> - fields
--   are delimited with "|" (this is the default delimiter). <tt>delimiter
--   '|' escape</tt> - the delimiter should be escaped. <tt>fixedwidth
--   'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'</tt> -
--   fields are fixed width in the source, with each width specified after
--   every column in the table. <tt>JSON 's3://mybucket/jsonpaths.txt'</tt>
--   - data is in JSON format, and the path specified is the format of the
--   data. For more examples, see <a>Amazon Redshift COPY command
--   examples</a> .</li>
--   <li><a>ccDataTableColumns</a> - A comma-separated list of column
--   names.</li>
--   <li><a>ccDataTableName</a> - The name of the target table. The table
--   must already exist in the database.</li>
--   </ul>
copyCommand :: Text -> CopyCommand

-- | Optional parameters to use with the Amazon Redshift <tt>COPY</tt>
--   command. For more information, see the "Optional Parameters" section
--   of <a>Amazon Redshift COPY command</a> . Some possible examples that
--   would apply to Firehose are as follows. <tt>delimiter '\t' lzop;</tt>
--   - fields are delimited with "t" (TAB character) and compressed using
--   lzop. <tt>delimiter '|</tt> - fields are delimited with "|" (this is
--   the default delimiter). <tt>delimiter '|' escape</tt> - the delimiter
--   should be escaped. <tt>fixedwidth
--   'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'</tt> -
--   fields are fixed width in the source, with each width specified after
--   every column in the table. <tt>JSON 's3://mybucket/jsonpaths.txt'</tt>
--   - data is in JSON format, and the path specified is the format of the
--   data. For more examples, see <a>Amazon Redshift COPY command
--   examples</a> .
ccCopyOptions :: Lens' CopyCommand (Maybe Text)

-- | A comma-separated list of column names.
ccDataTableColumns :: Lens' CopyCommand (Maybe Text)

-- | The name of the target table. The table must already exist in the
--   database.
ccDataTableName :: Lens' CopyCommand Text

-- | Contains information about a delivery stream.
--   
--   <i>See:</i> <a>deliveryStreamDescription</a> smart constructor.
data DeliveryStreamDescription

-- | Creates a value of <a>DeliveryStreamDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>dsdCreateTimestamp</a> - The date and time that the delivery
--   stream was created.</li>
--   <li><a>dsdLastUpdateTimestamp</a> - The date and time that the
--   delivery stream was last updated.</li>
--   <li><a>dsdDeliveryStreamName</a> - The name of the delivery
--   stream.</li>
--   <li><a>dsdDeliveryStreamARN</a> - The Amazon Resource Name (ARN) of
--   the delivery stream.</li>
--   <li><a>dsdDeliveryStreamStatus</a> - The status of the delivery
--   stream.</li>
--   <li><a>dsdVersionId</a> - Used when calling the
--   <tt>UpdateDestination</tt> operation. Each time the destination is
--   updated for the delivery stream, the VersionId is changed, and the
--   current VersionId is required when updating the destination. This is
--   so that the service knows it is applying the changes to the correct
--   version of the delivery stream.</li>
--   <li><a>dsdDestinations</a> - The destinations.</li>
--   <li><a>dsdHasMoreDestinations</a> - Indicates whether there are more
--   destinations available to list.</li>
--   </ul>
deliveryStreamDescription :: Text -> Text -> DeliveryStreamStatus -> Text -> Bool -> DeliveryStreamDescription

-- | The date and time that the delivery stream was created.
dsdCreateTimestamp :: Lens' DeliveryStreamDescription (Maybe UTCTime)

-- | The date and time that the delivery stream was last updated.
dsdLastUpdateTimestamp :: Lens' DeliveryStreamDescription (Maybe UTCTime)

-- | The name of the delivery stream.
dsdDeliveryStreamName :: Lens' DeliveryStreamDescription Text

-- | The Amazon Resource Name (ARN) of the delivery stream.
dsdDeliveryStreamARN :: Lens' DeliveryStreamDescription Text

-- | The status of the delivery stream.
dsdDeliveryStreamStatus :: Lens' DeliveryStreamDescription DeliveryStreamStatus

-- | Used when calling the <tt>UpdateDestination</tt> operation. Each time
--   the destination is updated for the delivery stream, the VersionId is
--   changed, and the current VersionId is required when updating the
--   destination. This is so that the service knows it is applying the
--   changes to the correct version of the delivery stream.
dsdVersionId :: Lens' DeliveryStreamDescription Text

-- | The destinations.
dsdDestinations :: Lens' DeliveryStreamDescription [DestinationDescription]

-- | Indicates whether there are more destinations available to list.
dsdHasMoreDestinations :: Lens' DeliveryStreamDescription Bool

-- | Describes the destination for a delivery stream.
--   
--   <i>See:</i> <a>destinationDescription</a> smart constructor.
data DestinationDescription

-- | Creates a value of <a>DestinationDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ddS3DestinationDescription</a> - The Amazon S3
--   destination.</li>
--   <li><a>ddElasticsearchDestinationDescription</a> - The destination in
--   Amazon ES.</li>
--   <li><a>ddRedshiftDestinationDescription</a> - The destination in
--   Amazon Redshift.</li>
--   <li><a>ddDestinationId</a> - The ID of the destination.</li>
--   </ul>
destinationDescription :: Text -> DestinationDescription

-- | The Amazon S3 destination.
ddS3DestinationDescription :: Lens' DestinationDescription (Maybe S3DestinationDescription)

-- | The destination in Amazon ES.
ddElasticsearchDestinationDescription :: Lens' DestinationDescription (Maybe ElasticsearchDestinationDescription)

-- | The destination in Amazon Redshift.
ddRedshiftDestinationDescription :: Lens' DestinationDescription (Maybe RedshiftDestinationDescription)

-- | The ID of the destination.
ddDestinationId :: Lens' DestinationDescription Text

-- | Describes the buffering to perform before delivering data to the
--   Amazon ES destination.
--   
--   <i>See:</i> <a>elasticsearchBufferingHints</a> smart constructor.
data ElasticsearchBufferingHints

-- | Creates a value of <a>ElasticsearchBufferingHints</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ebhSizeInMBs</a> - Buffer incoming data to the specified size,
--   in MBs, before delivering it to the destination. The default value is
--   5. We recommend setting <b>SizeInMBs</b> to a value greater than the
--   amount of data you typically ingest into the delivery stream in 10
--   seconds. For example, if you typically ingest data at 1 MB/sec, set
--   <b>SizeInMBs</b> to be 10 MB or higher.</li>
--   <li><a>ebhIntervalInSeconds</a> - Buffer incoming data for the
--   specified period of time, in seconds, before delivering it to the
--   destination. The default value is 300 (5 minutes).</li>
--   </ul>
elasticsearchBufferingHints :: ElasticsearchBufferingHints

-- | Buffer incoming data to the specified size, in MBs, before delivering
--   it to the destination. The default value is 5. We recommend setting
--   <b>SizeInMBs</b> to a value greater than the amount of data you
--   typically ingest into the delivery stream in 10 seconds. For example,
--   if you typically ingest data at 1 MB/sec, set <b>SizeInMBs</b> to be
--   10 MB or higher.
ebhSizeInMBs :: Lens' ElasticsearchBufferingHints (Maybe Natural)

-- | Buffer incoming data for the specified period of time, in seconds,
--   before delivering it to the destination. The default value is 300 (5
--   minutes).
ebhIntervalInSeconds :: Lens' ElasticsearchBufferingHints (Maybe Natural)

-- | Describes the configuration of a destination in Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchDestinationConfiguration</a> smart
--   constructor.
data ElasticsearchDestinationConfiguration

-- | Creates a value of <a>ElasticsearchDestinationConfiguration</a> with
--   the minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>edcIndexRotationPeriod</a> - The Elasticsearch index rotation
--   period. Index rotation appends a timestamp to the IndexName to
--   facilitate expiration of old data. For more information, see <a>Index
--   Rotation for Amazon Elasticsearch Service Destination</a> . Default
--   value is <tt>OneDay</tt> .</li>
--   <li><a>edcS3BackupMode</a> - Defines how documents should be delivered
--   to Amazon S3. When set to FailedDocumentsOnly, Firehose writes any
--   documents that could not be indexed to the configured Amazon S3
--   destination, with elasticsearch-failed<i> appended to the key prefix.
--   When set to AllDocuments, Firehose delivers all incoming records to
--   Amazon S3, and also writes failed documents with
--   elasticsearch-failed</i> appended to the prefix. For more information,
--   see <a>Amazon S3 Backup for Amazon Elasticsearch Service
--   Destination</a> . Default value is FailedDocumentsOnly.</li>
--   <li><a>edcCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>edcBufferingHints</a> - Buffering options. If no value is
--   specified, <b>ElasticsearchBufferingHints</b> object default values
--   are used.</li>
--   <li><a>edcRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon ES. Default
--   value is 300 (5 minutes).</li>
--   <li><a>edcRoleARN</a> - The ARN of the IAM role to be assumed by
--   Firehose for calling the Amazon ES Configuration API and for indexing
--   documents. For more information, see <a>Amazon S3 Bucket Access</a>
--   .</li>
--   <li><a>edcDomainARN</a> - The ARN of the Amazon ES domain. The IAM
--   role must have permission for <tt>DescribeElasticsearchDomain</tt> ,
--   <tt>DescribeElasticsearchDomains</tt> , and
--   <tt>DescribeElasticsearchDomainConfig</tt> after assuming
--   <b>RoleARN</b> .</li>
--   <li><a>edcIndexName</a> - The Elasticsearch index name.</li>
--   <li><a>edcTypeName</a> - The Elasticsearch type name.</li>
--   <li><a>edcS3Configuration</a> - Undocumented member.</li>
--   </ul>
elasticsearchDestinationConfiguration :: Text -> Text -> Text -> Text -> S3DestinationConfiguration -> ElasticsearchDestinationConfiguration

-- | The Elasticsearch index rotation period. Index rotation appends a
--   timestamp to the IndexName to facilitate expiration of old data. For
--   more information, see <a>Index Rotation for Amazon Elasticsearch
--   Service Destination</a> . Default value is <tt>OneDay</tt> .
edcIndexRotationPeriod :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchIndexRotationPeriod)

-- | Defines how documents should be delivered to Amazon S3. When set to
--   FailedDocumentsOnly, Firehose writes any documents that could not be
--   indexed to the configured Amazon S3 destination, with
--   elasticsearch-failed<i> appended to the key prefix. When set to
--   AllDocuments, Firehose delivers all incoming records to Amazon S3, and
--   also writes failed documents with elasticsearch-failed</i> appended to
--   the prefix. For more information, see <a>Amazon S3 Backup for Amazon
--   Elasticsearch Service Destination</a> . Default value is
--   FailedDocumentsOnly.
edcS3BackupMode :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchS3BackupMode)

-- | Describes CloudWatch logging options for your delivery stream.
edcCloudWatchLoggingOptions :: Lens' ElasticsearchDestinationConfiguration (Maybe CloudWatchLoggingOptions)

-- | Buffering options. If no value is specified,
--   <b>ElasticsearchBufferingHints</b> object default values are used.
edcBufferingHints :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchBufferingHints)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon ES. Default value is 300 (5 minutes).
edcRetryOptions :: Lens' ElasticsearchDestinationConfiguration (Maybe ElasticsearchRetryOptions)

-- | The ARN of the IAM role to be assumed by Firehose for calling the
--   Amazon ES Configuration API and for indexing documents. For more
--   information, see <a>Amazon S3 Bucket Access</a> .
edcRoleARN :: Lens' ElasticsearchDestinationConfiguration Text

-- | The ARN of the Amazon ES domain. The IAM role must have permission for
--   <tt>DescribeElasticsearchDomain</tt> ,
--   <tt>DescribeElasticsearchDomains</tt> , and
--   <tt>DescribeElasticsearchDomainConfig</tt> after assuming
--   <b>RoleARN</b> .
edcDomainARN :: Lens' ElasticsearchDestinationConfiguration Text

-- | The Elasticsearch index name.
edcIndexName :: Lens' ElasticsearchDestinationConfiguration Text

-- | The Elasticsearch type name.
edcTypeName :: Lens' ElasticsearchDestinationConfiguration Text

-- | Undocumented member.
edcS3Configuration :: Lens' ElasticsearchDestinationConfiguration S3DestinationConfiguration

-- | The destination description in Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchDestinationDescription</a> smart
--   constructor.
data ElasticsearchDestinationDescription

-- | Creates a value of <a>ElasticsearchDestinationDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eddIndexRotationPeriod</a> - The Elasticsearch index rotation
--   period</li>
--   <li><a>eddTypeName</a> - The Elasticsearch type name.</li>
--   <li><a>eddS3BackupMode</a> - Amazon S3 backup mode.</li>
--   <li><a>eddDomainARN</a> - The ARN of the Amazon ES domain.</li>
--   <li><a>eddCloudWatchLoggingOptions</a> - CloudWatch logging
--   options.</li>
--   <li><a>eddS3DestinationDescription</a> - Undocumented member.</li>
--   <li><a>eddBufferingHints</a> - Buffering options.</li>
--   <li><a>eddRetryOptions</a> - Elasticsearch retry options.</li>
--   <li><a>eddRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>eddIndexName</a> - The Elasticsearch index name.</li>
--   </ul>
elasticsearchDestinationDescription :: ElasticsearchDestinationDescription

-- | The Elasticsearch index rotation period
eddIndexRotationPeriod :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchIndexRotationPeriod)

-- | The Elasticsearch type name.
eddTypeName :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | Amazon S3 backup mode.
eddS3BackupMode :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchS3BackupMode)

-- | The ARN of the Amazon ES domain.
eddDomainARN :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | CloudWatch logging options.
eddCloudWatchLoggingOptions :: Lens' ElasticsearchDestinationDescription (Maybe CloudWatchLoggingOptions)

-- | Undocumented member.
eddS3DestinationDescription :: Lens' ElasticsearchDestinationDescription (Maybe S3DestinationDescription)

-- | Buffering options.
eddBufferingHints :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchBufferingHints)

-- | Elasticsearch retry options.
eddRetryOptions :: Lens' ElasticsearchDestinationDescription (Maybe ElasticsearchRetryOptions)

-- | The ARN of the AWS credentials.
eddRoleARN :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | The Elasticsearch index name.
eddIndexName :: Lens' ElasticsearchDestinationDescription (Maybe Text)

-- | Describes an update for a destination in Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchDestinationUpdate</a> smart constructor.
data ElasticsearchDestinationUpdate

-- | Creates a value of <a>ElasticsearchDestinationUpdate</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eduIndexRotationPeriod</a> - The Elasticsearch index rotation
--   period. Index rotation appends a timestamp to the IndexName to
--   facilitate the expiration of old data. For more information, see
--   <a>Index Rotation for Amazon Elasticsearch Service Destination</a> .
--   Default value is <tt>OneDay</tt> .</li>
--   <li><a>eduTypeName</a> - The Elasticsearch type name.</li>
--   <li><a>eduDomainARN</a> - The ARN of the Amazon ES domain. The IAM
--   role must have permission for DescribeElasticsearchDomain,
--   DescribeElasticsearchDomains , and DescribeElasticsearchDomainConfig
--   after assuming <b>RoleARN</b> .</li>
--   <li><a>eduCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>eduS3Update</a> - Undocumented member.</li>
--   <li><a>eduBufferingHints</a> - Buffering options. If no value is
--   specified, <b>ElasticsearchBufferingHints</b> object default values
--   are used.</li>
--   <li><a>eduRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon ES. Default
--   value is 300 (5 minutes).</li>
--   <li><a>eduRoleARN</a> - The ARN of the IAM role to be assumed by
--   Firehose for calling the Amazon ES Configuration API and for indexing
--   documents. For more information, see <a>Amazon S3 Bucket Access</a>
--   .</li>
--   <li><a>eduIndexName</a> - The Elasticsearch index name.</li>
--   </ul>
elasticsearchDestinationUpdate :: ElasticsearchDestinationUpdate

-- | The Elasticsearch index rotation period. Index rotation appends a
--   timestamp to the IndexName to facilitate the expiration of old data.
--   For more information, see <a>Index Rotation for Amazon Elasticsearch
--   Service Destination</a> . Default value is <tt>OneDay</tt> .
eduIndexRotationPeriod :: Lens' ElasticsearchDestinationUpdate (Maybe ElasticsearchIndexRotationPeriod)

-- | The Elasticsearch type name.
eduTypeName :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | The ARN of the Amazon ES domain. The IAM role must have permission for
--   DescribeElasticsearchDomain, DescribeElasticsearchDomains , and
--   DescribeElasticsearchDomainConfig after assuming <b>RoleARN</b> .
eduDomainARN :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
eduCloudWatchLoggingOptions :: Lens' ElasticsearchDestinationUpdate (Maybe CloudWatchLoggingOptions)

-- | Undocumented member.
eduS3Update :: Lens' ElasticsearchDestinationUpdate (Maybe S3DestinationUpdate)

-- | Buffering options. If no value is specified,
--   <b>ElasticsearchBufferingHints</b> object default values are used.
eduBufferingHints :: Lens' ElasticsearchDestinationUpdate (Maybe ElasticsearchBufferingHints)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon ES. Default value is 300 (5 minutes).
eduRetryOptions :: Lens' ElasticsearchDestinationUpdate (Maybe ElasticsearchRetryOptions)

-- | The ARN of the IAM role to be assumed by Firehose for calling the
--   Amazon ES Configuration API and for indexing documents. For more
--   information, see <a>Amazon S3 Bucket Access</a> .
eduRoleARN :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | The Elasticsearch index name.
eduIndexName :: Lens' ElasticsearchDestinationUpdate (Maybe Text)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon ES.
--   
--   <i>See:</i> <a>elasticsearchRetryOptions</a> smart constructor.
data ElasticsearchRetryOptions

-- | Creates a value of <a>ElasticsearchRetryOptions</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>eroDurationInSeconds</a> - After an initial failure to deliver
--   to Amazon ES, the total amount of time during which Firehose
--   re-attempts delivery (including the first attempt). After this time
--   has elapsed, the failed documents are written to Amazon S3. Default
--   value is 300 seconds (5 minutes). A value of 0 (zero) results in no
--   retries.</li>
--   </ul>
elasticsearchRetryOptions :: ElasticsearchRetryOptions

-- | After an initial failure to deliver to Amazon ES, the total amount of
--   time during which Firehose re-attempts delivery (including the first
--   attempt). After this time has elapsed, the failed documents are
--   written to Amazon S3. Default value is 300 seconds (5 minutes). A
--   value of 0 (zero) results in no retries.
eroDurationInSeconds :: Lens' ElasticsearchRetryOptions (Maybe Natural)

-- | Describes the encryption for a destination in Amazon S3.
--   
--   <i>See:</i> <a>encryptionConfiguration</a> smart constructor.
data EncryptionConfiguration

-- | Creates a value of <a>EncryptionConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>ecNoEncryptionConfig</a> - Specifically override existing
--   encryption information to ensure no encryption is used.</li>
--   <li><a>ecKMSEncryptionConfig</a> - The encryption key.</li>
--   </ul>
encryptionConfiguration :: EncryptionConfiguration

-- | Specifically override existing encryption information to ensure no
--   encryption is used.
ecNoEncryptionConfig :: Lens' EncryptionConfiguration (Maybe NoEncryptionConfig)

-- | The encryption key.
ecKMSEncryptionConfig :: Lens' EncryptionConfiguration (Maybe KMSEncryptionConfig)

-- | Describes an encryption key for a destination in Amazon S3.
--   
--   <i>See:</i> <a>kmsEncryptionConfig</a> smart constructor.
data KMSEncryptionConfig

-- | Creates a value of <a>KMSEncryptionConfig</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>kecAWSKMSKeyARN</a> - The ARN of the encryption key. Must
--   belong to the same region as the destination Amazon S3 bucket.</li>
--   </ul>
kmsEncryptionConfig :: Text -> KMSEncryptionConfig

-- | The ARN of the encryption key. Must belong to the same region as the
--   destination Amazon S3 bucket.
kecAWSKMSKeyARN :: Lens' KMSEncryptionConfig Text

-- | Contains the result for an individual record from a
--   <tt>PutRecordBatch</tt> request. If the record is successfully added
--   to your delivery stream, it receives a record ID. If the record fails
--   to be added to your delivery stream, the result includes an error code
--   and an error message.
--   
--   <i>See:</i> <a>putRecordBatchResponseEntry</a> smart constructor.
data PutRecordBatchResponseEntry

-- | Creates a value of <a>PutRecordBatchResponseEntry</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>prbreRecordId</a> - The ID of the record.</li>
--   <li><a>prbreErrorCode</a> - The error code for an individual record
--   result.</li>
--   <li><a>prbreErrorMessage</a> - The error message for an individual
--   record result.</li>
--   </ul>
putRecordBatchResponseEntry :: PutRecordBatchResponseEntry

-- | The ID of the record.
prbreRecordId :: Lens' PutRecordBatchResponseEntry (Maybe Text)

-- | The error code for an individual record result.
prbreErrorCode :: Lens' PutRecordBatchResponseEntry (Maybe Text)

-- | The error message for an individual record result.
prbreErrorMessage :: Lens' PutRecordBatchResponseEntry (Maybe Text)

-- | The unit of data in a delivery stream.
--   
--   <i>See:</i> <a>record</a> smart constructor.
data Record

-- | Creates a value of <a>Record</a> with the minimum fields required to
--   make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rData</a> - The data blob, which is base64-encoded when the
--   blob is serialized. The maximum size of the data blob, before
--   base64-encoding, is 1,000 KB.-- <i>Note:</i> This <tt>Lens</tt>
--   automatically encodes and decodes Base64 data. The underlying
--   isomorphism will encode to Base64 representation during serialisation,
--   and decode from Base64 representation during deserialisation. This
--   <tt>Lens</tt> accepts and returns only raw unencoded data.</li>
--   </ul>
record :: ByteString -> Record

-- | The data blob, which is base64-encoded when the blob is serialized.
--   The maximum size of the data blob, before base64-encoding, is 1,000
--   KB.-- <i>Note:</i> This <tt>Lens</tt> automatically encodes and
--   decodes Base64 data. The underlying isomorphism will encode to Base64
--   representation during serialisation, and decode from Base64
--   representation during deserialisation. This <tt>Lens</tt> accepts and
--   returns only raw unencoded data.
rData :: Lens' Record ByteString

-- | Describes the configuration of a destination in Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftDestinationConfiguration</a> smart constructor.
data RedshiftDestinationConfiguration

-- | Creates a value of <a>RedshiftDestinationConfiguration</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rdcCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>rdcRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon Redshift.
--   Default value is 3600 (60 minutes).</li>
--   <li><a>rdcRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>rdcClusterJDBCURL</a> - The database connection string.</li>
--   <li><a>rdcCopyCommand</a> - The <tt>COPY</tt> command.</li>
--   <li><a>rdcUsername</a> - The name of the user.</li>
--   <li><a>rdcPassword</a> - The user password.</li>
--   <li><a>rdcS3Configuration</a> - The S3 configuration for the
--   intermediate location from which Amazon Redshift obtains data.
--   Restrictions are described in the topic for
--   <tt>CreateDeliveryStream</tt> . The compression formats
--   <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationConfiguration.S3Configuration</b> because the
--   Amazon Redshift <tt>COPY</tt> operation that reads from the S3 bucket
--   doesn't support these compression formats.</li>
--   </ul>
redshiftDestinationConfiguration :: Text -> Text -> CopyCommand -> Text -> Text -> S3DestinationConfiguration -> RedshiftDestinationConfiguration

-- | Describes CloudWatch logging options for your delivery stream.
rdcCloudWatchLoggingOptions :: Lens' RedshiftDestinationConfiguration (Maybe CloudWatchLoggingOptions)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift. Default value is 3600 (60
--   minutes).
rdcRetryOptions :: Lens' RedshiftDestinationConfiguration (Maybe RedshiftRetryOptions)

-- | The ARN of the AWS credentials.
rdcRoleARN :: Lens' RedshiftDestinationConfiguration Text

-- | The database connection string.
rdcClusterJDBCURL :: Lens' RedshiftDestinationConfiguration Text

-- | The <tt>COPY</tt> command.
rdcCopyCommand :: Lens' RedshiftDestinationConfiguration CopyCommand

-- | The name of the user.
rdcUsername :: Lens' RedshiftDestinationConfiguration Text

-- | The user password.
rdcPassword :: Lens' RedshiftDestinationConfiguration Text

-- | The S3 configuration for the intermediate location from which Amazon
--   Redshift obtains data. Restrictions are described in the topic for
--   <tt>CreateDeliveryStream</tt> . The compression formats
--   <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationConfiguration.S3Configuration</b> because the
--   Amazon Redshift <tt>COPY</tt> operation that reads from the S3 bucket
--   doesn't support these compression formats.
rdcS3Configuration :: Lens' RedshiftDestinationConfiguration S3DestinationConfiguration

-- | Describes a destination in Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftDestinationDescription</a> smart constructor.
data RedshiftDestinationDescription

-- | Creates a value of <a>RedshiftDestinationDescription</a> with the
--   minimum fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rddCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>rddRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon Redshift.
--   Default value is 3600 (60 minutes).</li>
--   <li><a>rddRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>rddClusterJDBCURL</a> - The database connection string.</li>
--   <li><a>rddCopyCommand</a> - The <tt>COPY</tt> command.</li>
--   <li><a>rddUsername</a> - The name of the user.</li>
--   <li><a>rddS3DestinationDescription</a> - The Amazon S3
--   destination.</li>
--   </ul>
redshiftDestinationDescription :: Text -> Text -> CopyCommand -> Text -> S3DestinationDescription -> RedshiftDestinationDescription

-- | Describes CloudWatch logging options for your delivery stream.
rddCloudWatchLoggingOptions :: Lens' RedshiftDestinationDescription (Maybe CloudWatchLoggingOptions)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift. Default value is 3600 (60
--   minutes).
rddRetryOptions :: Lens' RedshiftDestinationDescription (Maybe RedshiftRetryOptions)

-- | The ARN of the AWS credentials.
rddRoleARN :: Lens' RedshiftDestinationDescription Text

-- | The database connection string.
rddClusterJDBCURL :: Lens' RedshiftDestinationDescription Text

-- | The <tt>COPY</tt> command.
rddCopyCommand :: Lens' RedshiftDestinationDescription CopyCommand

-- | The name of the user.
rddUsername :: Lens' RedshiftDestinationDescription Text

-- | The Amazon S3 destination.
rddS3DestinationDescription :: Lens' RedshiftDestinationDescription S3DestinationDescription

-- | Describes an update for a destination in Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftDestinationUpdate</a> smart constructor.
data RedshiftDestinationUpdate

-- | Creates a value of <a>RedshiftDestinationUpdate</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rduCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>rduUsername</a> - The name of the user.</li>
--   <li><a>rduS3Update</a> - The Amazon S3 destination. The compression
--   formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationUpdate.S3Update</b> because the Amazon Redshift
--   <tt>COPY</tt> operation that reads from the S3 bucket doesn't support
--   these compression formats.</li>
--   <li><a>rduPassword</a> - The user password.</li>
--   <li><a>rduCopyCommand</a> - The <tt>COPY</tt> command.</li>
--   <li><a>rduRetryOptions</a> - Configures retry behavior in the event
--   that Firehose is unable to deliver documents to Amazon Redshift.
--   Default value is 3600 (60 minutes).</li>
--   <li><a>rduClusterJDBCURL</a> - The database connection string.</li>
--   <li><a>rduRoleARN</a> - The ARN of the AWS credentials.</li>
--   </ul>
redshiftDestinationUpdate :: RedshiftDestinationUpdate

-- | Describes CloudWatch logging options for your delivery stream.
rduCloudWatchLoggingOptions :: Lens' RedshiftDestinationUpdate (Maybe CloudWatchLoggingOptions)

-- | The name of the user.
rduUsername :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | The Amazon S3 destination. The compression formats <tt>SNAPPY</tt> or
--   <tt>ZIP</tt> cannot be specified in
--   <b>RedshiftDestinationUpdate.S3Update</b> because the Amazon Redshift
--   <tt>COPY</tt> operation that reads from the S3 bucket doesn't support
--   these compression formats.
rduS3Update :: Lens' RedshiftDestinationUpdate (Maybe S3DestinationUpdate)

-- | The user password.
rduPassword :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | The <tt>COPY</tt> command.
rduCopyCommand :: Lens' RedshiftDestinationUpdate (Maybe CopyCommand)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift. Default value is 3600 (60
--   minutes).
rduRetryOptions :: Lens' RedshiftDestinationUpdate (Maybe RedshiftRetryOptions)

-- | The database connection string.
rduClusterJDBCURL :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | The ARN of the AWS credentials.
rduRoleARN :: Lens' RedshiftDestinationUpdate (Maybe Text)

-- | Configures retry behavior in the event that Firehose is unable to
--   deliver documents to Amazon Redshift.
--   
--   <i>See:</i> <a>redshiftRetryOptions</a> smart constructor.
data RedshiftRetryOptions

-- | Creates a value of <a>RedshiftRetryOptions</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>rroDurationInSeconds</a> - The length of time during which
--   Firehose retries delivery after a failure, starting from the initial
--   request and including the first attempt. The default value is 3600
--   seconds (60 minutes). Firehose does not retry if the value of
--   <tt>DurationInSeconds</tt> is 0 (zero) or if the first delivery
--   attempt takes longer than the current value.</li>
--   </ul>
redshiftRetryOptions :: RedshiftRetryOptions

-- | The length of time during which Firehose retries delivery after a
--   failure, starting from the initial request and including the first
--   attempt. The default value is 3600 seconds (60 minutes). Firehose does
--   not retry if the value of <tt>DurationInSeconds</tt> is 0 (zero) or if
--   the first delivery attempt takes longer than the current value.
rroDurationInSeconds :: Lens' RedshiftRetryOptions (Maybe Natural)

-- | Describes the configuration of a destination in Amazon S3.
--   
--   <i>See:</i> <a>s3DestinationConfiguration</a> smart constructor.
data S3DestinationConfiguration

-- | Creates a value of <a>S3DestinationConfiguration</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sdcPrefix</a> - The "YYYY<i>MM</i>DD<i>HH" time format prefix
--   is automatically used for delivered S3 files. You can specify an extra
--   prefix to be added in front of the time format prefix. Note that if
--   the prefix ends with a slash, it appears as a folder in the S3 bucket.
--   For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .</li>
--   <li><a>sdcCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>sdcEncryptionConfiguration</a> - The encryption configuration.
--   If no value is specified, the default is no encryption.</li>
--   <li><a>sdcCompressionFormat</a> - The compression format. If no value
--   is specified, the default is <tt>UNCOMPRESSED</tt> . The compression
--   formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified for Amazon
--   Redshift destinations because they are not supported by the Amazon
--   Redshift <tt>COPY</tt> operation that reads from the S3 bucket.</li>
--   <li><a>sdcBufferingHints</a> - The buffering option. If no value is
--   specified, <b>BufferingHints</b> object default values are used.</li>
--   <li><a>sdcRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>sdcBucketARN</a> - The ARN of the S3 bucket.</li>
--   </ul>
s3DestinationConfiguration :: Text -> Text -> S3DestinationConfiguration

-- | The "YYYY<i>MM</i>DD<i>HH" time format prefix is automatically used
--   for delivered S3 files. You can specify an extra prefix to be added in
--   front of the time format prefix. Note that if the prefix ends with a
--   slash, it appears as a folder in the S3 bucket. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .
sdcPrefix :: Lens' S3DestinationConfiguration (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
sdcCloudWatchLoggingOptions :: Lens' S3DestinationConfiguration (Maybe CloudWatchLoggingOptions)

-- | The encryption configuration. If no value is specified, the default is
--   no encryption.
sdcEncryptionConfiguration :: Lens' S3DestinationConfiguration (Maybe EncryptionConfiguration)

-- | The compression format. If no value is specified, the default is
--   <tt>UNCOMPRESSED</tt> . The compression formats <tt>SNAPPY</tt> or
--   <tt>ZIP</tt> cannot be specified for Amazon Redshift destinations
--   because they are not supported by the Amazon Redshift <tt>COPY</tt>
--   operation that reads from the S3 bucket.
sdcCompressionFormat :: Lens' S3DestinationConfiguration (Maybe CompressionFormat)

-- | The buffering option. If no value is specified, <b>BufferingHints</b>
--   object default values are used.
sdcBufferingHints :: Lens' S3DestinationConfiguration (Maybe BufferingHints)

-- | The ARN of the AWS credentials.
sdcRoleARN :: Lens' S3DestinationConfiguration Text

-- | The ARN of the S3 bucket.
sdcBucketARN :: Lens' S3DestinationConfiguration Text

-- | Describes a destination in Amazon S3.
--   
--   <i>See:</i> <a>s3DestinationDescription</a> smart constructor.
data S3DestinationDescription

-- | Creates a value of <a>S3DestinationDescription</a> with the minimum
--   fields required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sddPrefix</a> - The "YYYY<i>MM</i>DD<i>HH" time format prefix
--   is automatically used for delivered S3 files. You can specify an extra
--   prefix to be added in front of the time format prefix. Note that if
--   the prefix ends with a slash, it appears as a folder in the S3 bucket.
--   For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .</li>
--   <li><a>sddCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>sddRoleARN</a> - The ARN of the AWS credentials.</li>
--   <li><a>sddBucketARN</a> - The ARN of the S3 bucket.</li>
--   <li><a>sddBufferingHints</a> - The buffering option. If no value is
--   specified, <b>BufferingHints</b> object default values are used.</li>
--   <li><a>sddCompressionFormat</a> - The compression format. If no value
--   is specified, the default is <tt>NOCOMPRESSION</tt> .</li>
--   <li><a>sddEncryptionConfiguration</a> - The encryption configuration.
--   If no value is specified, the default is no encryption.</li>
--   </ul>
s3DestinationDescription :: Text -> Text -> BufferingHints -> CompressionFormat -> EncryptionConfiguration -> S3DestinationDescription

-- | The "YYYY<i>MM</i>DD<i>HH" time format prefix is automatically used
--   for delivered S3 files. You can specify an extra prefix to be added in
--   front of the time format prefix. Note that if the prefix ends with a
--   slash, it appears as a folder in the S3 bucket. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .
sddPrefix :: Lens' S3DestinationDescription (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
sddCloudWatchLoggingOptions :: Lens' S3DestinationDescription (Maybe CloudWatchLoggingOptions)

-- | The ARN of the AWS credentials.
sddRoleARN :: Lens' S3DestinationDescription Text

-- | The ARN of the S3 bucket.
sddBucketARN :: Lens' S3DestinationDescription Text

-- | The buffering option. If no value is specified, <b>BufferingHints</b>
--   object default values are used.
sddBufferingHints :: Lens' S3DestinationDescription BufferingHints

-- | The compression format. If no value is specified, the default is
--   <tt>NOCOMPRESSION</tt> .
sddCompressionFormat :: Lens' S3DestinationDescription CompressionFormat

-- | The encryption configuration. If no value is specified, the default is
--   no encryption.
sddEncryptionConfiguration :: Lens' S3DestinationDescription EncryptionConfiguration

-- | Describes an update for a destination in Amazon S3.
--   
--   <i>See:</i> <a>s3DestinationUpdate</a> smart constructor.
data S3DestinationUpdate

-- | Creates a value of <a>S3DestinationUpdate</a> with the minimum fields
--   required to make a request.
--   
--   Use one of the following lenses to modify other fields as desired:
--   
--   <ul>
--   <li><a>sduPrefix</a> - The "YYYY<i>MM</i>DD<i>HH" time format prefix
--   is automatically used for delivered S3 files. You can specify an extra
--   prefix to be added in front of the time format prefix. Note that if
--   the prefix ends with a slash, it appears as a folder in the S3 bucket.
--   For more information, see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .</li>
--   <li><a>sduCloudWatchLoggingOptions</a> - Describes CloudWatch logging
--   options for your delivery stream.</li>
--   <li><a>sduEncryptionConfiguration</a> - The encryption configuration.
--   If no value is specified, the default is no encryption.</li>
--   <li><a>sduCompressionFormat</a> - The compression format. If no value
--   is specified, the default is <tt>NOCOMPRESSION</tt> . The compression
--   formats <tt>SNAPPY</tt> or <tt>ZIP</tt> cannot be specified for Amazon
--   Redshift destinations because they are not supported by the Amazon
--   Redshift <tt>COPY</tt> operation that reads from the S3 bucket.</li>
--   <li><a>sduBufferingHints</a> - The buffering option. If no value is
--   specified, <b>BufferingHints</b> object default values are used.</li>
--   <li><a>sduBucketARN</a> - The ARN of the S3 bucket.</li>
--   <li><a>sduRoleARN</a> - The ARN of the AWS credentials.</li>
--   </ul>
s3DestinationUpdate :: S3DestinationUpdate

-- | The "YYYY<i>MM</i>DD<i>HH" time format prefix is automatically used
--   for delivered S3 files. You can specify an extra prefix to be added in
--   front of the time format prefix. Note that if the prefix ends with a
--   slash, it appears as a folder in the S3 bucket. For more information,
--   see
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev<i>basic-deliver.html
--   Amazon S3 Object Name Format&gt; in the
--   &lt;http:</i><i>docs.aws.amazon.com</i>firehose<i>latest</i>dev/
--   Amazon Kinesis Firehose Developer Guide&gt; .
sduPrefix :: Lens' S3DestinationUpdate (Maybe Text)

-- | Describes CloudWatch logging options for your delivery stream.
sduCloudWatchLoggingOptions :: Lens' S3DestinationUpdate (Maybe CloudWatchLoggingOptions)

-- | The encryption configuration. If no value is specified, the default is
--   no encryption.
sduEncryptionConfiguration :: Lens' S3DestinationUpdate (Maybe EncryptionConfiguration)

-- | The compression format. If no value is specified, the default is
--   <tt>NOCOMPRESSION</tt> . The compression formats <tt>SNAPPY</tt> or
--   <tt>ZIP</tt> cannot be specified for Amazon Redshift destinations
--   because they are not supported by the Amazon Redshift <tt>COPY</tt>
--   operation that reads from the S3 bucket.
sduCompressionFormat :: Lens' S3DestinationUpdate (Maybe CompressionFormat)

-- | The buffering option. If no value is specified, <b>BufferingHints</b>
--   object default values are used.
sduBufferingHints :: Lens' S3DestinationUpdate (Maybe BufferingHints)

-- | The ARN of the S3 bucket.
sduBucketARN :: Lens' S3DestinationUpdate (Maybe Text)

-- | The ARN of the AWS credentials.
sduRoleARN :: Lens' S3DestinationUpdate (Maybe Text)
