1. Registry
  2. Packages
  3. AWS
  4. API Docs
  5. msk
  6. Channel
Viewing docs for AWS v7.48.0
published on Tuesday, Sep 22, 2026 by Pulumi
aws logo aws logo
Viewing docs for AWS v7.48.0
published on Tuesday, Sep 22, 2026 by Pulumi

    Manages an Amazon Managed Streaming for Apache Kafka (MSK) Channel.

    With Amazon MSK Data Delivery, a channel delivers Apache Kafka data from an Amazon MSK Provisioned cluster that uses Express brokers directly to Amazon S3, without connectors or additional infrastructure to manage. A channel reads records from a Kafka topic and delivers them to one of two destinations:

    • Amazon S3 general purpose buckets — records are written in their source format (JSON, ByteArray, or String) as objects, for use cases such as log archival, compliance retention, and Kafka replay.
    • Apache Iceberg tables on Amazon S3 Tables — JSON records, validated against an AWS Glue Schema Registry schema, are materialized as Apache Iceberg tables.

    Records that cannot be processed are routed to a required dead-letter queue (DLQ) Amazon S3 bucket. Channels are supported only on Amazon MSK Provisioned clusters that use Express brokers; Standard brokers and Amazon MSK Serverless are not supported.

    Note: A channel does not backfill previously produced data; only data produced after creation is delivered. For the Iceberg destination, a channel creates a new Iceberg table for each configuration.

    Example Usage

    Amazon S3 Destination

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.msk.Channel("example", {
        topicConfiguration: {
            recordConverter: {
                valueConverter: "BYTE_ARRAY",
            },
            topicArn: exampleAwsMskTopic.arn,
        },
        s3Destination: {
            deadLetterQueueS3: {
                bucketArn: dlq.arn,
            },
            storage: {
                bucketArn: exampleAwsS3Bucket.arn,
                compressionType: "NONE",
                storageClass: "STANDARD",
            },
            serviceExecutionRoleArn: exampleAwsIamRole.arn,
        },
        channelName: "example",
        clusterArn: exampleAwsMskCluster.arn,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.msk.Channel("example",
        topic_configuration={
            "record_converter": {
                "value_converter": "BYTE_ARRAY",
            },
            "topic_arn": example_aws_msk_topic["arn"],
        },
        s3_destination={
            "dead_letter_queue_s3": {
                "bucket_arn": dlq["arn"],
            },
            "storage": {
                "bucket_arn": example_aws_s3_bucket["arn"],
                "compression_type": "NONE",
                "storage_class": "STANDARD",
            },
            "service_execution_role_arn": example_aws_iam_role["arn"],
        },
        channel_name="example",
        cluster_arn=example_aws_msk_cluster["arn"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/msk"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := msk.NewChannel(ctx, "example", &msk.ChannelArgs{
    			TopicConfiguration: &msk.ChannelTopicConfigurationArgs{
    				RecordConverter: &msk.ChannelTopicConfigurationRecordConverterArgs{
    					ValueConverter: pulumi.String("BYTE_ARRAY"),
    				},
    				TopicArn: pulumi.Any(exampleAwsMskTopic.Arn),
    			},
    			S3Destination: &msk.ChannelS3DestinationArgs{
    				DeadLetterQueueS3: &msk.ChannelS3DestinationDeadLetterQueueS3Args{
    					BucketArn: pulumi.Any(dlq.Arn),
    				},
    				Storage: &msk.ChannelS3DestinationStorageArgs{
    					BucketArn:       pulumi.Any(exampleAwsS3Bucket.Arn),
    					CompressionType: pulumi.String("NONE"),
    					StorageClass:    pulumi.String("STANDARD"),
    				},
    				ServiceExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    			},
    			ChannelName: pulumi.String("example"),
    			ClusterArn:  pulumi.Any(exampleAwsMskCluster.Arn),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Msk.Channel("example", new()
        {
            TopicConfiguration = new Aws.Msk.Inputs.ChannelTopicConfigurationArgs
            {
                RecordConverter = new Aws.Msk.Inputs.ChannelTopicConfigurationRecordConverterArgs
                {
                    ValueConverter = "BYTE_ARRAY",
                },
                TopicArn = exampleAwsMskTopic.Arn,
            },
            S3Destination = new Aws.Msk.Inputs.ChannelS3DestinationArgs
            {
                DeadLetterQueueS3 = new Aws.Msk.Inputs.ChannelS3DestinationDeadLetterQueueS3Args
                {
                    BucketArn = dlq.Arn,
                },
                Storage = new Aws.Msk.Inputs.ChannelS3DestinationStorageArgs
                {
                    BucketArn = exampleAwsS3Bucket.Arn,
                    CompressionType = "NONE",
                    StorageClass = "STANDARD",
                },
                ServiceExecutionRoleArn = exampleAwsIamRole.Arn,
            },
            ChannelName = "example",
            ClusterArn = exampleAwsMskCluster.Arn,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.msk.Channel;
    import com.pulumi.aws.msk.ChannelArgs;
    import com.pulumi.aws.msk.inputs.ChannelTopicConfigurationArgs;
    import com.pulumi.aws.msk.inputs.ChannelTopicConfigurationRecordConverterArgs;
    import com.pulumi.aws.msk.inputs.ChannelS3DestinationArgs;
    import com.pulumi.aws.msk.inputs.ChannelS3DestinationDeadLetterQueueS3Args;
    import com.pulumi.aws.msk.inputs.ChannelS3DestinationStorageArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Channel("example", ChannelArgs.builder()
                .topicConfiguration(ChannelTopicConfigurationArgs.builder()
                    .recordConverter(ChannelTopicConfigurationRecordConverterArgs.builder()
                        .valueConverter("BYTE_ARRAY")
                        .build())
                    .topicArn(exampleAwsMskTopic.arn())
                    .build())
                .s3Destination(ChannelS3DestinationArgs.builder()
                    .deadLetterQueueS3(ChannelS3DestinationDeadLetterQueueS3Args.builder()
                        .bucketArn(dlq.arn())
                        .build())
                    .storage(ChannelS3DestinationStorageArgs.builder()
                        .bucketArn(exampleAwsS3Bucket.arn())
                        .compressionType("NONE")
                        .storageClass("STANDARD")
                        .build())
                    .serviceExecutionRoleArn(exampleAwsIamRole.arn())
                    .build())
                .channelName("example")
                .clusterArn(exampleAwsMskCluster.arn())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:msk:Channel
        properties:
          topicConfiguration:
            recordConverter:
              valueConverter: BYTE_ARRAY
            topicArn: ${exampleAwsMskTopic.arn}
          s3Destination:
            deadLetterQueueS3:
              bucketArn: ${dlq.arn}
            storage:
              bucketArn: ${exampleAwsS3Bucket.arn}
              compressionType: NONE
              storageClass: STANDARD
            serviceExecutionRoleArn: ${exampleAwsIamRole.arn}
          channelName: example
          clusterArn: ${exampleAwsMskCluster.arn}
    
    pulumi {
      required_providers {
        aws = {
          source = "pulumi/aws"
        }
      }
    }
    
    resource "aws_msk_channel" "example" {
      topic_configuration = {
        record_converter = {
          value_converter = "BYTE_ARRAY"
        }
        topic_arn = exampleAwsMskTopic.arn
      }
      s3_destination = {
        dead_letter_queue_s3 = {
          bucket_arn = dlq.arn
        }
        storage = {
          bucket_arn       = exampleAwsS3Bucket.arn
          compression_type = "NONE"
          storage_class    = "STANDARD"
        }
        service_execution_role_arn = exampleAwsIamRole.arn
      }
      channel_name = "example"
      cluster_arn  = exampleAwsMskCluster.arn
    }
    

    Apache Iceberg Destination

    import * as pulumi from "@pulumi/pulumi";
    import * as aws from "@pulumi/aws";
    
    const example = new aws.msk.Channel("example", {
        topicConfiguration: {
            recordConverter: {
                valueConverter: "JSON",
            },
            recordSchema: {
                gsrArn: exampleAwsGlueSchema.arn,
            },
            topicArn: exampleAwsMskTopic.arn,
        },
        icebergDestination: {
            catalog: {
                warehouseLocation: exampleAwsS3tablesTableBucket.arn,
            },
            deadLetterQueueS3: {
                bucketArn: dlq.arn,
            },
            destinationTable: {
                partitionSpec: {
                    sources: [{
                        sourceName: "event_time",
                    }],
                    partitionStrategy: "TIME_HOUR",
                },
                destinationDatabaseName: "example_namespace",
                destinationTableName: "example_table",
            },
            schemaEvolution: {
                enableSchemaEvolution: false,
            },
            tableCreation: {
                enableTableCreation: true,
            },
            appendOnly: true,
            serviceExecutionRoleArn: exampleAwsIamRole.arn,
        },
        channelName: "example",
        clusterArn: exampleAwsMskCluster.arn,
    });
    
    import pulumi
    import pulumi_aws as aws
    
    example = aws.msk.Channel("example",
        topic_configuration={
            "record_converter": {
                "value_converter": "JSON",
            },
            "record_schema": {
                "gsr_arn": example_aws_glue_schema["arn"],
            },
            "topic_arn": example_aws_msk_topic["arn"],
        },
        iceberg_destination={
            "catalog": {
                "warehouse_location": example_aws_s3tables_table_bucket["arn"],
            },
            "dead_letter_queue_s3": {
                "bucket_arn": dlq["arn"],
            },
            "destination_table": {
                "partition_spec": {
                    "sources": [{
                        "source_name": "event_time",
                    }],
                    "partition_strategy": "TIME_HOUR",
                },
                "destination_database_name": "example_namespace",
                "destination_table_name": "example_table",
            },
            "schema_evolution": {
                "enable_schema_evolution": False,
            },
            "table_creation": {
                "enable_table_creation": True,
            },
            "append_only": True,
            "service_execution_role_arn": example_aws_iam_role["arn"],
        },
        channel_name="example",
        cluster_arn=example_aws_msk_cluster["arn"])
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/msk"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		_, err := msk.NewChannel(ctx, "example", &msk.ChannelArgs{
    			TopicConfiguration: &msk.ChannelTopicConfigurationArgs{
    				RecordConverter: &msk.ChannelTopicConfigurationRecordConverterArgs{
    					ValueConverter: pulumi.String("JSON"),
    				},
    				RecordSchema: &msk.ChannelTopicConfigurationRecordSchemaArgs{
    					GsrArn: pulumi.Any(exampleAwsGlueSchema.Arn),
    				},
    				TopicArn: pulumi.Any(exampleAwsMskTopic.Arn),
    			},
    			IcebergDestination: &msk.ChannelIcebergDestinationArgs{
    				Catalog: &msk.ChannelIcebergDestinationCatalogArgs{
    					WarehouseLocation: pulumi.Any(exampleAwsS3tablesTableBucket.Arn),
    				},
    				DeadLetterQueueS3: &msk.ChannelIcebergDestinationDeadLetterQueueS3Args{
    					BucketArn: pulumi.Any(dlq.Arn),
    				},
    				DestinationTable: &msk.ChannelIcebergDestinationDestinationTableArgs{
    					PartitionSpec: &msk.ChannelIcebergDestinationDestinationTablePartitionSpecArgs{
    						Sources: msk.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArray{
    							&msk.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs{
    								SourceName: pulumi.String("event_time"),
    							},
    						},
    						PartitionStrategy: pulumi.String("TIME_HOUR"),
    					},
    					DestinationDatabaseName: pulumi.String("example_namespace"),
    					DestinationTableName:    pulumi.String("example_table"),
    				},
    				SchemaEvolution: &msk.ChannelIcebergDestinationSchemaEvolutionArgs{
    					EnableSchemaEvolution: pulumi.Bool(false),
    				},
    				TableCreation: &msk.ChannelIcebergDestinationTableCreationArgs{
    					EnableTableCreation: pulumi.Bool(true),
    				},
    				AppendOnly:              pulumi.Bool(true),
    				ServiceExecutionRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
    			},
    			ChannelName: pulumi.String("example"),
    			ClusterArn:  pulumi.Any(exampleAwsMskCluster.Arn),
    		})
    		if err != nil {
    			return err
    		}
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Aws = Pulumi.Aws;
    
    return await Deployment.RunAsync(() => 
    {
        var example = new Aws.Msk.Channel("example", new()
        {
            TopicConfiguration = new Aws.Msk.Inputs.ChannelTopicConfigurationArgs
            {
                RecordConverter = new Aws.Msk.Inputs.ChannelTopicConfigurationRecordConverterArgs
                {
                    ValueConverter = "JSON",
                },
                RecordSchema = new Aws.Msk.Inputs.ChannelTopicConfigurationRecordSchemaArgs
                {
                    GsrArn = exampleAwsGlueSchema.Arn,
                },
                TopicArn = exampleAwsMskTopic.Arn,
            },
            IcebergDestination = new Aws.Msk.Inputs.ChannelIcebergDestinationArgs
            {
                Catalog = new Aws.Msk.Inputs.ChannelIcebergDestinationCatalogArgs
                {
                    WarehouseLocation = exampleAwsS3tablesTableBucket.Arn,
                },
                DeadLetterQueueS3 = new Aws.Msk.Inputs.ChannelIcebergDestinationDeadLetterQueueS3Args
                {
                    BucketArn = dlq.Arn,
                },
                DestinationTable = new Aws.Msk.Inputs.ChannelIcebergDestinationDestinationTableArgs
                {
                    PartitionSpec = new Aws.Msk.Inputs.ChannelIcebergDestinationDestinationTablePartitionSpecArgs
                    {
                        Sources = new[]
                        {
                            new Aws.Msk.Inputs.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs
                            {
                                SourceName = "event_time",
                            },
                        },
                        PartitionStrategy = "TIME_HOUR",
                    },
                    DestinationDatabaseName = "example_namespace",
                    DestinationTableName = "example_table",
                },
                SchemaEvolution = new Aws.Msk.Inputs.ChannelIcebergDestinationSchemaEvolutionArgs
                {
                    EnableSchemaEvolution = false,
                },
                TableCreation = new Aws.Msk.Inputs.ChannelIcebergDestinationTableCreationArgs
                {
                    EnableTableCreation = true,
                },
                AppendOnly = true,
                ServiceExecutionRoleArn = exampleAwsIamRole.Arn,
            },
            ChannelName = "example",
            ClusterArn = exampleAwsMskCluster.Arn,
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.aws.msk.Channel;
    import com.pulumi.aws.msk.ChannelArgs;
    import com.pulumi.aws.msk.inputs.ChannelTopicConfigurationArgs;
    import com.pulumi.aws.msk.inputs.ChannelTopicConfigurationRecordConverterArgs;
    import com.pulumi.aws.msk.inputs.ChannelTopicConfigurationRecordSchemaArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationCatalogArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationDeadLetterQueueS3Args;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationDestinationTableArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationDestinationTablePartitionSpecArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationSchemaEvolutionArgs;
    import com.pulumi.aws.msk.inputs.ChannelIcebergDestinationTableCreationArgs;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Map;
    import java.io.File;
    import java.nio.file.Files;
    import java.nio.file.Paths;
    
    public class App {
        public static void main(String[] args) {
            Pulumi.run(App::stack);
        }
    
        public static void stack(Context ctx) {
            var example = new Channel("example", ChannelArgs.builder()
                .topicConfiguration(ChannelTopicConfigurationArgs.builder()
                    .recordConverter(ChannelTopicConfigurationRecordConverterArgs.builder()
                        .valueConverter("JSON")
                        .build())
                    .recordSchema(ChannelTopicConfigurationRecordSchemaArgs.builder()
                        .gsrArn(exampleAwsGlueSchema.arn())
                        .build())
                    .topicArn(exampleAwsMskTopic.arn())
                    .build())
                .icebergDestination(ChannelIcebergDestinationArgs.builder()
                    .catalog(ChannelIcebergDestinationCatalogArgs.builder()
                        .warehouseLocation(exampleAwsS3tablesTableBucket.arn())
                        .build())
                    .deadLetterQueueS3(ChannelIcebergDestinationDeadLetterQueueS3Args.builder()
                        .bucketArn(dlq.arn())
                        .build())
                    .destinationTable(ChannelIcebergDestinationDestinationTableArgs.builder()
                        .partitionSpec(ChannelIcebergDestinationDestinationTablePartitionSpecArgs.builder()
                            .sources(ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs.builder()
                                .sourceName("event_time")
                                .build())
                            .partitionStrategy("TIME_HOUR")
                            .build())
                        .destinationDatabaseName("example_namespace")
                        .destinationTableName("example_table")
                        .build())
                    .schemaEvolution(ChannelIcebergDestinationSchemaEvolutionArgs.builder()
                        .enableSchemaEvolution(false)
                        .build())
                    .tableCreation(ChannelIcebergDestinationTableCreationArgs.builder()
                        .enableTableCreation(true)
                        .build())
                    .appendOnly(true)
                    .serviceExecutionRoleArn(exampleAwsIamRole.arn())
                    .build())
                .channelName("example")
                .clusterArn(exampleAwsMskCluster.arn())
                .build());
    
        }
    }
    
    resources:
      example:
        type: aws:msk:Channel
        properties:
          topicConfiguration:
            recordConverter:
              valueConverter: JSON
            recordSchema:
              gsrArn: ${exampleAwsGlueSchema.arn}
            topicArn: ${exampleAwsMskTopic.arn}
          icebergDestination:
            catalog:
              warehouseLocation: ${exampleAwsS3tablesTableBucket.arn}
            deadLetterQueueS3:
              bucketArn: ${dlq.arn}
            destinationTable:
              partitionSpec:
                sources:
                  - sourceName: event_time
                partitionStrategy: TIME_HOUR
              destinationDatabaseName: example_namespace
              destinationTableName: example_table
            schemaEvolution:
              enableSchemaEvolution: false
            tableCreation:
              enableTableCreation: true
            appendOnly: true
            serviceExecutionRoleArn: ${exampleAwsIamRole.arn}
          channelName: example
          clusterArn: ${exampleAwsMskCluster.arn}
    
    pulumi {
      required_providers {
        aws = {
          source = "pulumi/aws"
        }
      }
    }
    
    resource "aws_msk_channel" "example" {
      topic_configuration = {
        record_converter = {
          value_converter = "JSON"
        }
        record_schema = {
          gsr_arn = exampleAwsGlueSchema.arn
        }
        topic_arn = exampleAwsMskTopic.arn
      }
      iceberg_destination = {
        catalog = {
          warehouse_location = exampleAwsS3tablesTableBucket.arn
        }
        dead_letter_queue_s3 = {
          bucket_arn = dlq.arn
        }
        destination_table = {
          partition_spec = {
            sources = [{
              "sourceName" = "event_time"
            }]
            partition_strategy = "TIME_HOUR"
          }
          destination_database_name = "example_namespace"
          destination_table_name    = "example_table"
        }
        schema_evolution = {
          enable_schema_evolution = false
        }
        table_creation = {
          enable_table_creation = true
        }
        append_only                = true
        service_execution_role_arn = exampleAwsIamRole.arn
      }
      channel_name = "example"
      cluster_arn  = exampleAwsMskCluster.arn
    }
    

    Create Channel Resource

    Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.

    Constructor syntax

    new Channel(name: string, args: ChannelArgs, opts?: CustomResourceOptions);
    @overload
    def Channel(resource_name: str,
                args: ChannelArgs,
                opts: Optional[ResourceOptions] = None)
    
    @overload
    def Channel(resource_name: str,
                opts: Optional[ResourceOptions] = None,
                channel_name: Optional[str] = None,
                cluster_arn: Optional[str] = None,
                topic_configuration: Optional[ChannelTopicConfigurationArgs] = None,
                encryption_configuration: Optional[ChannelEncryptionConfigurationArgs] = None,
                iceberg_destination: Optional[ChannelIcebergDestinationArgs] = None,
                logging_info: Optional[ChannelLoggingInfoArgs] = None,
                region: Optional[str] = None,
                s3_destination: Optional[ChannelS3DestinationArgs] = None,
                tags: Optional[Mapping[str, str]] = None,
                timeouts: Optional[ChannelTimeoutsArgs] = None)
    func NewChannel(ctx *Context, name string, args ChannelArgs, opts ...ResourceOption) (*Channel, error)
    public Channel(string name, ChannelArgs args, CustomResourceOptions? opts = null)
    public Channel(String name, ChannelArgs args)
    public Channel(String name, ChannelArgs args, CustomResourceOptions options)
    
    type: aws:msk:Channel
    properties: # The arguments to resource properties.
    options: # Bag of options to control resource's behavior.
    
    
    resource "aws_msk_channel" "name" {
        # resource properties
    }

    Parameters

    name string
    The unique name of the resource.
    args ChannelArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    resource_name str
    The unique name of the resource.
    args ChannelArgs
    The arguments to resource properties.
    opts ResourceOptions
    Bag of options to control resource's behavior.
    ctx Context
    Context object for the current deployment.
    name string
    The unique name of the resource.
    args ChannelArgs
    The arguments to resource properties.
    opts ResourceOption
    Bag of options to control resource's behavior.
    name string
    The unique name of the resource.
    args ChannelArgs
    The arguments to resource properties.
    opts CustomResourceOptions
    Bag of options to control resource's behavior.
    name String
    The unique name of the resource.
    args ChannelArgs
    The arguments to resource properties.
    options CustomResourceOptions
    Bag of options to control resource's behavior.

    Constructor example

    The following reference example uses placeholder values for all input properties.

    var examplechannelResourceResourceFromMskchannel = new Aws.Msk.Channel("examplechannelResourceResourceFromMskchannel", new()
    {
        ChannelName = "string",
        ClusterArn = "string",
        TopicConfiguration = new Aws.Msk.Inputs.ChannelTopicConfigurationArgs
        {
            RecordConverter = new Aws.Msk.Inputs.ChannelTopicConfigurationRecordConverterArgs
            {
                ValueConverter = "string",
            },
            TopicArn = "string",
            RecordSchema = new Aws.Msk.Inputs.ChannelTopicConfigurationRecordSchemaArgs
            {
                GsrArn = "string",
            },
        },
        EncryptionConfiguration = new Aws.Msk.Inputs.ChannelEncryptionConfigurationArgs
        {
            KmsKeyArn = "string",
        },
        IcebergDestination = new Aws.Msk.Inputs.ChannelIcebergDestinationArgs
        {
            AppendOnly = false,
            DeadLetterQueueS3 = new Aws.Msk.Inputs.ChannelIcebergDestinationDeadLetterQueueS3Args
            {
                BucketArn = "string",
                ErrorOutputPrefix = "string",
                ExpectedBucketOwner = "string",
            },
            DestinationTable = new Aws.Msk.Inputs.ChannelIcebergDestinationDestinationTableArgs
            {
                DestinationDatabaseName = "string",
                DestinationTableName = "string",
                PartitionSpec = new Aws.Msk.Inputs.ChannelIcebergDestinationDestinationTablePartitionSpecArgs
                {
                    PartitionStrategy = "string",
                    Sources = new[]
                    {
                        new Aws.Msk.Inputs.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs
                        {
                            SourceName = "string",
                        },
                    },
                },
            },
            SchemaEvolution = new Aws.Msk.Inputs.ChannelIcebergDestinationSchemaEvolutionArgs
            {
                EnableSchemaEvolution = false,
            },
            ServiceExecutionRoleArn = "string",
            TableCreation = new Aws.Msk.Inputs.ChannelIcebergDestinationTableCreationArgs
            {
                EnableTableCreation = false,
            },
            Catalog = new Aws.Msk.Inputs.ChannelIcebergDestinationCatalogArgs
            {
                CatalogArn = "string",
                WarehouseLocation = "string",
            },
            CompressionType = "string",
            DataFreshnessInSeconds = 0,
        },
        LoggingInfo = new Aws.Msk.Inputs.ChannelLoggingInfoArgs
        {
            CloudwatchLogs = new Aws.Msk.Inputs.ChannelLoggingInfoCloudwatchLogsArgs
            {
                Enabled = false,
                LogGroup = "string",
            },
            Firehose = new Aws.Msk.Inputs.ChannelLoggingInfoFirehoseArgs
            {
                Enabled = false,
                DeliveryStream = "string",
            },
            S3 = new Aws.Msk.Inputs.ChannelLoggingInfoS3Args
            {
                Enabled = false,
                Bucket = "string",
                Prefix = "string",
            },
        },
        Region = "string",
        S3Destination = new Aws.Msk.Inputs.ChannelS3DestinationArgs
        {
            DeadLetterQueueS3 = new Aws.Msk.Inputs.ChannelS3DestinationDeadLetterQueueS3Args
            {
                BucketArn = "string",
                ErrorOutputPrefix = "string",
                ExpectedBucketOwner = "string",
            },
            ServiceExecutionRoleArn = "string",
            Storage = new Aws.Msk.Inputs.ChannelS3DestinationStorageArgs
            {
                BucketArn = "string",
                CompressionType = "string",
                StorageClass = "string",
                ExpectedBucketOwner = "string",
                OutputKeyTemplate = "string",
                OutputPrefix = "string",
            },
            DataFreshnessInSeconds = 0,
        },
        Tags = 
        {
            { "string", "string" },
        },
        Timeouts = new Aws.Msk.Inputs.ChannelTimeoutsArgs
        {
            Create = "string",
            Delete = "string",
            Update = "string",
        },
    });
    
    example, err := msk.NewChannel(ctx, "examplechannelResourceResourceFromMskchannel", &msk.ChannelArgs{
    	ChannelName: pulumi.String("string"),
    	ClusterArn:  pulumi.String("string"),
    	TopicConfiguration: &msk.ChannelTopicConfigurationArgs{
    		RecordConverter: &msk.ChannelTopicConfigurationRecordConverterArgs{
    			ValueConverter: pulumi.String("string"),
    		},
    		TopicArn: pulumi.String("string"),
    		RecordSchema: &msk.ChannelTopicConfigurationRecordSchemaArgs{
    			GsrArn: pulumi.String("string"),
    		},
    	},
    	EncryptionConfiguration: &msk.ChannelEncryptionConfigurationArgs{
    		KmsKeyArn: pulumi.String("string"),
    	},
    	IcebergDestination: &msk.ChannelIcebergDestinationArgs{
    		AppendOnly: pulumi.Bool(false),
    		DeadLetterQueueS3: &msk.ChannelIcebergDestinationDeadLetterQueueS3Args{
    			BucketArn:           pulumi.String("string"),
    			ErrorOutputPrefix:   pulumi.String("string"),
    			ExpectedBucketOwner: pulumi.String("string"),
    		},
    		DestinationTable: &msk.ChannelIcebergDestinationDestinationTableArgs{
    			DestinationDatabaseName: pulumi.String("string"),
    			DestinationTableName:    pulumi.String("string"),
    			PartitionSpec: &msk.ChannelIcebergDestinationDestinationTablePartitionSpecArgs{
    				PartitionStrategy: pulumi.String("string"),
    				Sources: msk.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArray{
    					&msk.ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs{
    						SourceName: pulumi.String("string"),
    					},
    				},
    			},
    		},
    		SchemaEvolution: &msk.ChannelIcebergDestinationSchemaEvolutionArgs{
    			EnableSchemaEvolution: pulumi.Bool(false),
    		},
    		ServiceExecutionRoleArn: pulumi.String("string"),
    		TableCreation: &msk.ChannelIcebergDestinationTableCreationArgs{
    			EnableTableCreation: pulumi.Bool(false),
    		},
    		Catalog: &msk.ChannelIcebergDestinationCatalogArgs{
    			CatalogArn:        pulumi.String("string"),
    			WarehouseLocation: pulumi.String("string"),
    		},
    		CompressionType:        pulumi.String("string"),
    		DataFreshnessInSeconds: pulumi.Int(0),
    	},
    	LoggingInfo: &msk.ChannelLoggingInfoArgs{
    		CloudwatchLogs: &msk.ChannelLoggingInfoCloudwatchLogsArgs{
    			Enabled:  pulumi.Bool(false),
    			LogGroup: pulumi.String("string"),
    		},
    		Firehose: &msk.ChannelLoggingInfoFirehoseArgs{
    			Enabled:        pulumi.Bool(false),
    			DeliveryStream: pulumi.String("string"),
    		},
    		S3: &msk.ChannelLoggingInfoS3Args{
    			Enabled: pulumi.Bool(false),
    			Bucket:  pulumi.String("string"),
    			Prefix:  pulumi.String("string"),
    		},
    	},
    	Region: pulumi.String("string"),
    	S3Destination: &msk.ChannelS3DestinationArgs{
    		DeadLetterQueueS3: &msk.ChannelS3DestinationDeadLetterQueueS3Args{
    			BucketArn:           pulumi.String("string"),
    			ErrorOutputPrefix:   pulumi.String("string"),
    			ExpectedBucketOwner: pulumi.String("string"),
    		},
    		ServiceExecutionRoleArn: pulumi.String("string"),
    		Storage: &msk.ChannelS3DestinationStorageArgs{
    			BucketArn:           pulumi.String("string"),
    			CompressionType:     pulumi.String("string"),
    			StorageClass:        pulumi.String("string"),
    			ExpectedBucketOwner: pulumi.String("string"),
    			OutputKeyTemplate:   pulumi.String("string"),
    			OutputPrefix:        pulumi.String("string"),
    		},
    		DataFreshnessInSeconds: pulumi.Int(0),
    	},
    	Tags: pulumi.StringMap{
    		"string": pulumi.String("string"),
    	},
    	Timeouts: &msk.ChannelTimeoutsArgs{
    		Create: pulumi.String("string"),
    		Delete: pulumi.String("string"),
    		Update: pulumi.String("string"),
    	},
    })
    
    resource "aws_msk_channel" "examplechannelResourceResourceFromMskchannel" {
      lifecycle {
        create_before_destroy = true
      }
      channel_name = "string"
      cluster_arn  = "string"
      topic_configuration = {
        record_converter = {
          value_converter = "string"
        }
        topic_arn = "string"
        record_schema = {
          gsr_arn = "string"
        }
      }
      encryption_configuration = {
        kms_key_arn = "string"
      }
      iceberg_destination = {
        append_only = false
        dead_letter_queue_s3 = {
          bucket_arn            = "string"
          error_output_prefix   = "string"
          expected_bucket_owner = "string"
        }
        destination_table = {
          destination_database_name = "string"
          destination_table_name    = "string"
          partition_spec = {
            partition_strategy = "string"
            sources = [{
              source_name = "string"
            }]
          }
        }
        schema_evolution = {
          enable_schema_evolution = false
        }
        service_execution_role_arn = "string"
        table_creation = {
          enable_table_creation = false
        }
        catalog = {
          catalog_arn        = "string"
          warehouse_location = "string"
        }
        compression_type          = "string"
        data_freshness_in_seconds = 0
      }
      logging_info = {
        cloudwatch_logs = {
          enabled   = false
          log_group = "string"
        }
        firehose = {
          enabled         = false
          delivery_stream = "string"
        }
        s3 = {
          enabled = false
          bucket  = "string"
          prefix  = "string"
        }
      }
      region = "string"
      s3_destination = {
        dead_letter_queue_s3 = {
          bucket_arn            = "string"
          error_output_prefix   = "string"
          expected_bucket_owner = "string"
        }
        service_execution_role_arn = "string"
        storage = {
          bucket_arn            = "string"
          compression_type      = "string"
          storage_class         = "string"
          expected_bucket_owner = "string"
          output_key_template   = "string"
          output_prefix         = "string"
        }
        data_freshness_in_seconds = 0
      }
      tags = {
        "string" = "string"
      }
      timeouts = {
        create = "string"
        delete = "string"
        update = "string"
      }
    }
    
    var examplechannelResourceResourceFromMskchannel = new com.pulumi.aws.msk.Channel("examplechannelResourceResourceFromMskchannel", com.pulumi.aws.msk.ChannelArgs.builder()
        .channelName("string")
        .clusterArn("string")
        .topicConfiguration(ChannelTopicConfigurationArgs.builder()
            .recordConverter(ChannelTopicConfigurationRecordConverterArgs.builder()
                .valueConverter("string")
                .build())
            .topicArn("string")
            .recordSchema(ChannelTopicConfigurationRecordSchemaArgs.builder()
                .gsrArn("string")
                .build())
            .build())
        .encryptionConfiguration(ChannelEncryptionConfigurationArgs.builder()
            .kmsKeyArn("string")
            .build())
        .icebergDestination(ChannelIcebergDestinationArgs.builder()
            .appendOnly(false)
            .deadLetterQueueS3(ChannelIcebergDestinationDeadLetterQueueS3Args.builder()
                .bucketArn("string")
                .errorOutputPrefix("string")
                .expectedBucketOwner("string")
                .build())
            .destinationTable(ChannelIcebergDestinationDestinationTableArgs.builder()
                .destinationDatabaseName("string")
                .destinationTableName("string")
                .partitionSpec(ChannelIcebergDestinationDestinationTablePartitionSpecArgs.builder()
                    .partitionStrategy("string")
                    .sources(ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs.builder()
                        .sourceName("string")
                        .build())
                    .build())
                .build())
            .schemaEvolution(ChannelIcebergDestinationSchemaEvolutionArgs.builder()
                .enableSchemaEvolution(false)
                .build())
            .serviceExecutionRoleArn("string")
            .tableCreation(ChannelIcebergDestinationTableCreationArgs.builder()
                .enableTableCreation(false)
                .build())
            .catalog(ChannelIcebergDestinationCatalogArgs.builder()
                .catalogArn("string")
                .warehouseLocation("string")
                .build())
            .compressionType("string")
            .dataFreshnessInSeconds(0)
            .build())
        .loggingInfo(ChannelLoggingInfoArgs.builder()
            .cloudwatchLogs(ChannelLoggingInfoCloudwatchLogsArgs.builder()
                .enabled(false)
                .logGroup("string")
                .build())
            .firehose(ChannelLoggingInfoFirehoseArgs.builder()
                .enabled(false)
                .deliveryStream("string")
                .build())
            .s3(ChannelLoggingInfoS3Args.builder()
                .enabled(false)
                .bucket("string")
                .prefix("string")
                .build())
            .build())
        .region("string")
        .s3Destination(ChannelS3DestinationArgs.builder()
            .deadLetterQueueS3(ChannelS3DestinationDeadLetterQueueS3Args.builder()
                .bucketArn("string")
                .errorOutputPrefix("string")
                .expectedBucketOwner("string")
                .build())
            .serviceExecutionRoleArn("string")
            .storage(ChannelS3DestinationStorageArgs.builder()
                .bucketArn("string")
                .compressionType("string")
                .storageClass("string")
                .expectedBucketOwner("string")
                .outputKeyTemplate("string")
                .outputPrefix("string")
                .build())
            .dataFreshnessInSeconds(0)
            .build())
        .tags(Map.of("string", "string"))
        .timeouts(ChannelTimeoutsArgs.builder()
            .create("string")
            .delete("string")
            .update("string")
            .build())
        .build());
    
    examplechannel_resource_resource_from_mskchannel = aws.msk.Channel("examplechannelResourceResourceFromMskchannel",
        channel_name="string",
        cluster_arn="string",
        topic_configuration={
            "record_converter": {
                "value_converter": "string",
            },
            "topic_arn": "string",
            "record_schema": {
                "gsr_arn": "string",
            },
        },
        encryption_configuration={
            "kms_key_arn": "string",
        },
        iceberg_destination={
            "append_only": False,
            "dead_letter_queue_s3": {
                "bucket_arn": "string",
                "error_output_prefix": "string",
                "expected_bucket_owner": "string",
            },
            "destination_table": {
                "destination_database_name": "string",
                "destination_table_name": "string",
                "partition_spec": {
                    "partition_strategy": "string",
                    "sources": [{
                        "source_name": "string",
                    }],
                },
            },
            "schema_evolution": {
                "enable_schema_evolution": False,
            },
            "service_execution_role_arn": "string",
            "table_creation": {
                "enable_table_creation": False,
            },
            "catalog": {
                "catalog_arn": "string",
                "warehouse_location": "string",
            },
            "compression_type": "string",
            "data_freshness_in_seconds": 0,
        },
        logging_info={
            "cloudwatch_logs": {
                "enabled": False,
                "log_group": "string",
            },
            "firehose": {
                "enabled": False,
                "delivery_stream": "string",
            },
            "s3": {
                "enabled": False,
                "bucket": "string",
                "prefix": "string",
            },
        },
        region="string",
        s3_destination={
            "dead_letter_queue_s3": {
                "bucket_arn": "string",
                "error_output_prefix": "string",
                "expected_bucket_owner": "string",
            },
            "service_execution_role_arn": "string",
            "storage": {
                "bucket_arn": "string",
                "compression_type": "string",
                "storage_class": "string",
                "expected_bucket_owner": "string",
                "output_key_template": "string",
                "output_prefix": "string",
            },
            "data_freshness_in_seconds": 0,
        },
        tags={
            "string": "string",
        },
        timeouts={
            "create": "string",
            "delete": "string",
            "update": "string",
        })
    
    const examplechannelResourceResourceFromMskchannel = new aws.msk.Channel("examplechannelResourceResourceFromMskchannel", {
        channelName: "string",
        clusterArn: "string",
        topicConfiguration: {
            recordConverter: {
                valueConverter: "string",
            },
            topicArn: "string",
            recordSchema: {
                gsrArn: "string",
            },
        },
        encryptionConfiguration: {
            kmsKeyArn: "string",
        },
        icebergDestination: {
            appendOnly: false,
            deadLetterQueueS3: {
                bucketArn: "string",
                errorOutputPrefix: "string",
                expectedBucketOwner: "string",
            },
            destinationTable: {
                destinationDatabaseName: "string",
                destinationTableName: "string",
                partitionSpec: {
                    partitionStrategy: "string",
                    sources: [{
                        sourceName: "string",
                    }],
                },
            },
            schemaEvolution: {
                enableSchemaEvolution: false,
            },
            serviceExecutionRoleArn: "string",
            tableCreation: {
                enableTableCreation: false,
            },
            catalog: {
                catalogArn: "string",
                warehouseLocation: "string",
            },
            compressionType: "string",
            dataFreshnessInSeconds: 0,
        },
        loggingInfo: {
            cloudwatchLogs: {
                enabled: false,
                logGroup: "string",
            },
            firehose: {
                enabled: false,
                deliveryStream: "string",
            },
            s3: {
                enabled: false,
                bucket: "string",
                prefix: "string",
            },
        },
        region: "string",
        s3Destination: {
            deadLetterQueueS3: {
                bucketArn: "string",
                errorOutputPrefix: "string",
                expectedBucketOwner: "string",
            },
            serviceExecutionRoleArn: "string",
            storage: {
                bucketArn: "string",
                compressionType: "string",
                storageClass: "string",
                expectedBucketOwner: "string",
                outputKeyTemplate: "string",
                outputPrefix: "string",
            },
            dataFreshnessInSeconds: 0,
        },
        tags: {
            string: "string",
        },
        timeouts: {
            create: "string",
            "delete": "string",
            update: "string",
        },
    });
    
    type: aws:msk:Channel
    properties:
        channelName: string
        clusterArn: string
        encryptionConfiguration:
            kmsKeyArn: string
        icebergDestination:
            appendOnly: false
            catalog:
                catalogArn: string
                warehouseLocation: string
            compressionType: string
            dataFreshnessInSeconds: 0
            deadLetterQueueS3:
                bucketArn: string
                errorOutputPrefix: string
                expectedBucketOwner: string
            destinationTable:
                destinationDatabaseName: string
                destinationTableName: string
                partitionSpec:
                    partitionStrategy: string
                    sources:
                        - sourceName: string
            schemaEvolution:
                enableSchemaEvolution: false
            serviceExecutionRoleArn: string
            tableCreation:
                enableTableCreation: false
        loggingInfo:
            cloudwatchLogs:
                enabled: false
                logGroup: string
            firehose:
                deliveryStream: string
                enabled: false
            s3:
                bucket: string
                enabled: false
                prefix: string
        region: string
        s3Destination:
            dataFreshnessInSeconds: 0
            deadLetterQueueS3:
                bucketArn: string
                errorOutputPrefix: string
                expectedBucketOwner: string
            serviceExecutionRoleArn: string
            storage:
                bucketArn: string
                compressionType: string
                expectedBucketOwner: string
                outputKeyTemplate: string
                outputPrefix: string
                storageClass: string
        tags:
            string: string
        timeouts:
            create: string
            delete: string
            update: string
        topicConfiguration:
            recordConverter:
                valueConverter: string
            recordSchema:
                gsrArn: string
            topicArn: string
    

    Channel Resource Properties

    To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

    Inputs

    In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.

    The Channel resource accepts the following input properties:

    ChannelName string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    ClusterArn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    TopicConfiguration ChannelTopicConfiguration

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    EncryptionConfiguration ChannelEncryptionConfiguration
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    IcebergDestination ChannelIcebergDestination
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    LoggingInfo ChannelLoggingInfo
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    S3Destination ChannelS3Destination
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    Tags Dictionary<string, string>
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    Timeouts ChannelTimeouts
    ChannelName string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    ClusterArn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    TopicConfiguration ChannelTopicConfigurationArgs

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    EncryptionConfiguration ChannelEncryptionConfigurationArgs
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    IcebergDestination ChannelIcebergDestinationArgs
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    LoggingInfo ChannelLoggingInfoArgs
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    S3Destination ChannelS3DestinationArgs
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    Tags map[string]string
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    Timeouts ChannelTimeoutsArgs
    channel_name string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    cluster_arn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    topic_configuration object

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    encryption_configuration object
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    iceberg_destination object
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    logging_info object
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3_destination object
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags map(string)
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timeouts object
    channelName String
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    clusterArn String
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    topicConfiguration ChannelTopicConfiguration

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    encryptionConfiguration ChannelEncryptionConfiguration
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    icebergDestination ChannelIcebergDestination
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    loggingInfo ChannelLoggingInfo
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3Destination ChannelS3Destination
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags Map<String,String>
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timeouts ChannelTimeouts
    channelName string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    clusterArn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    topicConfiguration ChannelTopicConfiguration

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    encryptionConfiguration ChannelEncryptionConfiguration
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    icebergDestination ChannelIcebergDestination
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    loggingInfo ChannelLoggingInfo
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3Destination ChannelS3Destination
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags {[key: string]: string}
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timeouts ChannelTimeouts
    channel_name str
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    cluster_arn str
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    topic_configuration ChannelTopicConfigurationArgs

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    encryption_configuration ChannelEncryptionConfigurationArgs
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    iceberg_destination ChannelIcebergDestinationArgs
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    logging_info ChannelLoggingInfoArgs
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region str
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3_destination ChannelS3DestinationArgs
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags Mapping[str, str]
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timeouts ChannelTimeoutsArgs
    channelName String
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    clusterArn String
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    topicConfiguration Property Map

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    encryptionConfiguration Property Map
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    icebergDestination Property Map
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    loggingInfo Property Map
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3Destination Property Map
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags Map<String>
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    timeouts Property Map

    Outputs

    All input properties are implicitly available as output properties. Additionally, the Channel resource produces the following output properties:

    Arn string
    ARN of the channel.
    DestinationType string
    Type of destination configured for the channel.
    Id string
    The provider-assigned unique ID for this managed resource.
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    Arn string
    ARN of the channel.
    DestinationType string
    Type of destination configured for the channel.
    Id string
    The provider-assigned unique ID for this managed resource.
    TagsAll map[string]string
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    arn string
    ARN of the channel.
    destination_type string
    Type of destination configured for the channel.
    id string
    The provider-assigned unique ID for this managed resource.
    tags_all map(string)
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    arn String
    ARN of the channel.
    destinationType String
    Type of destination configured for the channel.
    id String
    The provider-assigned unique ID for this managed resource.
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    arn string
    ARN of the channel.
    destinationType string
    Type of destination configured for the channel.
    id string
    The provider-assigned unique ID for this managed resource.
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    arn str
    ARN of the channel.
    destination_type str
    Type of destination configured for the channel.
    id str
    The provider-assigned unique ID for this managed resource.
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    arn String
    ARN of the channel.
    destinationType String
    Type of destination configured for the channel.
    id String
    The provider-assigned unique ID for this managed resource.
    tagsAll Map<String>
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.

    Look up Existing Channel Resource

    Get an existing Channel resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.

    public static get(name: string, id: Input<ID>, state?: ChannelState, opts?: CustomResourceOptions): Channel
    @staticmethod
    def get(resource_name: str,
            id: str,
            opts: Optional[ResourceOptions] = None,
            arn: Optional[str] = None,
            channel_name: Optional[str] = None,
            cluster_arn: Optional[str] = None,
            destination_type: Optional[str] = None,
            encryption_configuration: Optional[ChannelEncryptionConfigurationArgs] = None,
            iceberg_destination: Optional[ChannelIcebergDestinationArgs] = None,
            logging_info: Optional[ChannelLoggingInfoArgs] = None,
            region: Optional[str] = None,
            s3_destination: Optional[ChannelS3DestinationArgs] = None,
            tags: Optional[Mapping[str, str]] = None,
            tags_all: Optional[Mapping[str, str]] = None,
            timeouts: Optional[ChannelTimeoutsArgs] = None,
            topic_configuration: Optional[ChannelTopicConfigurationArgs] = None) -> Channel
    func GetChannel(ctx *Context, name string, id IDInput, state *ChannelState, opts ...ResourceOption) (*Channel, error)
    public static Channel Get(string name, Input<string> id, ChannelState? state, CustomResourceOptions? opts = null)
    public static Channel get(String name, Output<String> id, ChannelState state, CustomResourceOptions options)
    resources:  _:    type: aws:msk:Channel    get:      id: ${id}
    import {
      to = aws_msk_channel.example
      id = "${id}"
    }
    
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    resource_name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    name
    The unique name of the resulting resource.
    id
    The unique provider ID of the resource to lookup.
    state
    Any extra arguments used during the lookup.
    opts
    A bag of options that control this resource's behavior.
    The following state arguments are supported:
    Arn string
    ARN of the channel.
    ChannelName string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    ClusterArn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    DestinationType string
    Type of destination configured for the channel.
    EncryptionConfiguration ChannelEncryptionConfiguration
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    IcebergDestination ChannelIcebergDestination
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    LoggingInfo ChannelLoggingInfo
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    S3Destination ChannelS3Destination
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    Tags Dictionary<string, string>
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll Dictionary<string, string>
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    Timeouts ChannelTimeouts
    TopicConfiguration ChannelTopicConfiguration

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    Arn string
    ARN of the channel.
    ChannelName string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    ClusterArn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    DestinationType string
    Type of destination configured for the channel.
    EncryptionConfiguration ChannelEncryptionConfigurationArgs
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    IcebergDestination ChannelIcebergDestinationArgs
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    LoggingInfo ChannelLoggingInfoArgs
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    Region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    S3Destination ChannelS3DestinationArgs
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    Tags map[string]string
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    TagsAll map[string]string
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    Timeouts ChannelTimeoutsArgs
    TopicConfiguration ChannelTopicConfigurationArgs

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    arn string
    ARN of the channel.
    channel_name string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    cluster_arn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    destination_type string
    Type of destination configured for the channel.
    encryption_configuration object
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    iceberg_destination object
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    logging_info object
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3_destination object
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags map(string)
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tags_all map(string)
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    timeouts object
    topic_configuration object

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    arn String
    ARN of the channel.
    channelName String
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    clusterArn String
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    destinationType String
    Type of destination configured for the channel.
    encryptionConfiguration ChannelEncryptionConfiguration
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    icebergDestination ChannelIcebergDestination
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    loggingInfo ChannelLoggingInfo
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3Destination ChannelS3Destination
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags Map<String,String>
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String,String>
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    timeouts ChannelTimeouts
    topicConfiguration ChannelTopicConfiguration

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    arn string
    ARN of the channel.
    channelName string
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    clusterArn string
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    destinationType string
    Type of destination configured for the channel.
    encryptionConfiguration ChannelEncryptionConfiguration
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    icebergDestination ChannelIcebergDestination
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    loggingInfo ChannelLoggingInfo
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region string
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3Destination ChannelS3Destination
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags {[key: string]: string}
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll {[key: string]: string}
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    timeouts ChannelTimeouts
    topicConfiguration ChannelTopicConfiguration

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    arn str
    ARN of the channel.
    channel_name str
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    cluster_arn str
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    destination_type str
    Type of destination configured for the channel.
    encryption_configuration ChannelEncryptionConfigurationArgs
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    iceberg_destination ChannelIcebergDestinationArgs
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    logging_info ChannelLoggingInfoArgs
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region str
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3_destination ChannelS3DestinationArgs
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags Mapping[str, str]
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tags_all Mapping[str, str]
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    timeouts ChannelTimeoutsArgs
    topic_configuration ChannelTopicConfigurationArgs

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    arn String
    ARN of the channel.
    channelName String
    Name of the channel. Must be unique within the cluster. Changing this forces a new resource to be created.
    clusterArn String
    ARN that uniquely identifies the cluster. Changing this forces a new resource to be created.
    destinationType String
    Type of destination configured for the channel.
    encryptionConfiguration Property Map
    AWS KMS encryption configuration applied to data at rest. Changing this forces a new resource to be created. See encryptionConfiguration Block below.
    icebergDestination Property Map
    Apache Iceberg destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See icebergDestination Block below.
    loggingInfo Property Map
    Destinations to which the channel publishes operational logs. Changing this forces a new resource to be created. See loggingInfo Block below.
    region String
    Region where this resource will be managed. Defaults to the Region set in the provider configuration.
    s3Destination Property Map
    Amazon S3 destination for the channel. Exactly one of icebergDestination or s3Destination is required. With the exception of dataFreshnessInSeconds, changing an argument in this block forces a new resource to be created. See s3Destination Block below.
    tags Map<String>
    Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
    tagsAll Map<String>
    Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
    timeouts Property Map
    topicConfiguration Property Map

    Configuration of the Apache Kafka topic that feeds the channel. Changing this forces a new resource to be created. See topicConfiguration Block below.

    The following arguments are optional:

    Supporting Types

    ChannelEncryptionConfiguration, ChannelEncryptionConfigurationArgs

    KmsKeyArn string
    ARN of the AWS KMS key used to encrypt the data.
    KmsKeyArn string
    ARN of the AWS KMS key used to encrypt the data.
    kms_key_arn string
    ARN of the AWS KMS key used to encrypt the data.
    kmsKeyArn String
    ARN of the AWS KMS key used to encrypt the data.
    kmsKeyArn string
    ARN of the AWS KMS key used to encrypt the data.
    kms_key_arn str
    ARN of the AWS KMS key used to encrypt the data.
    kmsKeyArn String
    ARN of the AWS KMS key used to encrypt the data.

    ChannelIcebergDestination, ChannelIcebergDestinationArgs

    AppendOnly bool
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    DeadLetterQueueS3 ChannelIcebergDestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    DestinationTable ChannelIcebergDestinationDestinationTable
    Destination Iceberg table. See destinationTable Block below.
    SchemaEvolution ChannelIcebergDestinationSchemaEvolution
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    ServiceExecutionRoleArn string
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    TableCreation ChannelIcebergDestinationTableCreation

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    Catalog ChannelIcebergDestinationCatalog
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    CompressionType string
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    DataFreshnessInSeconds int
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    AppendOnly bool
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    DeadLetterQueueS3 ChannelIcebergDestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    DestinationTable ChannelIcebergDestinationDestinationTable
    Destination Iceberg table. See destinationTable Block below.
    SchemaEvolution ChannelIcebergDestinationSchemaEvolution
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    ServiceExecutionRoleArn string
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    TableCreation ChannelIcebergDestinationTableCreation

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    Catalog ChannelIcebergDestinationCatalog
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    CompressionType string
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    DataFreshnessInSeconds int
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    append_only bool
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    dead_letter_queue_s3 object
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    destination_table object
    Destination Iceberg table. See destinationTable Block below.
    schema_evolution object
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    service_execution_role_arn string
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    table_creation object

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    catalog object
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    compression_type string
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    data_freshness_in_seconds number
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    appendOnly Boolean
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    deadLetterQueueS3 ChannelIcebergDestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    destinationTable ChannelIcebergDestinationDestinationTable
    Destination Iceberg table. See destinationTable Block below.
    schemaEvolution ChannelIcebergDestinationSchemaEvolution
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    serviceExecutionRoleArn String
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    tableCreation ChannelIcebergDestinationTableCreation

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    catalog ChannelIcebergDestinationCatalog
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    compressionType String
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    dataFreshnessInSeconds Integer
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    appendOnly boolean
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    deadLetterQueueS3 ChannelIcebergDestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    destinationTable ChannelIcebergDestinationDestinationTable
    Destination Iceberg table. See destinationTable Block below.
    schemaEvolution ChannelIcebergDestinationSchemaEvolution
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    serviceExecutionRoleArn string
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    tableCreation ChannelIcebergDestinationTableCreation

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    catalog ChannelIcebergDestinationCatalog
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    compressionType string
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    dataFreshnessInSeconds number
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    append_only bool
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    dead_letter_queue_s3 ChannelIcebergDestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    destination_table ChannelIcebergDestinationDestinationTable
    Destination Iceberg table. See destinationTable Block below.
    schema_evolution ChannelIcebergDestinationSchemaEvolution
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    service_execution_role_arn str
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    table_creation ChannelIcebergDestinationTableCreation

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    catalog ChannelIcebergDestinationCatalog
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    compression_type str
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    data_freshness_in_seconds int
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    appendOnly Boolean
    Whether the destination is append-only. Must be true; updates and deletes are not supported.
    deadLetterQueueS3 Property Map
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    destinationTable Property Map
    Destination Iceberg table. See destinationTable Block below.
    schemaEvolution Property Map
    Configuration controlling whether the destination table's schema is evolved to match incoming records. See schemaEvolution Block below.
    serviceExecutionRoleArn String
    ARN of the IAM role that MSK assumes to access the destination table, the AWS Glue Data Catalog, and the dead-letter Amazon S3 bucket.
    tableCreation Property Map

    Configuration controlling whether MSK creates the destination table if it does not already exist. See tableCreation Block below.

    The following arguments are optional:

    catalog Property Map
    AWS Glue Data Catalog and S3 Tables warehouse used by the destination. See catalog Block below.
    compressionType String
    Compression codec for Iceberg table data files. Defaults to ZSTD.
    dataFreshnessInSeconds Number
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.

    ChannelIcebergDestinationCatalog, ChannelIcebergDestinationCatalogArgs

    CatalogArn string
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    WarehouseLocation string
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.
    CatalogArn string
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    WarehouseLocation string
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.
    catalog_arn string
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    warehouse_location string
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.
    catalogArn String
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    warehouseLocation String
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.
    catalogArn string
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    warehouseLocation string
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.
    catalog_arn str
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    warehouse_location str
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.
    catalogArn String
    ARN of the federated AWS Glue Data Catalog that projects the S3 Tables bucket.
    warehouseLocation String
    ARN of the S3 Tables bucket that backs the Apache Iceberg warehouse.

    ChannelIcebergDestinationDeadLetterQueueS3, ChannelIcebergDestinationDeadLetterQueueS3Args

    BucketArn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    ErrorOutputPrefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    ExpectedBucketOwner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    BucketArn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    ErrorOutputPrefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    ExpectedBucketOwner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucket_arn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    error_output_prefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    expected_bucket_owner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucketArn String

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    errorOutputPrefix String
    Prefix prepended to every dead-letter Amazon S3 object key.
    expectedBucketOwner String
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucketArn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    errorOutputPrefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    expectedBucketOwner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucket_arn str

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    error_output_prefix str
    Prefix prepended to every dead-letter Amazon S3 object key.
    expected_bucket_owner str
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucketArn String

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    errorOutputPrefix String
    Prefix prepended to every dead-letter Amazon S3 object key.
    expectedBucketOwner String
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.

    ChannelIcebergDestinationDestinationTable, ChannelIcebergDestinationDestinationTableArgs

    DestinationDatabaseName string
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    DestinationTableName string
    Name of the destination Apache Iceberg table.
    PartitionSpec ChannelIcebergDestinationDestinationTablePartitionSpec
    Partition specification for the destination table. See partitionSpec Block below.
    DestinationDatabaseName string
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    DestinationTableName string
    Name of the destination Apache Iceberg table.
    PartitionSpec ChannelIcebergDestinationDestinationTablePartitionSpec
    Partition specification for the destination table. See partitionSpec Block below.
    destination_database_name string
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    destination_table_name string
    Name of the destination Apache Iceberg table.
    partition_spec object
    Partition specification for the destination table. See partitionSpec Block below.
    destinationDatabaseName String
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    destinationTableName String
    Name of the destination Apache Iceberg table.
    partitionSpec ChannelIcebergDestinationDestinationTablePartitionSpec
    Partition specification for the destination table. See partitionSpec Block below.
    destinationDatabaseName string
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    destinationTableName string
    Name of the destination Apache Iceberg table.
    partitionSpec ChannelIcebergDestinationDestinationTablePartitionSpec
    Partition specification for the destination table. See partitionSpec Block below.
    destination_database_name str
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    destination_table_name str
    Name of the destination Apache Iceberg table.
    partition_spec ChannelIcebergDestinationDestinationTablePartitionSpec
    Partition specification for the destination table. See partitionSpec Block below.
    destinationDatabaseName String
    Name of the destination namespace (database) in the AWS Glue Data Catalog.
    destinationTableName String
    Name of the destination Apache Iceberg table.
    partitionSpec Property Map
    Partition specification for the destination table. See partitionSpec Block below.

    ChannelIcebergDestinationDestinationTablePartitionSpec, ChannelIcebergDestinationDestinationTablePartitionSpecArgs

    PartitionStrategy string
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    Sources List<ChannelIcebergDestinationDestinationTablePartitionSpecSource>
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.
    PartitionStrategy string
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    Sources []ChannelIcebergDestinationDestinationTablePartitionSpecSource
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.
    partition_strategy string
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    sources list(object)
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.
    partitionStrategy String
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    sources List<ChannelIcebergDestinationDestinationTablePartitionSpecSource>
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.
    partitionStrategy string
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    sources ChannelIcebergDestinationDestinationTablePartitionSpecSource[]
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.
    partition_strategy str
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    sources Sequence[ChannelIcebergDestinationDestinationTablePartitionSpecSource]
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.
    partitionStrategy String
    Partitioning strategy applied to records written to the table. TIME_HOUR partitions by hour using a timestamp source column.
    sources List<Property Map>
    Source column used by the partitioning strategy. For TIME_HOUR, exactly one source must be specified and its column must be a timestamp. See source Block below.

    ChannelIcebergDestinationDestinationTablePartitionSpecSource, ChannelIcebergDestinationDestinationTablePartitionSpecSourceArgs

    SourceName string
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.
    SourceName string
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.
    source_name string
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.
    sourceName String
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.
    sourceName string
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.
    source_name str
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.
    sourceName String
    Name of the source column. For TIME_HOUR partitioning this must be a timestamp column defined in the Glue Schema Registry schema.

    ChannelIcebergDestinationSchemaEvolution, ChannelIcebergDestinationSchemaEvolutionArgs

    EnableSchemaEvolution bool
    Whether to allow MSK to evolve the destination table's schema.
    EnableSchemaEvolution bool
    Whether to allow MSK to evolve the destination table's schema.
    enable_schema_evolution bool
    Whether to allow MSK to evolve the destination table's schema.
    enableSchemaEvolution Boolean
    Whether to allow MSK to evolve the destination table's schema.
    enableSchemaEvolution boolean
    Whether to allow MSK to evolve the destination table's schema.
    enable_schema_evolution bool
    Whether to allow MSK to evolve the destination table's schema.
    enableSchemaEvolution Boolean
    Whether to allow MSK to evolve the destination table's schema.

    ChannelIcebergDestinationTableCreation, ChannelIcebergDestinationTableCreationArgs

    EnableTableCreation bool
    Whether MSK creates the destination table on the customer's behalf.
    EnableTableCreation bool
    Whether MSK creates the destination table on the customer's behalf.
    enable_table_creation bool
    Whether MSK creates the destination table on the customer's behalf.
    enableTableCreation Boolean
    Whether MSK creates the destination table on the customer's behalf.
    enableTableCreation boolean
    Whether MSK creates the destination table on the customer's behalf.
    enable_table_creation bool
    Whether MSK creates the destination table on the customer's behalf.
    enableTableCreation Boolean
    Whether MSK creates the destination table on the customer's behalf.

    ChannelLoggingInfo, ChannelLoggingInfoArgs

    CloudwatchLogs ChannelLoggingInfoCloudwatchLogs
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    Firehose ChannelLoggingInfoFirehose
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    S3 ChannelLoggingInfoS3
    Amazon S3 destination for channel logs. See s3 Block below.
    CloudwatchLogs ChannelLoggingInfoCloudwatchLogs
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    Firehose ChannelLoggingInfoFirehose
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    S3 ChannelLoggingInfoS3
    Amazon S3 destination for channel logs. See s3 Block below.
    cloudwatch_logs object
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    firehose object
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    s3 object
    Amazon S3 destination for channel logs. See s3 Block below.
    cloudwatchLogs ChannelLoggingInfoCloudwatchLogs
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    firehose ChannelLoggingInfoFirehose
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    s3 ChannelLoggingInfoS3
    Amazon S3 destination for channel logs. See s3 Block below.
    cloudwatchLogs ChannelLoggingInfoCloudwatchLogs
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    firehose ChannelLoggingInfoFirehose
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    s3 ChannelLoggingInfoS3
    Amazon S3 destination for channel logs. See s3 Block below.
    cloudwatch_logs ChannelLoggingInfoCloudwatchLogs
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    firehose ChannelLoggingInfoFirehose
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    s3 ChannelLoggingInfoS3
    Amazon S3 destination for channel logs. See s3 Block below.
    cloudwatchLogs Property Map
    CloudWatch Logs destination for channel logs. See cloudwatchLogs Block below.
    firehose Property Map
    Kinesis Data Firehose delivery stream destination for channel logs. See firehose Block below.
    s3 Property Map
    Amazon S3 destination for channel logs. See s3 Block below.

    ChannelLoggingInfoCloudwatchLogs, ChannelLoggingInfoCloudwatchLogsArgs

    Enabled bool

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    LogGroup string
    Name of the CloudWatch log group that receives the logs.
    Enabled bool

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    LogGroup string
    Name of the CloudWatch log group that receives the logs.
    enabled bool

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    log_group string
    Name of the CloudWatch log group that receives the logs.
    enabled Boolean

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    logGroup String
    Name of the CloudWatch log group that receives the logs.
    enabled boolean

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    logGroup string
    Name of the CloudWatch log group that receives the logs.
    enabled bool

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    log_group str
    Name of the CloudWatch log group that receives the logs.
    enabled Boolean

    Whether the CloudWatch Logs destination is enabled.

    The following arguments are optional:

    logGroup String
    Name of the CloudWatch log group that receives the logs.

    ChannelLoggingInfoFirehose, ChannelLoggingInfoFirehoseArgs

    Enabled bool

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    DeliveryStream string
    Name of the Kinesis Data Firehose delivery stream that receives the logs.
    Enabled bool

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    DeliveryStream string
    Name of the Kinesis Data Firehose delivery stream that receives the logs.
    enabled bool

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    delivery_stream string
    Name of the Kinesis Data Firehose delivery stream that receives the logs.
    enabled Boolean

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    deliveryStream String
    Name of the Kinesis Data Firehose delivery stream that receives the logs.
    enabled boolean

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    deliveryStream string
    Name of the Kinesis Data Firehose delivery stream that receives the logs.
    enabled bool

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    delivery_stream str
    Name of the Kinesis Data Firehose delivery stream that receives the logs.
    enabled Boolean

    Whether the Firehose destination is enabled.

    The following arguments are optional:

    deliveryStream String
    Name of the Kinesis Data Firehose delivery stream that receives the logs.

    ChannelLoggingInfoS3, ChannelLoggingInfoS3Args

    Enabled bool

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    Bucket string
    Name of the Amazon S3 bucket that receives the logs.
    Prefix string
    Prefix applied to the Amazon S3 log object keys.
    Enabled bool

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    Bucket string
    Name of the Amazon S3 bucket that receives the logs.
    Prefix string
    Prefix applied to the Amazon S3 log object keys.
    enabled bool

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    bucket string
    Name of the Amazon S3 bucket that receives the logs.
    prefix string
    Prefix applied to the Amazon S3 log object keys.
    enabled Boolean

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    bucket String
    Name of the Amazon S3 bucket that receives the logs.
    prefix String
    Prefix applied to the Amazon S3 log object keys.
    enabled boolean

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    bucket string
    Name of the Amazon S3 bucket that receives the logs.
    prefix string
    Prefix applied to the Amazon S3 log object keys.
    enabled bool

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    bucket str
    Name of the Amazon S3 bucket that receives the logs.
    prefix str
    Prefix applied to the Amazon S3 log object keys.
    enabled Boolean

    Whether the Amazon S3 destination is enabled.

    The following arguments are optional:

    bucket String
    Name of the Amazon S3 bucket that receives the logs.
    prefix String
    Prefix applied to the Amazon S3 log object keys.

    ChannelS3Destination, ChannelS3DestinationArgs

    DeadLetterQueueS3 ChannelS3DestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    ServiceExecutionRoleArn string
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    Storage ChannelS3DestinationStorage

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    DataFreshnessInSeconds int
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    DeadLetterQueueS3 ChannelS3DestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    ServiceExecutionRoleArn string
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    Storage ChannelS3DestinationStorage

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    DataFreshnessInSeconds int
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    dead_letter_queue_s3 object
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    service_execution_role_arn string
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    storage object

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    data_freshness_in_seconds number
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    deadLetterQueueS3 ChannelS3DestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    serviceExecutionRoleArn String
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    storage ChannelS3DestinationStorage

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    dataFreshnessInSeconds Integer
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    deadLetterQueueS3 ChannelS3DestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    serviceExecutionRoleArn string
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    storage ChannelS3DestinationStorage

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    dataFreshnessInSeconds number
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    dead_letter_queue_s3 ChannelS3DestinationDeadLetterQueueS3
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    service_execution_role_arn str
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    storage ChannelS3DestinationStorage

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    data_freshness_in_seconds int
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.
    deadLetterQueueS3 Property Map
    Amazon S3 bucket and prefix where MSK writes records that fail to deliver. See deadLetterQueueS3 Block below.
    serviceExecutionRoleArn String
    ARN of the IAM role that MSK assumes to write to the destination Amazon S3 bucket and the dead-letter bucket.
    storage Property Map

    Amazon S3 bucket, prefix, and storage class for delivered records. See storage Block below.

    The following arguments are optional:

    dataFreshnessInSeconds Number
    Maximum time, in seconds, that records buffer in MSK before being flushed to the destination. Valid values are between 300 and 900. Defaults to 600. Can be updated in place without recreating the channel.

    ChannelS3DestinationDeadLetterQueueS3, ChannelS3DestinationDeadLetterQueueS3Args

    BucketArn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    ErrorOutputPrefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    ExpectedBucketOwner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    BucketArn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    ErrorOutputPrefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    ExpectedBucketOwner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucket_arn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    error_output_prefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    expected_bucket_owner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucketArn String

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    errorOutputPrefix String
    Prefix prepended to every dead-letter Amazon S3 object key.
    expectedBucketOwner String
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucketArn string

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    errorOutputPrefix string
    Prefix prepended to every dead-letter Amazon S3 object key.
    expectedBucketOwner string
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucket_arn str

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    error_output_prefix str
    Prefix prepended to every dead-letter Amazon S3 object key.
    expected_bucket_owner str
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.
    bucketArn String

    ARN of the dead-letter Amazon S3 bucket.

    The following arguments are optional:

    errorOutputPrefix String
    Prefix prepended to every dead-letter Amazon S3 object key.
    expectedBucketOwner String
    12-digit AWS account ID expected to own the dead-letter Amazon S3 bucket.

    ChannelS3DestinationStorage, ChannelS3DestinationStorageArgs

    BucketArn string
    ARN of the destination Amazon S3 bucket.
    CompressionType string
    Compression codec applied to delivered Amazon S3 objects.
    StorageClass string

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    ExpectedBucketOwner string
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    OutputKeyTemplate string
    Template that controls the Amazon S3 object key for each delivered record.
    OutputPrefix string
    Prefix prepended to every Amazon S3 object key written by the channel.
    BucketArn string
    ARN of the destination Amazon S3 bucket.
    CompressionType string
    Compression codec applied to delivered Amazon S3 objects.
    StorageClass string

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    ExpectedBucketOwner string
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    OutputKeyTemplate string
    Template that controls the Amazon S3 object key for each delivered record.
    OutputPrefix string
    Prefix prepended to every Amazon S3 object key written by the channel.
    bucket_arn string
    ARN of the destination Amazon S3 bucket.
    compression_type string
    Compression codec applied to delivered Amazon S3 objects.
    storage_class string

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    expected_bucket_owner string
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    output_key_template string
    Template that controls the Amazon S3 object key for each delivered record.
    output_prefix string
    Prefix prepended to every Amazon S3 object key written by the channel.
    bucketArn String
    ARN of the destination Amazon S3 bucket.
    compressionType String
    Compression codec applied to delivered Amazon S3 objects.
    storageClass String

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    expectedBucketOwner String
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    outputKeyTemplate String
    Template that controls the Amazon S3 object key for each delivered record.
    outputPrefix String
    Prefix prepended to every Amazon S3 object key written by the channel.
    bucketArn string
    ARN of the destination Amazon S3 bucket.
    compressionType string
    Compression codec applied to delivered Amazon S3 objects.
    storageClass string

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    expectedBucketOwner string
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    outputKeyTemplate string
    Template that controls the Amazon S3 object key for each delivered record.
    outputPrefix string
    Prefix prepended to every Amazon S3 object key written by the channel.
    bucket_arn str
    ARN of the destination Amazon S3 bucket.
    compression_type str
    Compression codec applied to delivered Amazon S3 objects.
    storage_class str

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    expected_bucket_owner str
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    output_key_template str
    Template that controls the Amazon S3 object key for each delivered record.
    output_prefix str
    Prefix prepended to every Amazon S3 object key written by the channel.
    bucketArn String
    ARN of the destination Amazon S3 bucket.
    compressionType String
    Compression codec applied to delivered Amazon S3 objects.
    storageClass String

    Amazon S3 storage class for delivered objects.

    The following arguments are optional:

    expectedBucketOwner String
    12-digit AWS account ID expected to own the Amazon S3 bucket.
    outputKeyTemplate String
    Template that controls the Amazon S3 object key for each delivered record.
    outputPrefix String
    Prefix prepended to every Amazon S3 object key written by the channel.

    ChannelTimeouts, ChannelTimeoutsArgs

    Create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    Update string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    Delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    Update string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    update string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    create String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    update String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    create string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    update string
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    create str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    update str
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    create String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).
    delete String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours). Setting a timeout for a Delete operation is only applicable if changes are saved into state before the destroy operation occurs.
    update String
    A string that can be parsed as a duration consisting of numbers and unit suffixes, such as "30s" or "2h45m". Valid time units are "s" (seconds), "m" (minutes), "h" (hours).

    ChannelTopicConfiguration, ChannelTopicConfigurationArgs

    RecordConverter ChannelTopicConfigurationRecordConverter
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    TopicArn string

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    RecordSchema ChannelTopicConfigurationRecordSchema
    Schema used to validate records when the value converter requires one. See recordSchema Block below.
    RecordConverter ChannelTopicConfigurationRecordConverter
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    TopicArn string

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    RecordSchema ChannelTopicConfigurationRecordSchema
    Schema used to validate records when the value converter requires one. See recordSchema Block below.
    record_converter object
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    topic_arn string

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    record_schema object
    Schema used to validate records when the value converter requires one. See recordSchema Block below.
    recordConverter ChannelTopicConfigurationRecordConverter
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    topicArn String

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    recordSchema ChannelTopicConfigurationRecordSchema
    Schema used to validate records when the value converter requires one. See recordSchema Block below.
    recordConverter ChannelTopicConfigurationRecordConverter
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    topicArn string

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    recordSchema ChannelTopicConfigurationRecordSchema
    Schema used to validate records when the value converter requires one. See recordSchema Block below.
    record_converter ChannelTopicConfigurationRecordConverter
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    topic_arn str

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    record_schema ChannelTopicConfigurationRecordSchema
    Schema used to validate records when the value converter requires one. See recordSchema Block below.
    recordConverter Property Map
    Configuration that controls how Apache Kafka record values are deserialized for the destination. See recordConverter Block below.
    topicArn String

    ARN that uniquely identifies the topic.

    The following arguments are optional:

    recordSchema Property Map
    Schema used to validate records when the value converter requires one. See recordSchema Block below.

    ChannelTopicConfigurationRecordConverter, ChannelTopicConfigurationRecordConverterArgs

    ValueConverter string
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.
    ValueConverter string
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.
    value_converter string
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.
    valueConverter String
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.
    valueConverter string
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.
    value_converter str
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.
    valueConverter String
    Deserialization format applied to Apache Kafka record values. Valid values are BYTE_ARRAY, STRING, JSON, and JSON_SCHEMA_GSR. The icebergDestination accepts only JSON or JSON_SCHEMA_GSR; the s3Destination accepts BYTE_ARRAY, STRING, or JSON.

    ChannelTopicConfigurationRecordSchema, ChannelTopicConfigurationRecordSchemaArgs

    GsrArn string
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.
    GsrArn string
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.
    gsr_arn string
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.
    gsrArn String
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.
    gsrArn string
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.
    gsr_arn str
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.
    gsrArn String
    ARN of the AWS Glue Schema Registry schema used to validate records for the destination Apache Iceberg table.

    Import

    Identity Schema

    Required

    • arn (String) ARN of the channel.
    • clusterArn (String) ARN that uniquely identifies the cluster.

    Optional

    • accountId (String) AWS Account where this resource is managed.
    • region (String) Region where this resource is managed.

    Using pulumi import, import Managed Streaming for Kafka Channel using the arn and clusterArn. For example:

    $ pulumi import aws:msk/channel:Channel example arn:aws:kafka:us-west-2:123456789012:channel/example/279c0212-d057-4dba-9aa9-1c4e5a25bfc7-3/a1b2c3d4,arn:aws:kafka:us-west-2:123456789012:cluster/example/279c0212-d057-4dba-9aa9-1c4e5a25bfc7-3
    

    To learn more about importing existing cloud resources, see Importing resources.

    Package Details

    Repository
    AWS Classic pulumi/pulumi-aws
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the aws Terraform Provider.
    aws logo aws logo
    Viewing docs for AWS v7.48.0
    published on Tuesday, Sep 22, 2026 by Pulumi

      Try Pulumi Cloud free.
      Your team will thank you.

      Start free trial