Package com.pulumi.aws.kinesis
Class FirehoseDeliveryStream
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.kinesis.FirehoseDeliveryStream
-
public class FirehoseDeliveryStream extends com.pulumi.resources.CustomResourceProvides a Kinesis Firehose Delivery Stream resource. Amazon Kinesis Firehose is a fully managed, elastic service to easily deliver real-time data streams to destinations such as Amazon S3 , Amazon Redshift and Snowflake. For more details, see the [Amazon Kinesis Firehose Documentation](https://aws.amazon.com/documentation/firehose/). ## Example Usage ### Extended S3 Destination
### Extended S3 Destination with dynamic partitioning These examples use built-in Firehose functionality, rather than requiring a lambda.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.lambda.Function; import com.pulumi.aws.lambda.FunctionArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs; import com.pulumi.aws.s3.BucketAcl; import com.pulumi.aws.s3.BucketAclArgs; import com.pulumi.asset.FileArchive; 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 bucket = new Bucket("bucket", BucketArgs.builder() .bucket("tf-test-bucket") .build()); final var firehoseAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("firehose.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var firehoseRole = new Role("firehoseRole", RoleArgs.builder() .name("firehose_test_role") .assumeRolePolicy(firehoseAssumeRole.json()) .build()); final var lambdaAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("lambda.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var lambdaIam = new Role("lambdaIam", RoleArgs.builder() .name("lambda_iam") .assumeRolePolicy(lambdaAssumeRole.json()) .build()); var lambdaProcessor = new Function("lambdaProcessor", FunctionArgs.builder() .code(new FileArchive("lambda.zip")) .name("firehose_lambda_processor") .role(lambdaIam.arn()) .handler("exports.handler") .runtime("nodejs24.x") .build()); var extendedS3Stream = new FirehoseDeliveryStream("extendedS3Stream", FirehoseDeliveryStreamArgs.builder() .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder() .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(lambdaProcessor.arn().applyValue(_arn -> String.format("%s:$LATEST", _arn))) .build()) .type("Lambda") .build()) .enabled(true) .build()) .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .build()) .name("kinesis-firehose-extended-s3-test-stream") .destination("extended_s3") .build()); var bucketAcl = new BucketAcl("bucketAcl", BucketAclArgs.builder() .bucket(bucket.id()) .acl("private") .build()); } }
Multiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameterValue`. The following example adds the Dynamic Partitioning Keys: `storeId` and `customerId` to the S3 prefix.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs; 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 extendedS3Stream = new FirehoseDeliveryStream("extendedS3Stream", FirehoseDeliveryStreamArgs.builder() .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder() .enabled(true) .build()) .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder() .processors( FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("SubRecordType") .parameterValue("JSON") .build()) .type("RecordDeAggregation") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .type("AppendDelimiterToRecord") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .parameters( FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("JsonParsingEngine") .parameterValue("JQ-1.6") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("MetadataExtractionQuery") .parameterValue("{customer_id:.customer_id}") .build()) .type("MetadataExtraction") .build()) .enabled(true) .build()) .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(64) .prefix("data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/") .errorOutputPrefix("errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/") .build()) .name("kinesis-firehose-extended-s3-test-stream") .destination("extended_s3") .build()); } }
### Redshift Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs; 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 extendedS3Stream = new FirehoseDeliveryStream("extendedS3Stream", FirehoseDeliveryStreamArgs.builder() .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder() .enabled(true) .build()) .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder() .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .parameters( FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("JsonParsingEngine") .parameterValue("JQ-1.6") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("MetadataExtractionQuery") .parameterValue("{store_id:.store_id,customer_id:.customer_id}") .build()) .type("MetadataExtraction") .build()) .enabled(true) .build()) .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(64) .prefix("data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/") .errorOutputPrefix("errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/") .build()) .name("kinesis-firehose-extended-s3-test-stream") .destination("extended_s3") .build()); } }
### Elasticsearch Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.redshift.Cluster; import com.pulumi.aws.redshift.ClusterArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs; 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 testCluster = new Cluster("testCluster", ClusterArgs.builder() .clusterIdentifier("tf-redshift-cluster") .databaseName("test") .masterUsername("testuser") .masterPassword("T3stPass") .nodeType("dc1.large") .clusterType("single-node") .build()); var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .redshiftConfiguration(FirehoseDeliveryStreamRedshiftConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .s3BackupConfiguration(FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(15) .bufferingInterval(300) .compressionFormat("GZIP") .build()) .roleArn(firehoseRole.arn()) .clusterJdbcurl(Output.tuple(testCluster.endpoint(), testCluster.databaseName()).applyValue(values -> { var endpoint = values.t1; var databaseName = values.t2; return String.format("jdbc:redshift://%s/%s", endpoint,databaseName); })) .username("testuser") .password("T3stPass") .dataTableName("test-table") .copyOptions("delimiter '|'") .dataTableColumns("test-col") .s3BackupMode("Enabled") .build()) .name("kinesis-firehose-test-stream") .destination("redshift") .build()); } }
### Elasticsearch Destination With VPCpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.elasticsearch.Domain; import com.pulumi.aws.elasticsearch.DomainArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs; 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 testCluster = new Domain("testCluster", DomainArgs.builder() .domainName("firehose-es-test") .build()); var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .processingConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs.builder() .processors(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.builder() .parameters(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .type("Lambda") .build()) .enabled(true) .build()) .domainArn(testCluster.arn()) .roleArn(firehoseRole.arn()) .indexName("test") .typeName("test") .build()) .name("kinesis-firehose-test-stream") .destination("elasticsearch") .build()); } }
### OpenSearch Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.elasticsearch.Domain; import com.pulumi.aws.elasticsearch.DomainArgs; import com.pulumi.aws.elasticsearch.inputs.DomainClusterConfigArgs; import com.pulumi.aws.elasticsearch.inputs.DomainEbsOptionsArgs; import com.pulumi.aws.elasticsearch.inputs.DomainVpcOptionsArgs; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.RolePolicy; import com.pulumi.aws.iam.RolePolicyArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs; import com.pulumi.resources.CustomResourceOptions; 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 testCluster = new Domain("testCluster", DomainArgs.builder() .clusterConfig(DomainClusterConfigArgs.builder() .instanceCount(2) .zoneAwarenessEnabled(true) .instanceType("t2.small.elasticsearch") .build()) .ebsOptions(DomainEbsOptionsArgs.builder() .ebsEnabled(true) .volumeSize(10) .build()) .vpcOptions(DomainVpcOptionsArgs.builder() .securityGroupIds(first.id()) .subnetIds( firstAwsSubnet.id(), second.id()) .build()) .domainName("es-test") .build()); final var firehose-elasticsearch = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements( GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions("es:*") .resources( testCluster.arn(), testCluster.arn().applyValue(_arn -> String.format("%s/*", _arn))) .build(), GetPolicyDocumentStatementArgs.builder() .effect("Allow") .actions( "ec2:DescribeVpcs", "ec2:DescribeVpcAttribute", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface") .resources("*") .build()) .build()); var firehose_elasticsearchRolePolicy = new RolePolicy("firehose-elasticsearchRolePolicy", RolePolicyArgs.builder() .name("elasticsearch") .role(firehose.id()) .policy(firehose_elasticsearch.applyValue(_firehose_elasticsearch -> _firehose_elasticsearch.json())) .build()); var test = new FirehoseDeliveryStream("test", FirehoseDeliveryStreamArgs.builder() .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .build()) .vpcConfig(FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs.builder() .subnetIds( firstAwsSubnet.id(), second.id()) .securityGroupIds(first.id()) .roleArn(firehose.arn()) .build()) .domainArn(testCluster.arn()) .roleArn(firehose.arn()) .indexName("test") .typeName("test") .build()) .name("kinesis-firehose-es") .destination("elasticsearch") .build(), CustomResourceOptions.builder() .dependsOn(firehose_elasticsearchRolePolicy) .build()); } }
### OpenSearch Destination With VPCpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.Domain; import com.pulumi.aws.opensearch.DomainArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs; 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 testCluster = new Domain("testCluster", DomainArgs.builder() .domainName("firehose-os-test") .build()); var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .processingConfiguration(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs.builder() .processors(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.builder() .parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .type("Lambda") .build()) .enabled(true) .build()) .domainArn(testCluster.arn()) .roleArn(firehoseRole.arn()) .indexName("test") .build()) .name("kinesis-firehose-test-stream") .destination("opensearch") .build()); } }
### OpenSearch Serverless Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.Domain; import com.pulumi.aws.opensearch.DomainArgs; import com.pulumi.aws.opensearch.inputs.DomainClusterConfigArgs; import com.pulumi.aws.opensearch.inputs.DomainEbsOptionsArgs; import com.pulumi.aws.opensearch.inputs.DomainVpcOptionsArgs; import com.pulumi.aws.iam.RolePolicy; import com.pulumi.aws.iam.RolePolicyArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs; import com.pulumi.resources.CustomResourceOptions; 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 testCluster = new Domain("testCluster", DomainArgs.builder() .clusterConfig(DomainClusterConfigArgs.builder() .instanceCount(2) .zoneAwarenessEnabled(true) .instanceType("m4.large.search") .build()) .ebsOptions(DomainEbsOptionsArgs.builder() .ebsEnabled(true) .volumeSize(10) .build()) .vpcOptions(DomainVpcOptionsArgs.builder() .securityGroupIds(first.id()) .subnetIds( firstAwsSubnet.id(), second.id()) .build()) .domainName("es-test") .build()); var firehose_opensearch = new RolePolicy("firehose-opensearch", RolePolicyArgs.builder() .name("opensearch") .role(firehose.id()) .policy(testCluster.arn().applyValue(_arn -> """ { \"Version\": \"2012-10-17\", \"Statement\": [ { \"Effect\": \"Allow\", \"Action\": [ \"es:*\" ], \"Resource\": [ \"%s\", \"%s/*\" ] }, { \"Effect\": \"Allow\", \"Action\": [ \"ec2:DescribeVpcs\", \"ec2:DescribeVpcAttribute\", \"ec2:DescribeSubnets\", \"ec2:DescribeSecurityGroups\", \"ec2:DescribeNetworkInterfaces\", \"ec2:CreateNetworkInterface\", \"ec2:CreateNetworkInterfacePermission\", \"ec2:DeleteNetworkInterface\" ], \"Resource\": [ \"*\" ] } ] } ", _arn,_arn))) .build()); var test = new FirehoseDeliveryStream("test", FirehoseDeliveryStreamArgs.builder() .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .build()) .vpcConfig(FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs.builder() .subnetIds( firstAwsSubnet.id(), second.id()) .securityGroupIds(first.id()) .roleArn(firehose.arn()) .build()) .domainArn(testCluster.arn()) .roleArn(firehose.arn()) .indexName("test") .build()) .name("pulumi-kinesis-firehose-os") .destination("opensearch") .build(), CustomResourceOptions.builder() .dependsOn(firehose_opensearch) .build()); } }
### Iceberg Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.opensearch.ServerlessCollection; import com.pulumi.aws.opensearch.ServerlessCollectionArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs; 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 testCollection = new ServerlessCollection("testCollection", ServerlessCollectionArgs.builder() .name("firehose-osserverless-test") .build()); var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.builder() .processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.builder() .parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .type("Lambda") .build()) .enabled(true) .build()) .collectionEndpoint(testCollection.collectionEndpoint()) .roleArn(firehoseRole.arn()) .indexName("test") .build()) .name("kinesis-firehose-test-stream") .destination("opensearchserverless") .build()); } }
### Splunk Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.AwsFunctions; import com.pulumi.aws.inputs.GetCallerIdentityArgs; import com.pulumi.aws.inputs.GetPartitionArgs; import com.pulumi.aws.inputs.GetRegionArgs; import com.pulumi.aws.s3.Bucket; import com.pulumi.aws.s3.BucketArgs; import com.pulumi.aws.glue.CatalogDatabase; import com.pulumi.aws.glue.CatalogDatabaseArgs; import com.pulumi.aws.glue.CatalogTable; import com.pulumi.aws.glue.CatalogTableArgs; import com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputArgs; import com.pulumi.aws.glue.inputs.CatalogTableOpenTableFormatInputIcebergInputArgs; import com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorArgs; import com.pulumi.aws.glue.inputs.CatalogTableStorageDescriptorColumnArgs; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs; 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) { final var current = AwsFunctions.getCallerIdentity(GetCallerIdentityArgs.builder() .build()); final var currentGetPartition = AwsFunctions.getPartition(GetPartitionArgs.builder() .build()); final var currentGetRegion = AwsFunctions.getRegion(GetRegionArgs.builder() .build()); var bucket = new Bucket("bucket", BucketArgs.builder() .bucket("test-bucket") .forceDestroy(true) .build()); var test = new CatalogDatabase("test", CatalogDatabaseArgs.builder() .name("test") .build()); var testCatalogTable = new CatalogTable("testCatalogTable", CatalogTableArgs.builder() .openTableFormatInput(CatalogTableOpenTableFormatInputArgs.builder() .icebergInput(CatalogTableOpenTableFormatInputIcebergInputArgs.builder() .metadataOperation("CREATE") .version("2") .build()) .build()) .storageDescriptor(CatalogTableStorageDescriptorArgs.builder() .columns(CatalogTableStorageDescriptorColumnArgs.builder() .name("my_column_1") .type("int") .build()) .location(bucket.id().applyValue(_id -> String.format("s3://%s", _id))) .build()) .name("test") .databaseName(test.name()) .parameters(Map.of("format", "parquet")) .tableType("EXTERNAL_TABLE") .build()); var testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .icebergConfiguration(FirehoseDeliveryStreamIcebergConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamIcebergConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .build()) .processingConfiguration(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationArgs.builder() .processors(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorArgs.builder() .parameters(FirehoseDeliveryStreamIcebergConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .type("Lambda") .build()) .enabled(true) .build()) .destinationTableConfigurations(FirehoseDeliveryStreamIcebergConfigurationDestinationTableConfigurationArgs.builder() .databaseName(test.name()) .tableName(testCatalogTable.name()) .build()) .roleArn(firehoseRole.arn()) .catalogArn(String.format("arn:%s:glue:%s:%s:catalog", currentGetPartition.partition(),currentGetRegion.region(),current.accountId())) .bufferingSize(10) .bufferingInterval(400) .build()) .name("kinesis-firehose-test-stream") .destination("iceberg") .build()); } }
### HTTP Endpoint (e.g., New Relic, Datadog) Destination The HTTP endpoint destination can be used with any vendor that exposes a compatible HTTP intake, including [New Relic](https://docs.newrelic.com/docs/infrastructure/amazon-integrations/connect/aws-firehose/) and [Datadog](https://docs.datadoghq.com/integrations/amazon_kinesis_data_firehose/). Refer to each vendor's documentation for the correct intake URL and authentication requirements.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs; 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 testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .splunkConfiguration(FirehoseDeliveryStreamSplunkConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .hecEndpoint("https://http-inputs-mydomain.splunkcloud.com:443") .hecToken("51D4DA16-C61B-4F5F-8EC7-ED4301342A4A") .hecAcknowledgmentTimeout(600) .hecEndpointType("Event") .s3BackupMode("FailedEventsOnly") .build()) .name("kinesis-firehose-test-stream") .destination("splunk") .build()); } }
### Snowflake Destinationpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs; 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 testStream = new FirehoseDeliveryStream("testStream", FirehoseDeliveryStreamArgs.builder() .httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .requestConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs.builder() .commonAttributes( FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder() .name("testname") .value("testvalue") .build(), FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder() .name("testname2") .value("testvalue2") .build()) .contentEncoding("GZIP") .build()) .url("https://aws-api.newrelic.com/firehose/v1") .name("New Relic") .accessKey("my-key") .bufferingSize(15) .bufferingInterval(600) .roleArn(firehose.arn()) .s3BackupMode("FailedDataOnly") .build()) .name("kinesis-firehose-test-stream") .destination("http_endpoint") .build()); } }
### Data Format Conversionpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs; 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 exampleSnowflakeDestination = new FirehoseDeliveryStream("exampleSnowflakeDestination", FirehoseDeliveryStreamArgs.builder() .snowflakeConfiguration(FirehoseDeliveryStreamSnowflakeConfigurationArgs.builder() .s3Configuration(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .accountUrl("https://example.snowflakecomputing.com") .bufferingSize(15) .bufferingInterval(600) .database("example-db") .privateKey("...") .roleArn(firehose.arn()) .schema("example-schema") .table("example-table") .user("example-usr") .build()) .name("example-snowflake-destination") .destination("snowflake") .build()); } }
## Import ### Identity Schema #### Required - `arn` (String) ARN of the delivery stream. Using `pulumi import`, import Kinesis Firehose Delivery Streams using `arn`. For example: ```sh $ pulumi import aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream example arn:aws:firehose:us-east-1:123456789012:deliverystream/example-delivery-stream ``` Note: Import does not work for stream destination `s3`. Consider using `extendedS3` since `s3` destination is deprecated.package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.kinesis.FirehoseDeliveryStream; import com.pulumi.aws.kinesis.FirehoseDeliveryStreamArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDeArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfigurationArgs; 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 FirehoseDeliveryStream("example", FirehoseDeliveryStreamArgs.builder() .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .dataFormatConversionConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationArgs.builder() .inputFormatConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationArgs.builder() .deserializer(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerArgs.builder() .hiveJsonSerDe(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationInputFormatConfigurationDeserializerHiveJsonSerDeArgs.builder() .build()) .build()) .build()) .outputFormatConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationArgs.builder() .serializer(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerArgs.builder() .orcSerDe(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationOutputFormatConfigurationSerializerOrcSerDeArgs.builder() .build()) .build()) .build()) .schemaConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDataFormatConversionConfigurationSchemaConfigurationArgs.builder() .databaseName(exampleAwsGlueCatalogTable.databaseName()) .roleArn(exampleAwsIamRole.arn()) .tableName(exampleAwsGlueCatalogTable.name()) .build()) .build()) .bufferingSize(128) .build()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description FirehoseDeliveryStream(java.lang.String name)FirehoseDeliveryStream(java.lang.String name, FirehoseDeliveryStreamArgs args)FirehoseDeliveryStream(java.lang.String name, FirehoseDeliveryStreamArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.lang.String>destination()com.pulumi.core.Output<java.lang.String>destinationId()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamElasticsearchConfiguration>>elasticsearchConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamExtendedS3Configuration>>extendedS3Configuration()static FirehoseDeliveryStreamget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, FirehoseDeliveryStreamState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamHttpEndpointConfiguration>>httpEndpointConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamIcebergConfiguration>>icebergConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamKinesisSourceConfiguration>>kinesisSourceConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamMskSourceConfiguration>>mskSourceConfiguration()com.pulumi.core.Output<java.lang.String>name()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamOpensearchConfiguration>>opensearchConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamOpensearchserverlessConfiguration>>opensearchserverlessConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamRedshiftConfiguration>>redshiftConfiguration()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamServerSideEncryption>>serverSideEncryption()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamSnowflakeConfiguration>>snowflakeConfiguration()com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamSplunkConfiguration>>splunkConfiguration()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.lang.String>versionId()
-
-
-
Constructor Detail
-
FirehoseDeliveryStream
public FirehoseDeliveryStream(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
FirehoseDeliveryStream
public FirehoseDeliveryStream(java.lang.String name, FirehoseDeliveryStreamArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
FirehoseDeliveryStream
public FirehoseDeliveryStream(java.lang.String name, FirehoseDeliveryStreamArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- ARN specifying the Stream
-
destination
public com.pulumi.core.Output<java.lang.String> destination()
- Returns:
- Destination where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch`, `opensearchserverless` and `snowflake`.
-
destinationId
public com.pulumi.core.Output<java.lang.String> destinationId()
- Returns:
- Identifier of the destination for the delivery stream.
-
elasticsearchConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamElasticsearchConfiguration>> elasticsearchConfiguration()
- Returns:
- Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details.
-
extendedS3Configuration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamExtendedS3Configuration>> extendedS3Configuration()
- Returns:
- Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details.
-
httpEndpointConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamHttpEndpointConfiguration>> httpEndpointConfiguration()
- Returns:
- Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details.
-
icebergConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamIcebergConfiguration>> icebergConfiguration()
- Returns:
- Configuration options when `destination` is `iceberg`. See `icebergConfiguration` block below for details.
-
kinesisSourceConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamKinesisSourceConfiguration>> kinesisSourceConfiguration()
- Returns:
- Stream and role ARNs for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details.
-
mskSourceConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamMskSourceConfiguration>> mskSourceConfiguration()
- Returns:
- Configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- Name to identify the stream. This is unique to the AWS account and region the Stream is created in. When using for WAF logging, name must be prefixed with `aws-waf-logs-`. See [AWS Documentation](https://docs.aws.amazon.com/waf/latest/developerguide/waf-policies.html#waf-policies-logging-config) for more details.
-
opensearchConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamOpensearchConfiguration>> opensearchConfiguration()
- Returns:
- Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details.
-
opensearchserverlessConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamOpensearchserverlessConfiguration>> opensearchserverlessConfiguration()
- Returns:
- Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details.
-
redshiftConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamRedshiftConfiguration>> redshiftConfiguration()
- Returns:
- Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
serverSideEncryption
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamServerSideEncryption>> serverSideEncryption()
- Returns:
- Encrypt at rest options. See `serverSideEncryption` block below for details.
-
snowflakeConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamSnowflakeConfiguration>> snowflakeConfiguration()
- Returns:
- Configuration options when `destination` is `snowflake`. See `snowflakeConfiguration` block below for details.
-
splunkConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamSplunkConfiguration>> splunkConfiguration()
- Returns:
- Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Map of tags to assign 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
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- Map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
versionId
public com.pulumi.core.Output<java.lang.String> versionId()
- Returns:
- Version identifier of the delivery stream. > **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream.
-
get
public static FirehoseDeliveryStream get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable FirehoseDeliveryStreamState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-