---
title: Getting Started with Datadog
description: Datadog, the leading service for cloud-scale monitoring.
breadcrumbs: Docs > Infrastructure > Datadog Resource Catalog
---

# aws_firehose_delivery_stream{% #aws_firehose_delivery_stream %}

## `account_id`{% #account_id %}

**Type**: `STRING`

## `create_timestamp`{% #create_timestamp %}

**Type**: `TIMESTAMP`**Provider name**: `CreateTimestamp`**Description**: The date and time that the Firehose stream was created.

## `delivery_stream_arn`{% #delivery_stream_arn %}

**Type**: `STRING`**Provider name**: `DeliveryStreamARN`**Description**: The Amazon Resource Name (ARN) of the Firehose stream. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).

## `delivery_stream_encryption_configuration`{% #delivery_stream_encryption_configuration %}

**Type**: `STRUCT`**Provider name**: `DeliveryStreamEncryptionConfiguration`**Description**: Indicates the server-side encryption (SSE) status for the Firehose stream.

- `failure_description`**Type**: `STRUCT`**Provider name**: `FailureDescription`**Description**: Provides details in case one of the following operations fails due to an error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.
  - `details`**Type**: `STRING`**Provider name**: `Details`**Description**: A message providing details about the error that caused the failure.
  - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of error that caused the failure.
- `key_arn`**Type**: `STRING`**Provider name**: `KeyARN`**Description**: If `KeyType` is `CUSTOMER_MANAGED_CMK`, this field contains the ARN of the customer managed CMK. If `KeyType` is `Amazon Web Services_OWNED_CMK`, `DeliveryStreamEncryptionConfiguration` doesn't contain a value for `KeyARN`.
- `key_type`**Type**: `STRING`**Provider name**: `KeyType`**Description**: Indicates the type of customer master key (CMK) that is used for encryption. The default setting is `Amazon Web Services_OWNED_CMK`. For more information about CMKs, see [Customer Master Keys (CMKs)](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys).
- `status`**Type**: `STRING`**Provider name**: `Status`**Description**: This is the server-side encryption (SSE) status for the Firehose stream. For a full description of the different values of this status, see StartDeliveryStreamEncryption and StopDeliveryStreamEncryption. If this status is `ENABLING_FAILED` or `DISABLING_FAILED`, it is the status of the most recent attempt to enable or disable SSE, respectively.

## `delivery_stream_name`{% #delivery_stream_name %}

**Type**: `STRING`**Provider name**: `DeliveryStreamName`**Description**: The name of the Firehose stream.

## `delivery_stream_status`{% #delivery_stream_status %}

**Type**: `STRING`**Provider name**: `DeliveryStreamStatus`**Description**: The status of the Firehose stream. If the status of a Firehose stream is `CREATING_FAILED`, this status doesn't change, and you can't invoke `CreateDeliveryStream` again on it. However, you can invoke the DeleteDeliveryStream operation to delete it.

## `delivery_stream_type`{% #delivery_stream_type %}

**Type**: `STRING`**Provider name**: `DeliveryStreamType`**Description**: The Firehose stream type. This can be one of the following values:

- `DirectPut`: Provider applications access the Firehose stream directly.
- `KinesisStreamAsSource`: The Firehose stream uses a Kinesis data stream as a source.



## `destinations`{% #destinations %}

**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Destinations`**Description**: The destinations.

- `amazon_open_search_serverless_destination_description`**Type**: `STRUCT`**Provider name**: `AmazonOpenSearchServerlessDestinationDescription`**Description**: The destination in the Serverless offering for Amazon OpenSearch Service.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering options.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `collection_endpoint`**Type**: `STRING`**Provider name**: `CollectionEndpoint`**Description**: The endpoint to use when communicating with the collection in the Serverless offering for Amazon OpenSearch Service.
  - `index_name`**Type**: `STRING`**Provider name**: `IndexName`**Description**: The Serverless offering for Amazon OpenSearch Service index name.
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The Serverless offering for Amazon OpenSearch Service retry options.
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: After an initial failure to deliver to the Serverless offering for Amazon OpenSearch Service, the total amount of time during which Firehose retries 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.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials.
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: The Amazon S3 backup mode.
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `vpc_configuration_description`**Type**: `STRUCT`**Provider name**: `VpcConfigurationDescription`
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The ARN of the IAM role that the Firehose stream uses to create endpoints in the destination VPC. You can use your existing Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:
      - `ec2:DescribeVpcs`
      - `ec2:DescribeVpcAttribute`
      - `ec2:DescribeSubnets`
      - `ec2:DescribeSecurityGroups`
      - `ec2:DescribeNetworkInterfaces`
      - `ec2:CreateNetworkInterface`
      - `ec2:CreateNetworkInterfacePermission`
      - `ec2:DeleteNetworkInterface`
If you revoke these permissions after you create the Firehose stream, Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.
    - `security_group_ids`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `SecurityGroupIds`**Description**: The IDs of the security groups that Firehose uses when it creates ENIs in the VPC of the Amazon OpenSearch Service destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups, ensure that they allow outbound HTTPS traffic to the Amazon OpenSearch Service domain's security group. Also ensure that the Amazon OpenSearch Service domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your Firehose stream and the Amazon OpenSearch Service domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules) in the Amazon VPC documentation.
    - `subnet_ids`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `SubnetIds`**Description**: The IDs of the subnets that Firehose uses to create ENIs in the VPC of the Amazon OpenSearch Service destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon OpenSearch Service endpoints. Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs. The number of ENIs that Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Firehose can create up to three ENIs for this Firehose stream for each of the subnets specified here. For more information about ENI quota, see [Network Interfaces ](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)in the Amazon VPC Quotas topic.
    - `vpc_id`**Type**: `STRING`**Provider name**: `VpcId`**Description**: The ID of the Amazon OpenSearch Service destination's VPC.
- `amazonopensearchservice_destination_description`**Type**: `STRUCT`**Provider name**: `AmazonopensearchserviceDestinationDescription`**Description**: The destination in Amazon OpenSearch Service.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering options.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `cluster_endpoint`**Type**: `STRING`**Provider name**: `ClusterEndpoint`**Description**: The endpoint to use when communicating with the cluster. Firehose uses either this ClusterEndpoint or the DomainARN field to send data to Amazon OpenSearch Service.
  - `document_id_options`**Type**: `STRUCT`**Provider name**: `DocumentIdOptions`**Description**: Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.
    - `default_document_id_format`**Type**: `STRING`**Provider name**: `DefaultDocumentIdFormat`**Description**: When the `FIREHOSE_DEFAULT` option is chosen, Firehose generates a unique document ID for each record based on a unique internal identifier. The generated document ID is stable across multiple delivery attempts, which helps prevent the same record from being indexed multiple times with different document IDs. When the `NO_DOCUMENT_ID` option is chosen, Firehose does not include any document IDs in the requests it sends to the Amazon OpenSearch Service. This causes the Amazon OpenSearch Service domain to generate document IDs. In case of multiple delivery attempts, this may cause the same record to be indexed more than once with different document IDs. This option enables write-heavy operations, such as the ingestion of logs and observability data, to consume less resources in the Amazon OpenSearch Service domain, resulting in improved performance.
  - `domain_arn`**Type**: `STRING`**Provider name**: `DomainARN`**Description**: The ARN of the Amazon OpenSearch Service domain.
  - `index_name`**Type**: `STRING`**Provider name**: `IndexName`**Description**: The Amazon OpenSearch Service index name.
  - `index_rotation_period`**Type**: `STRING`**Provider name**: `IndexRotationPeriod`**Description**: The Amazon OpenSearch Service index rotation period
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The Amazon OpenSearch Service retry options.
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Firehose retries 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.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials.
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: The Amazon S3 backup mode.
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `type_name`**Type**: `STRING`**Provider name**: `TypeName`**Description**: The Amazon OpenSearch Service type name. This applies to Elasticsearch 6.x and lower versions. For Elasticsearch 7.x and OpenSearch Service 1.x, there's no value for TypeName.
  - `vpc_configuration_description`**Type**: `STRUCT`**Provider name**: `VpcConfigurationDescription`
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The ARN of the IAM role that the Firehose stream uses to create endpoints in the destination VPC. You can use your existing Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:
      - `ec2:DescribeVpcs`
      - `ec2:DescribeVpcAttribute`
      - `ec2:DescribeSubnets`
      - `ec2:DescribeSecurityGroups`
      - `ec2:DescribeNetworkInterfaces`
      - `ec2:CreateNetworkInterface`
      - `ec2:CreateNetworkInterfacePermission`
      - `ec2:DeleteNetworkInterface`
If you revoke these permissions after you create the Firehose stream, Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.
    - `security_group_ids`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `SecurityGroupIds`**Description**: The IDs of the security groups that Firehose uses when it creates ENIs in the VPC of the Amazon OpenSearch Service destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups, ensure that they allow outbound HTTPS traffic to the Amazon OpenSearch Service domain's security group. Also ensure that the Amazon OpenSearch Service domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your Firehose stream and the Amazon OpenSearch Service domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules) in the Amazon VPC documentation.
    - `subnet_ids`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `SubnetIds`**Description**: The IDs of the subnets that Firehose uses to create ENIs in the VPC of the Amazon OpenSearch Service destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon OpenSearch Service endpoints. Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs. The number of ENIs that Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Firehose can create up to three ENIs for this Firehose stream for each of the subnets specified here. For more information about ENI quota, see [Network Interfaces ](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)in the Amazon VPC Quotas topic.
    - `vpc_id`**Type**: `STRING`**Provider name**: `VpcId`**Description**: The ID of the Amazon OpenSearch Service destination's VPC.
- `destination_id`**Type**: `STRING`**Provider name**: `DestinationId`**Description**: The ID of the destination.
- `elasticsearch_destination_description`**Type**: `STRUCT`**Provider name**: `ElasticsearchDestinationDescription`**Description**: The destination in Amazon OpenSearch Service.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering options.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `cluster_endpoint`**Type**: `STRING`**Provider name**: `ClusterEndpoint`**Description**: The endpoint to use when communicating with the cluster. Firehose uses either this `ClusterEndpoint` or the `DomainARN` field to send data to Amazon OpenSearch Service.
  - `document_id_options`**Type**: `STRUCT`**Provider name**: `DocumentIdOptions`**Description**: Indicates the method for setting up document ID. The supported methods are Firehose generated document ID and OpenSearch Service generated document ID.
    - `default_document_id_format`**Type**: `STRING`**Provider name**: `DefaultDocumentIdFormat`**Description**: When the `FIREHOSE_DEFAULT` option is chosen, Firehose generates a unique document ID for each record based on a unique internal identifier. The generated document ID is stable across multiple delivery attempts, which helps prevent the same record from being indexed multiple times with different document IDs. When the `NO_DOCUMENT_ID` option is chosen, Firehose does not include any document IDs in the requests it sends to the Amazon OpenSearch Service. This causes the Amazon OpenSearch Service domain to generate document IDs. In case of multiple delivery attempts, this may cause the same record to be indexed more than once with different document IDs. This option enables write-heavy operations, such as the ingestion of logs and observability data, to consume less resources in the Amazon OpenSearch Service domain, resulting in improved performance.
  - `domain_arn`**Type**: `STRING`**Provider name**: `DomainARN`**Description**: The ARN of the Amazon OpenSearch Service domain. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html). Firehose uses either `ClusterEndpoint` or `DomainARN` to send data to Amazon OpenSearch Service.
  - `index_name`**Type**: `STRING`**Provider name**: `IndexName`**Description**: The Elasticsearch index name.
  - `index_rotation_period`**Type**: `STRING`**Provider name**: `IndexRotationPeriod`**Description**: The Elasticsearch index rotation period
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`**Description**: The data processing configuration.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The Amazon OpenSearch Service retry options.
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: After an initial failure to deliver to Amazon OpenSearch Service, the total amount of time during which Firehose retries 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.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: The Amazon S3 backup mode.
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`**Description**: The Amazon S3 destination.
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `type_name`**Type**: `STRING`**Provider name**: `TypeName`**Description**: The Elasticsearch type name. This applies to Elasticsearch 6.x and lower versions. For Elasticsearch 7.x and OpenSearch Service 1.x, there's no value for `TypeName`.
  - `vpc_configuration_description`**Type**: `STRUCT`**Provider name**: `VpcConfigurationDescription`**Description**: The details of the VPC of the Amazon OpenSearch or the Amazon OpenSearch Serverless destination.
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The ARN of the IAM role that the Firehose stream uses to create endpoints in the destination VPC. You can use your existing Firehose delivery role or you can specify a new role. In either case, make sure that the role trusts the Firehose service principal and that it grants the following permissions:
      - `ec2:DescribeVpcs`
      - `ec2:DescribeVpcAttribute`
      - `ec2:DescribeSubnets`
      - `ec2:DescribeSecurityGroups`
      - `ec2:DescribeNetworkInterfaces`
      - `ec2:CreateNetworkInterface`
      - `ec2:CreateNetworkInterfacePermission`
      - `ec2:DeleteNetworkInterface`
If you revoke these permissions after you create the Firehose stream, Firehose can't scale out by creating more ENIs when necessary. You might therefore see a degradation in performance.
    - `security_group_ids`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `SecurityGroupIds`**Description**: The IDs of the security groups that Firehose uses when it creates ENIs in the VPC of the Amazon OpenSearch Service destination. You can use the same security group that the Amazon ES domain uses or different ones. If you specify different security groups, ensure that they allow outbound HTTPS traffic to the Amazon OpenSearch Service domain's security group. Also ensure that the Amazon OpenSearch Service domain's security group allows HTTPS traffic from the security groups specified here. If you use the same security group for both your Firehose stream and the Amazon OpenSearch Service domain, make sure the security group inbound rule allows HTTPS traffic. For more information about security group rules, see [Security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#SecurityGroupRules) in the Amazon VPC documentation.
    - `subnet_ids`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `SubnetIds`**Description**: The IDs of the subnets that Firehose uses to create ENIs in the VPC of the Amazon OpenSearch Service destination. Make sure that the routing tables and inbound and outbound rules allow traffic to flow from the subnets whose IDs are specified here to the subnets that have the destination Amazon OpenSearch Service endpoints. Firehose creates at least one ENI in each of the subnets that are specified here. Do not delete or modify these ENIs. The number of ENIs that Firehose creates in the subnets specified here scales up and down automatically based on throughput. To enable Firehose to scale up the number of ENIs to match throughput, ensure that you have sufficient quota. To help you calculate the quota you need, assume that Firehose can create up to three ENIs for this Firehose stream for each of the subnets specified here. For more information about ENI quota, see [Network Interfaces ](https://docs.aws.amazon.com/vpc/latest/userguide/amazon-vpc-limits.html#vpc-limits-enis)in the Amazon VPC Quotas topic.
    - `vpc_id`**Type**: `STRING`**Provider name**: `VpcId`**Description**: The ID of the Amazon OpenSearch Service destination's VPC.
- `extended_s3_destination_description`**Type**: `STRUCT`**Provider name**: `ExtendedS3DestinationDescription`**Description**: The destination in Amazon S3.
  - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
  - `custom_time_zone`**Type**: `STRING`**Provider name**: `CustomTimeZone`**Description**: The time zone you prefer. UTC is the default.
  - `data_format_conversion_configuration`**Type**: `STRUCT`**Provider name**: `DataFormatConversionConfiguration`**Description**: The serializer, deserializer, and schema for converting data from the JSON format to the Parquet or ORC format before writing it to Amazon S3.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Defaults to `true`. Set it to `false` if you want to disable format conversion while preserving the configuration details.
    - `input_format_configuration`**Type**: `STRUCT`**Provider name**: `InputFormatConfiguration`**Description**: Specifies the deserializer that you want Firehose to use to convert the format of your data from JSON. This parameter is required if `Enabled` is set to true.
      - `deserializer`**Type**: `STRUCT`**Provider name**: `Deserializer`**Description**: Specifies which deserializer to use. You can choose either the Apache Hive JSON SerDe or the OpenX JSON SerDe. If both are non-null, the server rejects the request.
        - `hive_json_ser_de`**Type**: `STRUCT`**Provider name**: `HiveJsonSerDe`**Description**: The native Hive / HCatalog JsonSerDe. Used by Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the OpenX SerDe.
          - `timestamp_formats`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `TimestampFormats`**Description**: Indicates how you want Firehose to parse the date and timestamps that may be present in your input data JSON. To specify these format strings, follow the pattern syntax of JodaTime's DateTimeFormat format strings. For more information, see [Class DateTimeFormat](https://www.joda.org/joda-time/apidocs/org/joda/time/format/DateTimeFormat.html). You can also use the special value `millis` to parse timestamps in epoch milliseconds. If you don't specify a format, Firehose uses `java.sql.Timestamp::valueOf` by default.
        - `open_x_json_ser_de`**Type**: `STRUCT`**Provider name**: `OpenXJsonSerDe`**Description**: The OpenX SerDe. Used by Firehose for deserializing data, which means converting it from the JSON format in preparation for serializing it to the Parquet or ORC format. This is one of two deserializers you can choose, depending on which one offers the functionality you need. The other option is the native Hive / HCatalog JsonSerDe.
          - `case_insensitive`**Type**: `BOOLEAN`**Provider name**: `CaseInsensitive`**Description**: When set to `true`, which is the default, Firehose converts JSON keys to lowercase before deserializing them.
          - `column_to_json_key_mappings`**Type**: `MAP_STRING_STRING`**Provider name**: `ColumnToJsonKeyMappings`**Description**: Maps column names to JSON keys that aren't identical to the column names. This is useful when the JSON contains keys that are Hive keywords. For example, `timestamp` is a Hive keyword. If you have a JSON key named `timestamp`, set this parameter to `{"ts": "timestamp"}` to map this key to a column named `ts`.
          - `convert_dots_in_json_keys_to_underscores`**Type**: `BOOLEAN`**Provider name**: `ConvertDotsInJsonKeysToUnderscores`**Description**: When set to `true`, specifies that the names of the keys include dots and that you want Firehose to replace them with underscores. This is useful because Apache Hive does not allow dots in column names. For example, if the JSON contains a key whose name is "a.b", you can define the column name to be "a_b" when using this option. The default is `false`.
    - `output_format_configuration`**Type**: `STRUCT`**Provider name**: `OutputFormatConfiguration`**Description**: Specifies the serializer that you want Firehose to use to convert the format of your data to the Parquet or ORC format. This parameter is required if `Enabled` is set to true.
      - `serializer`**Type**: `STRUCT`**Provider name**: `Serializer`**Description**: Specifies which serializer to use. You can choose either the ORC SerDe or the Parquet SerDe. If both are non-null, the server rejects the request.
        - `orc_ser_de`**Type**: `STRUCT`**Provider name**: `OrcSerDe`**Description**: A serializer to use for converting data to the ORC format before storing it in Amazon S3. For more information, see [Apache ORC](https://orc.apache.org/docs/).
          - `block_size_bytes`**Type**: `INT32`**Provider name**: `BlockSizeBytes`**Description**: The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Firehose uses this value for padding calculations.
          - `bloom_filter_columns`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `BloomFilterColumns`**Description**: The column names for which you want Firehose to create bloom filters. The default is `null`.
          - `bloom_filter_false_positive_probability`**Type**: `DOUBLE`**Provider name**: `BloomFilterFalsePositiveProbability`**Description**: The Bloom filter false positive probability (FPP). The lower the FPP, the bigger the Bloom filter. The default value is 0.05, the minimum is 0, and the maximum is 1.
          - `compression`**Type**: `STRING`**Provider name**: `Compression`**Description**: The compression code to use over data blocks. The default is `SNAPPY`.
          - `dictionary_key_threshold`**Type**: `DOUBLE`**Provider name**: `DictionaryKeyThreshold`**Description**: Represents the fraction of the total number of non-null rows. To turn off dictionary encoding, set this fraction to a number that is less than the number of distinct keys in a dictionary. To always use dictionary encoding, set this threshold to 1.
          - `enable_padding`**Type**: `BOOLEAN`**Provider name**: `EnablePadding`**Description**: Set this to `true` to indicate that you want stripes to be padded to the HDFS block boundaries. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is `false`.
          - `format_version`**Type**: `STRING`**Provider name**: `FormatVersion`**Description**: The version of the file to write. The possible values are `V0_11` and `V0_12`. The default is `V0_12`.
          - `padding_tolerance`**Type**: `DOUBLE`**Provider name**: `PaddingTolerance`**Description**: A number between 0 and 1 that defines the tolerance for block padding as a decimal fraction of stripe size. The default value is 0.05, which means 5 percent of stripe size. For the default values of 64 MiB ORC stripes and 256 MiB HDFS blocks, the default block padding tolerance of 5 percent reserves a maximum of 3.2 MiB for padding within the 256 MiB block. In such a case, if the available size within the block is more than 3.2 MiB, a new, smaller stripe is inserted to fit within that space. This ensures that no stripe crosses block boundaries and causes remote reads within a node-local task. Firehose ignores this parameter when OrcSerDe$EnablePadding is `false`.
          - `row_index_stride`**Type**: `INT32`**Provider name**: `RowIndexStride`**Description**: The number of rows between index entries. The default is 10,000 and the minimum is 1,000.
          - `stripe_size_bytes`**Type**: `INT32`**Provider name**: `StripeSizeBytes`**Description**: The number of bytes in each stripe. The default is 64 MiB and the minimum is 8 MiB.
        - `parquet_ser_de`**Type**: `STRUCT`**Provider name**: `ParquetSerDe`**Description**: A serializer to use for converting data to the Parquet format before storing it in Amazon S3. For more information, see [Apache Parquet](https://parquet.apache.org/docs/contribution-guidelines/).
          - `block_size_bytes`**Type**: `INT32`**Provider name**: `BlockSizeBytes`**Description**: The Hadoop Distributed File System (HDFS) block size. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 256 MiB and the minimum is 64 MiB. Firehose uses this value for padding calculations.
          - `compression`**Type**: `STRING`**Provider name**: `Compression`**Description**: The compression code to use over data blocks. The possible values are `UNCOMPRESSED`, `SNAPPY`, and `GZIP`, with the default being `SNAPPY`. Use `SNAPPY` for higher decompression speed. Use `GZIP` if the compression ratio is more important than speed.
          - `enable_dictionary_compression`**Type**: `BOOLEAN`**Provider name**: `EnableDictionaryCompression`**Description**: Indicates whether to enable dictionary compression.
          - `max_padding_bytes`**Type**: `INT32`**Provider name**: `MaxPaddingBytes`**Description**: The maximum amount of padding to apply. This is useful if you intend to copy the data from Amazon S3 to HDFS before querying. The default is 0.
          - `page_size_bytes`**Type**: `INT32`**Provider name**: `PageSizeBytes`**Description**: The Parquet page size. Column chunks are divided into pages. A page is conceptually an indivisible unit (in terms of compression and encoding). The minimum value is 64 KiB and the default is 1 MiB.
          - `writer_version`**Type**: `STRING`**Provider name**: `WriterVersion`**Description**: Indicates the version of row format to output. The possible values are `V1` and `V2`. The default is `V1`.
    - `schema_configuration`**Type**: `STRUCT`**Provider name**: `SchemaConfiguration`**Description**: Specifies the Amazon Web Services Glue Data Catalog table that contains the column information. This parameter is required if `Enabled` is set to true.
      - `catalog_id`**Type**: `STRING`**Provider name**: `CatalogId`**Description**: The ID of the Amazon Web Services Glue Data Catalog. If you don't supply this, the Amazon Web Services account ID is used by default.
      - `database_name`**Type**: `STRING`**Provider name**: `DatabaseName`**Description**: Specifies the name of the Amazon Web Services Glue database that contains the schema for the output data.If the `SchemaConfiguration` request parameter is used as part of invoking the `CreateDeliveryStream` API, then the `DatabaseName` property is required and its value must be specified.
      - `region`**Type**: `STRING`**Provider name**: `Region`**Description**: If you don't specify an Amazon Web Services Region, the default is the current Region.
      - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The role that Firehose can use to access Amazon Web Services Glue. This role must be in the same account you use for Firehose. Cross-account roles aren't allowed.If the `SchemaConfiguration` request parameter is used as part of invoking the `CreateDeliveryStream` API, then the `RoleARN` property is required and its value must be specified.
      - `table_name`**Type**: `STRING`**Provider name**: `TableName`**Description**: Specifies the Amazon Web Services Glue table that contains the column information that constitutes your data schema.If the `SchemaConfiguration` request parameter is used as part of invoking the `CreateDeliveryStream` API, then the `TableName` property is required and its value must be specified.
      - `version_id`**Type**: `STRING`**Provider name**: `VersionId`**Description**: Specifies the table version for the output data schema. If you don't specify this version ID, or if you set it to `LATEST`, Firehose uses the most recent version. This means that any updates to the table are automatically picked up.
  - `dynamic_partitioning_configuration`**Type**: `STRUCT`**Provider name**: `DynamicPartitioningConfiguration`**Description**: The configuration of the dynamic partitioning mechanism that creates smaller data sets from the streaming data by partitioning it based on partition keys. Currently, dynamic partitioning is only supported for Amazon S3 destinations.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specifies that the dynamic partitioning is enabled for this Firehose stream.
    - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The retry behavior in case Firehose is unable to deliver data to an Amazon S3 prefix.
      - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: The period of time during which Firehose retries to deliver data to the specified destination.
  - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
    - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
      - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
  - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  - `file_extension`**Type**: `STRING`**Provider name**: `FileExtension`**Description**: Specify a file extension. It will override the default file extension
  - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`**Description**: The data processing configuration.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `s3_backup_description`**Type**: `STRUCT`**Provider name**: `S3BackupDescription`**Description**: The configuration for backup in Amazon S3.
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: The Amazon S3 backup mode.
- `http_endpoint_destination_description`**Type**: `STRUCT`**Provider name**: `HttpEndpointDestinationDescription`**Description**: Describes the specified HTTP endpoint destination.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: Describes buffering options that can be applied to the data before it is delivered to the HTTPS endpoint destination. Firehose teats these options as hints, and it might choose to use more optimal values. The `SizeInMBs` and `IntervalInSeconds` parameters are optional. However, if specify a value for one of them, you must also provide a value for the other.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300 (5 minutes).
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MB/sec, the value should be 10 MB or higher.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `endpoint_configuration`**Type**: `STRUCT`**Provider name**: `EndpointConfiguration`**Description**: The configuration of the specified HTTP endpoint destination.
    - `name`**Type**: `STRING`**Provider name**: `Name`**Description**: The name of the HTTP endpoint selected as the destination.
    - `url`**Type**: `STRING`**Provider name**: `Url`**Description**: The URL of the HTTP endpoint selected as the destination.
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `request_configuration`**Type**: `STRUCT`**Provider name**: `RequestConfiguration`**Description**: The configuration of request sent to the HTTP endpoint specified as the destination.
    - `common_attributes`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `CommonAttributes`**Description**: Describes the metadata sent to the HTTP endpoint destination.
      - `attribute_name`**Type**: `STRING`**Provider name**: `AttributeName`**Description**: The name of the HTTP endpoint common attribute.
      - `attribute_value`**Type**: `STRING`**Provider name**: `AttributeValue`**Description**: The value of the HTTP endpoint common attribute.
    - `content_encoding`**Type**: `STRING`**Provider name**: `ContentEncoding`**Description**: Firehose uses the content encoding to compress the body of a request before sending the request to the destination. For more information, see [Content-Encoding](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Encoding) in MDN Web Docs, the official Mozilla documentation.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: Describes the retry behavior in case Firehose is unable to deliver data to the specified HTTP endpoint destination, or if it doesn't receive a valid acknowledgment of receipt from the specified HTTP endpoint destination.
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: The total amount of time that Firehose spends on retries. This duration starts after the initial attempt to send data to the custom destination via HTTPS endpoint fails. It doesn't include the periods during which Firehose waits for acknowledgment from the specified destination after each attempt.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: Firehose uses this IAM role for all the permissions that the delivery stream needs.
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: Describes the S3 bucket backup options for the data that Kinesis Firehose delivers to the HTTP endpoint destination. You can back up all documents (`AllData`) or only the documents that Firehose could not deliver to the specified HTTP endpoint destination (`FailedDataOnly`).
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `secrets_manager_configuration`**Type**: `STRUCT`**Provider name**: `SecretsManagerConfiguration`**Description**: The configuration that defines how you access secrets for HTTP Endpoint destination.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specifies whether you want to use the secrets manager feature. When set as `True` the secrets manager configuration overwrites the existing secrets in the destination configuration. When it's set to `False` Firehose falls back to the credentials in the destination configuration.
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: Specifies the role that Firehose assumes when calling the Secrets Manager API operation. When you provide the role, it overrides any destination specific role defined in the destination configuration. If you do not provide the then we use the destination specific role. This parameter is required for Splunk.
    - `secret_arn`**Type**: `STRING`**Provider name**: `SecretARN`**Description**: The ARN of the secret that stores your credentials. It must be in the same region as the Firehose stream and the role. The secret ARN can reside in a different account than the Firehose stream and role as Firehose supports cross-account secret access. This parameter is required when Enabled is set to `True`.
- `iceberg_destination_description`**Type**: `STRUCT`**Provider name**: `IcebergDestinationDescription`**Description**: Describes a destination in Apache Iceberg Tables.
  - `append_only`**Type**: `BOOLEAN`**Provider name**: `AppendOnly`**Description**: Describes whether all incoming data for this delivery stream will be append only (inserts only and not for updates and deletes) for Iceberg delivery. This feature is only applicable for Apache Iceberg Tables. The default value is false. If you set this value to true, Firehose automatically increases the throughput limit of a stream based on the throttling levels of the stream. If you set this parameter to true for a stream with updates and deletes, you will see out of order delivery.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
  - `catalog_configuration`**Type**: `STRUCT`**Provider name**: `CatalogConfiguration`**Description**: Configuration describing where the destination Iceberg tables are persisted.
    - `catalog_arn`**Type**: `STRING`**Provider name**: `CatalogARN`**Description**: Specifies the Glue catalog ARN identifier of the destination Apache Iceberg Tables. You must specify the ARN in the format `arn:aws:glue:region:account-id:catalog`.
    - `warehouse_location`**Type**: `STRING`**Provider name**: `WarehouseLocation`**Description**: The warehouse location for Apache Iceberg tables. You must configure this when schema evolution and table creation is enabled. Amazon Data Firehose is in preview release and is subject to change.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `destination_table_configuration_list`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `DestinationTableConfigurationList`**Description**: Provides a list of `DestinationTableConfigurations` which Firehose uses to deliver data to Apache Iceberg Tables. Firehose will write data with insert if table specific configuration is not provided here.
    - `destination_database_name`**Type**: `STRING`**Provider name**: `DestinationDatabaseName`**Description**: The name of the Apache Iceberg database.
    - `destination_table_name`**Type**: `STRING`**Provider name**: `DestinationTableName`**Description**: Specifies the name of the Apache Iceberg Table.
    - `partition_spec`**Type**: `STRUCT`**Provider name**: `PartitionSpec`**Description**: The partition spec configuration for a table that is used by automatic table creation. Amazon Data Firehose is in preview release and is subject to change.
      - `identity`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Identity`**Description**: List of identity [transforms](https://iceberg.apache.org/spec/#partition-transforms) that performs an identity transformation. The transform takes the source value, and does not modify it. Result type is the source type. Amazon Data Firehose is in preview release and is subject to change.
        - `source_name`**Type**: `STRING`**Provider name**: `SourceName`**Description**: The column name to be configured in partition spec. Amazon Data Firehose is in preview release and is subject to change.
    - `s3_error_output_prefix`**Type**: `STRING`**Provider name**: `S3ErrorOutputPrefix`**Description**: The table specific S3 error output prefix. All the errors that occurred while delivering to this table will be prefixed with this value in S3 destination.
    - `unique_keys`**Type**: `UNORDERED_LIST_STRING`**Provider name**: `UniqueKeys`**Description**: A list of unique keys for a given Apache Iceberg table. Firehose will use these for running Create, Update, or Delete operations on the given Iceberg table.
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: The period of time during which Firehose retries to deliver data to the specified destination.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the IAM role to be assumed by Firehose for calling Apache Iceberg Tables.
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: Describes how Firehose will backup records. Currently,Firehose only supports `FailedDataOnly`.
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `schema_evolution_configuration`**Type**: `STRUCT`**Provider name**: `SchemaEvolutionConfiguration`**Description**: The description of automatic schema evolution configuration. Amazon Data Firehose is in preview release and is subject to change.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specify whether you want to enable schema evolution. Amazon Data Firehose is in preview release and is subject to change.
  - `table_creation_configuration`**Type**: `STRUCT`**Provider name**: `TableCreationConfiguration`**Description**: The description of table creation configuration. Amazon Data Firehose is in preview release and is subject to change.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specify whether you want to enable automatic table creation. Amazon Data Firehose is in preview release and is subject to change.
- `redshift_destination_description`**Type**: `STRUCT`**Provider name**: `RedshiftDestinationDescription`**Description**: The destination in Amazon Redshift.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `cluster_jdbcurl`**Type**: `STRING`**Provider name**: `ClusterJDBCURL`**Description**: The database connection string.
  - `copy_command`**Type**: `STRUCT`**Provider name**: `CopyCommand`**Description**: The `COPY` command.
    - `copy_options`**Type**: `STRING`**Provider name**: `CopyOptions`**Description**: Optional parameters to use with the Amazon Redshift `COPY` command. For more information, see the "Optional Parameters" section of [Amazon Redshift COPY command](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY.html). Some possible examples that would apply to Firehose are as follows: `delimiter '\t' lzop;` - fields are delimited with "\t" (TAB character) and compressed using lzop. `delimiter '|'` - fields are delimited with "|" (this is the default delimiter). `delimiter '|' escape` - the delimiter should be escaped. `fixedwidth 'venueid:3,venuename:25,venuecity:12,venuestate:2,venueseats:6'` - fields are fixed width in the source, with each width specified after every column in the table. `JSON 's3://mybucket/jsonpaths.txt'` - data is in JSON format, and the path specified is the format of the data. For more examples, see [Amazon Redshift COPY command examples](https://docs.aws.amazon.com/redshift/latest/dg/r_COPY_command_examples.html).
    - `data_table_columns`**Type**: `STRING`**Provider name**: `DataTableColumns`**Description**: A comma-separated list of column names.
    - `data_table_name`**Type**: `STRING`**Provider name**: `DataTableName`**Description**: The name of the target table. The table must already exist in the database.
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`**Description**: The data processing configuration.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The retry behavior in case Firehose is unable to deliver documents to Amazon Redshift. Default value is 3600 (60 minutes).
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: 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 `DurationInSeconds` is 0 (zero) or if the first delivery attempt takes longer than the current value.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `s3_backup_description`**Type**: `STRUCT`**Provider name**: `S3BackupDescription`**Description**: The configuration for backup in Amazon S3.
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: The Amazon S3 backup mode.
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`**Description**: The Amazon S3 destination.
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `secrets_manager_configuration`**Type**: `STRUCT`**Provider name**: `SecretsManagerConfiguration`**Description**: The configuration that defines how you access secrets for Amazon Redshift.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specifies whether you want to use the secrets manager feature. When set as `True` the secrets manager configuration overwrites the existing secrets in the destination configuration. When it's set to `False` Firehose falls back to the credentials in the destination configuration.
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: Specifies the role that Firehose assumes when calling the Secrets Manager API operation. When you provide the role, it overrides any destination specific role defined in the destination configuration. If you do not provide the then we use the destination specific role. This parameter is required for Splunk.
    - `secret_arn`**Type**: `STRING`**Provider name**: `SecretARN`**Description**: The ARN of the secret that stores your credentials. It must be in the same region as the Firehose stream and the role. The secret ARN can reside in a different account than the Firehose stream and role as Firehose supports cross-account secret access. This parameter is required when Enabled is set to `True`.
  - `username`**Type**: `STRING`**Provider name**: `Username`**Description**: The name of the user.
- `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`**Description**: [Deprecated] The destination in Amazon S3.
  - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
  - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
    - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
      - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
  - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
- `snowflake_destination_description`**Type**: `STRUCT`**Provider name**: `SnowflakeDestinationDescription`**Description**: Optional description for the destination
  - `account_url`**Type**: `STRING`**Provider name**: `AccountUrl`**Description**: URL for accessing your Snowflake account. This URL must include your [account identifier](https://docs.snowflake.com/en/user-guide/admin-account-identifier). Note that the protocol (https://) and port number are optional.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: Describes the buffering to perform before delivering data to the Snowflake destination. If you do not specify any value, Firehose uses the default values.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 0.
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 128.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `content_column_name`**Type**: `STRING`**Provider name**: `ContentColumnName`**Description**: The name of the record content column
  - `data_loading_option`**Type**: `STRING`**Provider name**: `DataLoadingOption`**Description**: Choose to load JSON keys mapped to table column names or choose to split the JSON payload where content is mapped to a record content column and source metadata is mapped to a record metadata column.
  - `database`**Type**: `STRING`**Provider name**: `Database`**Description**: All data in Snowflake is maintained in databases.
  - `meta_data_column_name`**Type**: `STRING`**Provider name**: `MetaDataColumnName`**Description**: The name of the record metadata column
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The time period where Firehose will retry sending data to the chosen HTTP endpoint.
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: the time period where Firehose will retry sending data to the chosen HTTP endpoint.
  - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Snowflake role
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: Choose an S3 backup mode
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `schema`**Type**: `STRING`**Provider name**: `Schema`**Description**: Each database consists of one or more schemas, which are logical groupings of database objects, such as tables and views
  - `secrets_manager_configuration`**Type**: `STRUCT`**Provider name**: `SecretsManagerConfiguration`**Description**: The configuration that defines how you access secrets for Snowflake.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specifies whether you want to use the secrets manager feature. When set as `True` the secrets manager configuration overwrites the existing secrets in the destination configuration. When it's set to `False` Firehose falls back to the credentials in the destination configuration.
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: Specifies the role that Firehose assumes when calling the Secrets Manager API operation. When you provide the role, it overrides any destination specific role defined in the destination configuration. If you do not provide the then we use the destination specific role. This parameter is required for Splunk.
    - `secret_arn`**Type**: `STRING`**Provider name**: `SecretARN`**Description**: The ARN of the secret that stores your credentials. It must be in the same region as the Firehose stream and the role. The secret ARN can reside in a different account than the Firehose stream and role as Firehose supports cross-account secret access. This parameter is required when Enabled is set to `True`.
  - `snowflake_role_configuration`**Type**: `STRUCT`**Provider name**: `SnowflakeRoleConfiguration`**Description**: Optionally configure a Snowflake role. Otherwise the default user role will be used.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enable Snowflake role
    - `snowflake_role`**Type**: `STRING`**Provider name**: `SnowflakeRole`**Description**: The Snowflake role you wish to configure
  - `snowflake_vpc_configuration`**Type**: `STRUCT`**Provider name**: `SnowflakeVpcConfiguration`**Description**: The VPCE ID for Firehose to privately connect with Snowflake. The ID format is com.amazonaws.vpce.[region].vpce-svc-<[id]>. For more information, see [Amazon PrivateLink & Snowflake](https://docs.snowflake.com/en/user-guide/admin-security-privatelink)
    - `private_link_vpce_id`**Type**: `STRING`**Provider name**: `PrivateLinkVpceId`**Description**: The VPCE ID for Firehose to privately connect with Snowflake. The ID format is com.amazonaws.vpce.[region].vpce-svc-<[id]>. For more information, see [Amazon PrivateLink & Snowflake](https://docs.snowflake.com/en/user-guide/admin-security-privatelink)
  - `table`**Type**: `STRING`**Provider name**: `Table`**Description**: All data in Snowflake is stored in database tables, logically structured as collections of columns and rows.
  - `user`**Type**: `STRING`**Provider name**: `User`**Description**: User login name for the Snowflake account.
- `splunk_destination_description`**Type**: `STRUCT`**Provider name**: `SplunkDestinationDescription`**Description**: The destination in Splunk.
  - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering options. If no value is specified, the default values for Splunk are used.
    - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 60 (1 minute).
    - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MBs, before delivering it to the destination. The default value is 5.
  - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
    - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
    - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
  - `hec_acknowledgment_timeout_in_seconds`**Type**: `INT32`**Provider name**: `HECAcknowledgmentTimeoutInSeconds`**Description**: The amount of time that Firehose waits to receive an acknowledgment from Splunk after it sends it data. At the end of the timeout period, Firehose either tries to send the data again or considers it an error, based on your retry settings.
  - `hec_endpoint`**Type**: `STRING`**Provider name**: `HECEndpoint`**Description**: The HTTP Event Collector (HEC) endpoint to which Firehose sends your data.
  - `hec_endpoint_type`**Type**: `STRING`**Provider name**: `HECEndpointType`**Description**: This type can be either "Raw" or "Event."
  - `hec_token`**Type**: `STRING`**Provider name**: `HECToken`**Description**: A GUID you obtain from your Splunk cluster when you create a new HEC endpoint.
  - `processing_configuration`**Type**: `STRUCT`**Provider name**: `ProcessingConfiguration`**Description**: The data processing configuration.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables data processing.
    - `processors`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Processors`**Description**: The data processors.
      - `parameters`**Type**: `UNORDERED_LIST_STRUCT`**Provider name**: `Parameters`**Description**: The processor parameters.
        - `parameter_name`**Type**: `STRING`**Provider name**: `ParameterName`**Description**: The name of the parameter. Currently the following default values are supported: 3 for `NumberOfRetries` and 60 for the `BufferIntervalInSeconds`. The `BufferSizeInMBs` ranges between 0.2 MB and up to 3MB. The default buffering hint is 1MB for all destinations, except Splunk. For Splunk, the default buffering hint is 256 KB.
        - `parameter_value`**Type**: `STRING`**Provider name**: `ParameterValue`**Description**: The parameter value.
      - `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of processor.
  - `retry_options`**Type**: `STRUCT`**Provider name**: `RetryOptions`**Description**: The retry behavior in case Firehose is unable to deliver data to Splunk or if it doesn't receive an acknowledgment of receipt from Splunk.
    - `duration_in_seconds`**Type**: `INT32`**Provider name**: `DurationInSeconds`**Description**: The total amount of time that Firehose spends on retries. This duration starts after the initial attempt to send data to Splunk fails. It doesn't include the periods during which Firehose waits for acknowledgment from Splunk after each attempt.
  - `s3_backup_mode`**Type**: `STRING`**Provider name**: `S3BackupMode`**Description**: Defines how documents should be delivered to Amazon S3. When set to `FailedDocumentsOnly`, Firehose writes any data that could not be indexed to the configured Amazon S3 destination. When set to `AllDocuments`, Firehose delivers all incoming records to Amazon S3, and also writes failed documents to Amazon S3. Default value is `FailedDocumentsOnly`.
  - `s3_destination_description`**Type**: `STRUCT`**Provider name**: `S3DestinationDescription`**Description**: The Amazon S3 destination.>
    - `bucket_arn`**Type**: `STRING`**Provider name**: `BucketARN`**Description**: The ARN of the S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
    - `buffering_hints`**Type**: `STRUCT`**Provider name**: `BufferingHints`**Description**: The buffering option. If no value is specified, `BufferingHints` object default values are used.
      - `interval_in_seconds`**Type**: `INT32`**Provider name**: `IntervalInSeconds`**Description**: Buffer incoming data for the specified period of time, in seconds, before delivering it to the destination. The default value is 300. This parameter is optional but if you specify a value for it, you must also specify a value for `SizeInMBs`, and vice versa.
      - `size_in_m_bs`**Type**: `INT32`**Provider name**: `SizeInMBs`**Description**: Buffer incoming data to the specified size, in MiBs, before delivering it to the destination. The default value is 5. This parameter is optional but if you specify a value for it, you must also specify a value for `IntervalInSeconds`, and vice versa. We recommend setting this parameter to a value greater than the amount of data you typically ingest into the Firehose stream in 10 seconds. For example, if you typically ingest data at 1 MiB/sec, the value should be 10 MiB or higher.
    - `cloud_watch_logging_options`**Type**: `STRUCT`**Provider name**: `CloudWatchLoggingOptions`**Description**: The Amazon CloudWatch logging options for your Firehose stream.
      - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Enables or disables CloudWatch logging.
      - `log_group_name`**Type**: `STRING`**Provider name**: `LogGroupName`**Description**: The CloudWatch group name for logging. This value is required if CloudWatch logging is enabled.
      - `log_stream_name`**Type**: `STRING`**Provider name**: `LogStreamName`**Description**: The CloudWatch log stream name for logging. This value is required if CloudWatch logging is enabled.
    - `compression_format`**Type**: `STRING`**Provider name**: `CompressionFormat`**Description**: The compression format. If no value is specified, the default is `UNCOMPRESSED`.
    - `encryption_configuration`**Type**: `STRUCT`**Provider name**: `EncryptionConfiguration`**Description**: The encryption configuration. If no value is specified, the default is no encryption.
      - `kms_encryption_config`**Type**: `STRUCT`**Provider name**: `KMSEncryptionConfig`**Description**: The encryption key.
        - `awskms_key_arn`**Type**: `STRING`**Provider name**: `AWSKMSKeyARN`**Description**: The Amazon Resource Name (ARN) of the encryption key. Must belong to the same Amazon Web Services Region as the destination Amazon S3 bucket. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
      - `no_encryption_config`**Type**: `STRING`**Provider name**: `NoEncryptionConfig`**Description**: Specifically override existing encryption information to ensure that no encryption is used.
    - `error_output_prefix`**Type**: `STRING`**Provider name**: `ErrorOutputPrefix`**Description**: A prefix that Firehose evaluates and adds to failed records before writing them to S3. This prefix appears immediately following the bucket name. For information about how to specify this prefix, see [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `prefix`**Type**: `STRING`**Provider name**: `Prefix`**Description**: The "YYYY/MM/DD/HH" time format prefix is automatically used for delivered Amazon S3 files. You can also specify a custom prefix, as described in [Custom Prefixes for Amazon S3 Objects](https://docs.aws.amazon.com/firehose/latest/dev/s3-prefixes.html).
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: The Amazon Resource Name (ARN) of the Amazon Web Services credentials. For more information, see [Amazon Resource Names (ARNs) and Amazon Web Services Service Namespaces](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html).
  - `secrets_manager_configuration`**Type**: `STRUCT`**Provider name**: `SecretsManagerConfiguration`**Description**: The configuration that defines how you access secrets for Splunk.
    - `enabled`**Type**: `BOOLEAN`**Provider name**: `Enabled`**Description**: Specifies whether you want to use the secrets manager feature. When set as `True` the secrets manager configuration overwrites the existing secrets in the destination configuration. When it's set to `False` Firehose falls back to the credentials in the destination configuration.
    - `role_arn`**Type**: `STRING`**Provider name**: `RoleARN`**Description**: Specifies the role that Firehose assumes when calling the Secrets Manager API operation. When you provide the role, it overrides any destination specific role defined in the destination configuration. If you do not provide the then we use the destination specific role. This parameter is required for Splunk.
    - `secret_arn`**Type**: `STRING`**Provider name**: `SecretARN`**Description**: The ARN of the secret that stores your credentials. It must be in the same region as the Firehose stream and the role. The secret ARN can reside in a different account than the Firehose stream and role as Firehose supports cross-account secret access. This parameter is required when Enabled is set to `True`.

## `failure_description`{% #failure_description %}

**Type**: `STRUCT`**Provider name**: `FailureDescription`**Description**: Provides details in case one of the following operations fails due to an error related to KMS: CreateDeliveryStream, DeleteDeliveryStream, StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.

- `details`**Type**: `STRING`**Provider name**: `Details`**Description**: A message providing details about the error that caused the failure.
- `type`**Type**: `STRING`**Provider name**: `Type`**Description**: The type of error that caused the failure.

## `has_more_destinations`{% #has_more_destinations %}

**Type**: `BOOLEAN`**Provider name**: `HasMoreDestinations`**Description**: Indicates whether there are more destinations available to list.

## `last_update_timestamp`{% #last_update_timestamp %}

**Type**: `TIMESTAMP`**Provider name**: `LastUpdateTimestamp`**Description**: The date and time that the Firehose stream was last updated.

## `tags`{% #tags %}

**Type**: `UNORDERED_LIST_STRING`

## `version_id`{% #version_id %}

**Type**: `STRING`**Provider name**: `VersionId`**Description**: Each time the destination is updated for a Firehose stream, the version ID is changed, and the current version ID 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.
