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.CustomResource
Provides 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 <!--Start PulumiCodeChooser -->package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.s3.BucketV2; import com.pulumi.aws.s3.BucketV2Args; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; 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.s3.BucketAclV2; import com.pulumi.aws.s3.BucketAclV2Args; import com.pulumi.asset.FileArchive; import java.util.List; import java.util.ArrayList; 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 BucketV2("bucket", BucketV2Args.builder() .bucket("tf-test-bucket") .build()); final var firehoseAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .effect("Allow") .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("firehose.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var firehoseRole = new Role("firehoseRole", RoleArgs.builder() .name("firehose_test_role") .assumeRolePolicy(firehoseAssumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.json())) .build()); final var lambdaAssumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .effect("Allow") .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("lambda.amazonaws.com") .build()) .actions("sts:AssumeRole") .build()) .build()); var lambdaIam = new Role("lambdaIam", RoleArgs.builder() .name("lambda_iam") .assumeRolePolicy(lambdaAssumeRole.applyValue(getPolicyDocumentResult -> getPolicyDocumentResult.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("nodejs20.x") .build()); var extendedS3Stream = new FirehoseDeliveryStream("extendedS3Stream", FirehoseDeliveryStreamArgs.builder() .name("kinesis-firehose-extended-s3-test-stream") .destination("extended_s3") .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder() .enabled("true") .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .type("Lambda") .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(lambdaProcessor.arn().applyValue(arn -> String.format("%s:$LATEST", arn))) .build()) .build()) .build()) .build()) .build()); var bucketAcl = new BucketAclV2("bucketAcl", BucketAclV2Args.builder() .bucket(bucket.id()) .acl("private") .build()); } }
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 java.util.List; import java.util.ArrayList; 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() .name("kinesis-firehose-extended-s3-test-stream") .destination("extended_s3") .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(64) .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder() .enabled("true") .build()) .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}/") .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder() .enabled("true") .processors( FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .type("RecordDeAggregation") .parameters(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("SubRecordType") .parameterValue("JSON") .build()) .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .type("AppendDelimiterToRecord") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .type("MetadataExtraction") .parameters( FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("JsonParsingEngine") .parameterValue("JQ-1.6") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("MetadataExtractionQuery") .parameterValue("{customer_id:.customer_id}") .build()) .build()) .build()) .build()) .build()); } }
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 java.util.List; import java.util.ArrayList; 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() .name("kinesis-firehose-extended-s3-test-stream") .destination("extended_s3") .extendedS3Configuration(FirehoseDeliveryStreamExtendedS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(64) .dynamicPartitioningConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs.builder() .enabled("true") .build()) .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}/") .processingConfiguration(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs.builder() .enabled("true") .processors(FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs.builder() .type("MetadataExtraction") .parameters( FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("JsonParsingEngine") .parameterValue("JQ-1.6") .build(), FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("MetadataExtractionQuery") .parameterValue("{store_id:.store_id,customer_id:.customer_id}") .build()) .build()) .build()) .build()) .build()); } }
package 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.List; import java.util.ArrayList; 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() .name("kinesis-firehose-test-stream") .destination("redshift") .redshiftConfiguration(FirehoseDeliveryStreamRedshiftConfigurationArgs.builder() .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") .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()) .build()) .build()); } }
package 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 java.util.List; import java.util.ArrayList; 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() .name("kinesis-firehose-test-stream") .destination("elasticsearch") .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder() .domainArn(testCluster.arn()) .roleArn(firehoseRole.arn()) .indexName("test") .typeName("test") .s3Configuration(FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .processingConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs.builder() .enabled("true") .processors(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs.builder() .type("Lambda") .parameters(FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .build()) .build()) .build()) .build()); } }
package 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.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.List; import java.util.ArrayList; 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("es-test") .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()) .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() .name("kinesis-firehose-es") .destination("elasticsearch") .elasticsearchConfiguration(FirehoseDeliveryStreamElasticsearchConfigurationArgs.builder() .domainArn(testCluster.arn()) .roleArn(firehose.arn()) .indexName("test") .typeName("test") .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()) .build()) .build(), CustomResourceOptions.builder() .dependsOn(firehose_elasticsearchRolePolicy) .build()); } }
package 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 java.util.List; import java.util.ArrayList; 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() .name("kinesis-firehose-test-stream") .destination("opensearch") .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder() .domainArn(testCluster.arn()) .roleArn(firehoseRole.arn()) .indexName("test") .s3Configuration(FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .processingConfiguration(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs.builder() .enabled("true") .processors(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs.builder() .type("Lambda") .parameters(FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .build()) .build()) .build()) .build()); } }
package 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.List; import java.util.ArrayList; 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("es-test") .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()) .build()); var firehose_opensearch = new RolePolicy("firehose-opensearch", RolePolicyArgs.builder() .name("opensearch") .role(firehose.id()) .policy(Output.tuple(testCluster.arn(), testCluster.arn()).applyValue(values -> { var testClusterArn = values.t1; var testClusterArn1 = values.t2; return """ { "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": [ "*" ] } ] } ", testClusterArn,testClusterArn1); })) .build()); var test = new FirehoseDeliveryStream("test", FirehoseDeliveryStreamArgs.builder() .name("pulumi-kinesis-firehose-os") .destination("opensearch") .opensearchConfiguration(FirehoseDeliveryStreamOpensearchConfigurationArgs.builder() .domainArn(testCluster.arn()) .roleArn(firehose.arn()) .indexName("test") .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()) .build()) .build(), CustomResourceOptions.builder() .dependsOn(firehose_opensearch) .build()); } }
package 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 java.util.List; import java.util.ArrayList; 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() .name("kinesis-firehose-test-stream") .destination("opensearchserverless") .opensearchserverlessConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs.builder() .collectionEndpoint(testCollection.collectionEndpoint()) .roleArn(firehoseRole.arn()) .indexName("test") .s3Configuration(FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs.builder() .roleArn(firehoseRole.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .processingConfiguration(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs.builder() .enabled("true") .processors(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs.builder() .type("Lambda") .parameters(FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs.builder() .parameterName("LambdaArn") .parameterValue(String.format("%s:$LATEST", lambdaProcessor.arn())) .build()) .build()) .build()) .build()) .build()); } }
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.List; import java.util.ArrayList; 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() .name("kinesis-firehose-test-stream") .destination("splunk") .splunkConfiguration(FirehoseDeliveryStreamSplunkConfigurationArgs.builder() .hecEndpoint("https://http-inputs-mydomain.splunkcloud.com:443") .hecToken("51D4DA16-C61B-4F5F-8EC7-ED4301342A4A") .hecAcknowledgmentTimeout(600) .hecEndpointType("Event") .s3BackupMode("FailedEventsOnly") .s3Configuration(FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .build()) .build()); } }
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.FirehoseDeliveryStreamHttpEndpointConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs; import java.util.List; import java.util.ArrayList; 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() .name("kinesis-firehose-test-stream") .destination("http_endpoint") .httpEndpointConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationArgs.builder() .url("https://aws-api.newrelic.com/firehose/v1") .name("New Relic") .accessKey("my-key") .bufferingSize(15) .bufferingInterval(600) .roleArn(firehose.arn()) .s3BackupMode("FailedDataOnly") .s3Configuration(FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .requestConfiguration(FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs.builder() .contentEncoding("GZIP") .commonAttributes( FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder() .name("testname") .value("testvalue") .build(), FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs.builder() .name("testname2") .value("testvalue2") .build()) .build()) .build()) .build()); } }
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.FirehoseDeliveryStreamSnowflakeConfigurationArgs; import com.pulumi.aws.kinesis.inputs.FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs; import java.util.List; import java.util.ArrayList; 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() .name("example-snowflake-destination") .destination("snowflake") .snowflakeConfiguration(FirehoseDeliveryStreamSnowflakeConfigurationArgs.builder() .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") .s3Configuration(FirehoseDeliveryStreamSnowflakeConfigurationS3ConfigurationArgs.builder() .roleArn(firehose.arn()) .bucketArn(bucket.arn()) .bufferingSize(10) .bufferingInterval(400) .compressionFormat("GZIP") .build()) .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 FirehoseDeliveryStream
get(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<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.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:
- The Amazon Resource Name (ARN) specifying the Stream
-
destination
public com.pulumi.core.Output<java.lang.String> destination()
- Returns:
- This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extended_s3` instead), `extended_s3`, `redshift`, `elasticsearch`, `splunk`, `http_endpoint`, `opensearch`, `opensearchserverless` and `snowflake`.
-
destinationId
public com.pulumi.core.Output<java.lang.String> destinationId()
-
elasticsearchConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamElasticsearchConfiguration>> elasticsearchConfiguration()
- Returns:
- Configuration options when `destination` is `elasticsearch`. See `elasticsearch_configuration` block below for details.
-
extendedS3Configuration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamExtendedS3Configuration>> extendedS3Configuration()
- Returns:
- Enhanced configuration options for the s3 destination. See `extended_s3_configuration` block below for details.
-
httpEndpointConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamHttpEndpointConfiguration>> httpEndpointConfiguration()
- Returns:
- Configuration options when `destination` is `http_endpoint`. Requires the user to also specify an `s3_configuration` block. See `http_endpoint_configuration` block below for details.
-
kinesisSourceConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamKinesisSourceConfiguration>> kinesisSourceConfiguration()
- Returns:
- The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesis_source_configuration` block below for details.
-
mskSourceConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamMskSourceConfiguration>> mskSourceConfiguration()
- Returns:
- The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `msk_source_configuration` block below for details.
-
name
public com.pulumi.core.Output<java.lang.String> name()
- Returns:
- A 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 `opensearch_configuration` block below for details.
-
opensearchserverlessConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamOpensearchserverlessConfiguration>> opensearchserverlessConfiguration()
- Returns:
- Configuration options when `destination` is `opensearchserverless`. See `opensearchserverless_configuration` 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 `s3_configuration` block. See `redshift_configuration` block below for details.
-
serverSideEncryption
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamServerSideEncryption>> serverSideEncryption()
- Returns:
- Encrypt at rest options. See `server_side_encryption` block below for details. **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream.
-
snowflakeConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamSnowflakeConfiguration>> snowflakeConfiguration()
- Returns:
- Configuration options when `destination` is `snowflake`. See `snowflake_configuration` block below for details.
-
splunkConfiguration
public com.pulumi.core.Output<java.util.Optional<FirehoseDeliveryStreamSplunkConfiguration>> splunkConfiguration()
- Returns:
- Configuration options when `destination` is `splunk`. See `splunk_configuration` block below for details.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- A map of tags to assign to the resource. If configured with a provider `default_tags` 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:
- A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
-
versionId
public com.pulumi.core.Output<java.lang.String> versionId()
-
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.
-
-