github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/kinesis/firehoseDeliveryStream.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package kinesis 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // 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 and Amazon Redshift. 16 // 17 // For more details, see the [Amazon Kinesis Firehose Documentation](https://aws.amazon.com/documentation/firehose/). 18 // 19 // ## Example Usage 20 // 21 // ### Extended S3 Destination 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "fmt" 30 // 31 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 32 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 33 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/lambda" 34 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/s3" 35 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 36 // 37 // ) 38 // 39 // func main() { 40 // pulumi.Run(func(ctx *pulumi.Context) error { 41 // bucket, err := s3.NewBucketV2(ctx, "bucket", &s3.BucketV2Args{ 42 // Bucket: pulumi.String("tf-test-bucket"), 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // firehoseAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 48 // Statements: []iam.GetPolicyDocumentStatement{ 49 // { 50 // Effect: pulumi.StringRef("Allow"), 51 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 52 // { 53 // Type: "Service", 54 // Identifiers: []string{ 55 // "firehose.amazonaws.com", 56 // }, 57 // }, 58 // }, 59 // Actions: []string{ 60 // "sts:AssumeRole", 61 // }, 62 // }, 63 // }, 64 // }, nil) 65 // if err != nil { 66 // return err 67 // } 68 // firehoseRole, err := iam.NewRole(ctx, "firehose_role", &iam.RoleArgs{ 69 // Name: pulumi.String("firehose_test_role"), 70 // AssumeRolePolicy: pulumi.String(firehoseAssumeRole.Json), 71 // }) 72 // if err != nil { 73 // return err 74 // } 75 // lambdaAssumeRole, err := iam.GetPolicyDocument(ctx, &iam.GetPolicyDocumentArgs{ 76 // Statements: []iam.GetPolicyDocumentStatement{ 77 // { 78 // Effect: pulumi.StringRef("Allow"), 79 // Principals: []iam.GetPolicyDocumentStatementPrincipal{ 80 // { 81 // Type: "Service", 82 // Identifiers: []string{ 83 // "lambda.amazonaws.com", 84 // }, 85 // }, 86 // }, 87 // Actions: []string{ 88 // "sts:AssumeRole", 89 // }, 90 // }, 91 // }, 92 // }, nil) 93 // if err != nil { 94 // return err 95 // } 96 // lambdaIam, err := iam.NewRole(ctx, "lambda_iam", &iam.RoleArgs{ 97 // Name: pulumi.String("lambda_iam"), 98 // AssumeRolePolicy: pulumi.String(lambdaAssumeRole.Json), 99 // }) 100 // if err != nil { 101 // return err 102 // } 103 // lambdaProcessor, err := lambda.NewFunction(ctx, "lambda_processor", &lambda.FunctionArgs{ 104 // Code: pulumi.NewFileArchive("lambda.zip"), 105 // Name: pulumi.String("firehose_lambda_processor"), 106 // Role: lambdaIam.Arn, 107 // Handler: pulumi.String("exports.handler"), 108 // Runtime: pulumi.String(lambda.RuntimeNodeJS16dX), 109 // }) 110 // if err != nil { 111 // return err 112 // } 113 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "extended_s3_stream", &kinesis.FirehoseDeliveryStreamArgs{ 114 // Name: pulumi.String("kinesis-firehose-extended-s3-test-stream"), 115 // Destination: pulumi.String("extended_s3"), 116 // ExtendedS3Configuration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{ 117 // RoleArn: firehoseRole.Arn, 118 // BucketArn: bucket.Arn, 119 // ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{ 120 // Enabled: pulumi.Bool(true), 121 // Processors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{ 122 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{ 123 // Type: pulumi.String("Lambda"), 124 // Parameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{ 125 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{ 126 // ParameterName: pulumi.String("LambdaArn"), 127 // ParameterValue: lambdaProcessor.Arn.ApplyT(func(arn string) (string, error) { 128 // return fmt.Sprintf("%v:$LATEST", arn), nil 129 // }).(pulumi.StringOutput), 130 // }, 131 // }, 132 // }, 133 // }, 134 // }, 135 // }, 136 // }) 137 // if err != nil { 138 // return err 139 // } 140 // _, err = s3.NewBucketAclV2(ctx, "bucket_acl", &s3.BucketAclV2Args{ 141 // Bucket: bucket.ID(), 142 // Acl: pulumi.String("private"), 143 // }) 144 // if err != nil { 145 // return err 146 // } 147 // return nil 148 // }) 149 // } 150 // 151 // ``` 152 // <!--End PulumiCodeChooser --> 153 // 154 // ### Extended S3 Destination with dynamic partitioning 155 // 156 // These examples use built-in Firehose functionality, rather than requiring a lambda. 157 // 158 // <!--Start PulumiCodeChooser --> 159 // ```go 160 // package main 161 // 162 // import ( 163 // 164 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 165 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 166 // 167 // ) 168 // 169 // func main() { 170 // pulumi.Run(func(ctx *pulumi.Context) error { 171 // _, err := kinesis.NewFirehoseDeliveryStream(ctx, "extended_s3_stream", &kinesis.FirehoseDeliveryStreamArgs{ 172 // Name: pulumi.String("kinesis-firehose-extended-s3-test-stream"), 173 // Destination: pulumi.String("extended_s3"), 174 // ExtendedS3Configuration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{ 175 // RoleArn: pulumi.Any(firehoseRole.Arn), 176 // BucketArn: pulumi.Any(bucket.Arn), 177 // BufferingSize: pulumi.Int(64), 178 // DynamicPartitioningConfiguration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{ 179 // Enabled: pulumi.Bool(true), 180 // }, 181 // Prefix: pulumi.String("data/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/"), 182 // ErrorOutputPrefix: pulumi.String("errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/"), 183 // ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{ 184 // Enabled: pulumi.Bool(true), 185 // Processors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{ 186 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{ 187 // Type: pulumi.String("RecordDeAggregation"), 188 // Parameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{ 189 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{ 190 // ParameterName: pulumi.String("SubRecordType"), 191 // ParameterValue: pulumi.String("JSON"), 192 // }, 193 // }, 194 // }, 195 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{ 196 // Type: pulumi.String("AppendDelimiterToRecord"), 197 // }, 198 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{ 199 // Type: pulumi.String("MetadataExtraction"), 200 // Parameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{ 201 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{ 202 // ParameterName: pulumi.String("JsonParsingEngine"), 203 // ParameterValue: pulumi.String("JQ-1.6"), 204 // }, 205 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{ 206 // ParameterName: pulumi.String("MetadataExtractionQuery"), 207 // ParameterValue: pulumi.String("{customer_id:.customer_id}"), 208 // }, 209 // }, 210 // }, 211 // }, 212 // }, 213 // }, 214 // }) 215 // if err != nil { 216 // return err 217 // } 218 // return nil 219 // }) 220 // } 221 // 222 // ``` 223 // <!--End PulumiCodeChooser --> 224 // 225 // Multiple Dynamic Partitioning Keys (maximum of 50) can be added by comma separating the `parameterValue`. 226 // 227 // The following example adds the Dynamic Partitioning Keys: `storeId` and `customerId` to the S3 prefix. 228 // 229 // <!--Start PulumiCodeChooser --> 230 // ```go 231 // package main 232 // 233 // import ( 234 // 235 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 236 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 237 // 238 // ) 239 // 240 // func main() { 241 // pulumi.Run(func(ctx *pulumi.Context) error { 242 // _, err := kinesis.NewFirehoseDeliveryStream(ctx, "extended_s3_stream", &kinesis.FirehoseDeliveryStreamArgs{ 243 // Name: pulumi.String("kinesis-firehose-extended-s3-test-stream"), 244 // Destination: pulumi.String("extended_s3"), 245 // ExtendedS3Configuration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationArgs{ 246 // RoleArn: pulumi.Any(firehoseRole.Arn), 247 // BucketArn: pulumi.Any(bucket.Arn), 248 // BufferingSize: pulumi.Int(64), 249 // DynamicPartitioningConfiguration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationDynamicPartitioningConfigurationArgs{ 250 // Enabled: pulumi.Bool(true), 251 // }, 252 // Prefix: pulumi.String("data/store_id=!{partitionKeyFromQuery:store_id}/customer_id=!{partitionKeyFromQuery:customer_id}/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/"), 253 // ErrorOutputPrefix: pulumi.String("errors/year=!{timestamp:yyyy}/month=!{timestamp:MM}/day=!{timestamp:dd}/hour=!{timestamp:HH}/!{firehose:error-output-type}/"), 254 // ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationArgs{ 255 // Enabled: pulumi.Bool(true), 256 // Processors: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArray{ 257 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorArgs{ 258 // Type: pulumi.String("MetadataExtraction"), 259 // Parameters: kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArray{ 260 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{ 261 // ParameterName: pulumi.String("JsonParsingEngine"), 262 // ParameterValue: pulumi.String("JQ-1.6"), 263 // }, 264 // &kinesis.FirehoseDeliveryStreamExtendedS3ConfigurationProcessingConfigurationProcessorParameterArgs{ 265 // ParameterName: pulumi.String("MetadataExtractionQuery"), 266 // ParameterValue: pulumi.String("{store_id:.store_id,customer_id:.customer_id}"), 267 // }, 268 // }, 269 // }, 270 // }, 271 // }, 272 // }, 273 // }) 274 // if err != nil { 275 // return err 276 // } 277 // return nil 278 // }) 279 // } 280 // 281 // ``` 282 // <!--End PulumiCodeChooser --> 283 // 284 // ### Redshift Destination 285 // 286 // <!--Start PulumiCodeChooser --> 287 // ```go 288 // package main 289 // 290 // import ( 291 // 292 // "fmt" 293 // 294 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 295 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/redshift" 296 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 297 // 298 // ) 299 // 300 // func main() { 301 // pulumi.Run(func(ctx *pulumi.Context) error { 302 // testCluster, err := redshift.NewCluster(ctx, "test_cluster", &redshift.ClusterArgs{ 303 // ClusterIdentifier: pulumi.String("tf-redshift-cluster"), 304 // DatabaseName: pulumi.String("test"), 305 // MasterUsername: pulumi.String("testuser"), 306 // MasterPassword: pulumi.String("T3stPass"), 307 // NodeType: pulumi.String("dc1.large"), 308 // ClusterType: pulumi.String("single-node"), 309 // }) 310 // if err != nil { 311 // return err 312 // } 313 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ 314 // Name: pulumi.String("kinesis-firehose-test-stream"), 315 // Destination: pulumi.String("redshift"), 316 // RedshiftConfiguration: &kinesis.FirehoseDeliveryStreamRedshiftConfigurationArgs{ 317 // RoleArn: pulumi.Any(firehoseRole.Arn), 318 // ClusterJdbcurl: pulumi.All(testCluster.Endpoint, testCluster.DatabaseName).ApplyT(func(_args []interface{}) (string, error) { 319 // endpoint := _args[0].(string) 320 // databaseName := _args[1].(string) 321 // return fmt.Sprintf("jdbc:redshift://%v/%v", endpoint, databaseName), nil 322 // }).(pulumi.StringOutput), 323 // Username: pulumi.String("testuser"), 324 // Password: pulumi.String("T3stPass"), 325 // DataTableName: pulumi.String("test-table"), 326 // CopyOptions: pulumi.String("delimiter '|'"), 327 // DataTableColumns: pulumi.String("test-col"), 328 // S3BackupMode: pulumi.String("Enabled"), 329 // S3Configuration: &kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3ConfigurationArgs{ 330 // RoleArn: pulumi.Any(firehoseRole.Arn), 331 // BucketArn: pulumi.Any(bucket.Arn), 332 // BufferingSize: pulumi.Int(10), 333 // BufferingInterval: pulumi.Int(400), 334 // CompressionFormat: pulumi.String("GZIP"), 335 // }, 336 // S3BackupConfiguration: &kinesis.FirehoseDeliveryStreamRedshiftConfigurationS3BackupConfigurationArgs{ 337 // RoleArn: pulumi.Any(firehoseRole.Arn), 338 // BucketArn: pulumi.Any(bucket.Arn), 339 // BufferingSize: pulumi.Int(15), 340 // BufferingInterval: pulumi.Int(300), 341 // CompressionFormat: pulumi.String("GZIP"), 342 // }, 343 // }, 344 // }) 345 // if err != nil { 346 // return err 347 // } 348 // return nil 349 // }) 350 // } 351 // 352 // ``` 353 // <!--End PulumiCodeChooser --> 354 // 355 // ### Elasticsearch Destination 356 // 357 // <!--Start PulumiCodeChooser --> 358 // ```go 359 // package main 360 // 361 // import ( 362 // 363 // "fmt" 364 // 365 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticsearch" 366 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 367 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 368 // 369 // ) 370 // 371 // func main() { 372 // pulumi.Run(func(ctx *pulumi.Context) error { 373 // testCluster, err := elasticsearch.NewDomain(ctx, "test_cluster", &elasticsearch.DomainArgs{ 374 // DomainName: pulumi.String("firehose-es-test"), 375 // }) 376 // if err != nil { 377 // return err 378 // } 379 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ 380 // Name: pulumi.String("kinesis-firehose-test-stream"), 381 // Destination: pulumi.String("elasticsearch"), 382 // ElasticsearchConfiguration: &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{ 383 // DomainArn: testCluster.Arn, 384 // RoleArn: pulumi.Any(firehoseRole.Arn), 385 // IndexName: pulumi.String("test"), 386 // TypeName: pulumi.String("test"), 387 // S3Configuration: &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{ 388 // RoleArn: pulumi.Any(firehoseRole.Arn), 389 // BucketArn: pulumi.Any(bucket.Arn), 390 // BufferingSize: pulumi.Int(10), 391 // BufferingInterval: pulumi.Int(400), 392 // CompressionFormat: pulumi.String("GZIP"), 393 // }, 394 // ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationArgs{ 395 // Enabled: pulumi.Bool(true), 396 // Processors: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArray{ 397 // &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorArgs{ 398 // Type: pulumi.String("Lambda"), 399 // Parameters: kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArray{ 400 // &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationProcessingConfigurationProcessorParameterArgs{ 401 // ParameterName: pulumi.String("LambdaArn"), 402 // ParameterValue: pulumi.String(fmt.Sprintf("%v:$LATEST", lambdaProcessor.Arn)), 403 // }, 404 // }, 405 // }, 406 // }, 407 // }, 408 // }, 409 // }) 410 // if err != nil { 411 // return err 412 // } 413 // return nil 414 // }) 415 // } 416 // 417 // ``` 418 // <!--End PulumiCodeChooser --> 419 // 420 // ### Elasticsearch Destination With VPC 421 // 422 // <!--Start PulumiCodeChooser --> 423 // ```go 424 // package main 425 // 426 // import ( 427 // 428 // "fmt" 429 // 430 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/elasticsearch" 431 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 432 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 433 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 434 // 435 // ) 436 // 437 // func main() { 438 // pulumi.Run(func(ctx *pulumi.Context) error { 439 // testCluster, err := elasticsearch.NewDomain(ctx, "test_cluster", &elasticsearch.DomainArgs{ 440 // DomainName: pulumi.String("es-test"), 441 // ClusterConfig: &elasticsearch.DomainClusterConfigArgs{ 442 // InstanceCount: pulumi.Int(2), 443 // ZoneAwarenessEnabled: pulumi.Bool(true), 444 // InstanceType: pulumi.String("t2.small.elasticsearch"), 445 // }, 446 // EbsOptions: &elasticsearch.DomainEbsOptionsArgs{ 447 // EbsEnabled: pulumi.Bool(true), 448 // VolumeSize: pulumi.Int(10), 449 // }, 450 // VpcOptions: &elasticsearch.DomainVpcOptionsArgs{ 451 // SecurityGroupIds: pulumi.StringArray{ 452 // first.Id, 453 // }, 454 // SubnetIds: pulumi.StringArray{ 455 // firstAwsSubnet.Id, 456 // second.Id, 457 // }, 458 // }, 459 // }) 460 // if err != nil { 461 // return err 462 // } 463 // firehose_elasticsearch := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ 464 // Statements: iam.GetPolicyDocumentStatementArray{ 465 // &iam.GetPolicyDocumentStatementArgs{ 466 // Effect: pulumi.String("Allow"), 467 // Actions: pulumi.StringArray{ 468 // pulumi.String("es:*"), 469 // }, 470 // Resources: pulumi.StringArray{ 471 // testCluster.Arn, 472 // testCluster.Arn.ApplyT(func(arn string) (string, error) { 473 // return fmt.Sprintf("%v/*", arn), nil 474 // }).(pulumi.StringOutput), 475 // }, 476 // }, 477 // &iam.GetPolicyDocumentStatementArgs{ 478 // Effect: pulumi.String("Allow"), 479 // Actions: pulumi.StringArray{ 480 // pulumi.String("ec2:DescribeVpcs"), 481 // pulumi.String("ec2:DescribeVpcAttribute"), 482 // pulumi.String("ec2:DescribeSubnets"), 483 // pulumi.String("ec2:DescribeSecurityGroups"), 484 // pulumi.String("ec2:DescribeNetworkInterfaces"), 485 // pulumi.String("ec2:CreateNetworkInterface"), 486 // pulumi.String("ec2:CreateNetworkInterfacePermission"), 487 // pulumi.String("ec2:DeleteNetworkInterface"), 488 // }, 489 // Resources: pulumi.StringArray{ 490 // pulumi.String("*"), 491 // }, 492 // }, 493 // }, 494 // }, nil) 495 // _, err = iam.NewRolePolicy(ctx, "firehose-elasticsearch", &iam.RolePolicyArgs{ 496 // Name: pulumi.String("elasticsearch"), 497 // Role: pulumi.Any(firehose.Id), 498 // Policy: firehose_elasticsearch.ApplyT(func(firehose_elasticsearch iam.GetPolicyDocumentResult) (*string, error) { 499 // return &firehose_elasticsearch.Json, nil 500 // }).(pulumi.StringPtrOutput), 501 // }) 502 // if err != nil { 503 // return err 504 // } 505 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test", &kinesis.FirehoseDeliveryStreamArgs{ 506 // Name: pulumi.String("kinesis-firehose-es"), 507 // Destination: pulumi.String("elasticsearch"), 508 // ElasticsearchConfiguration: &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationArgs{ 509 // DomainArn: testCluster.Arn, 510 // RoleArn: pulumi.Any(firehose.Arn), 511 // IndexName: pulumi.String("test"), 512 // TypeName: pulumi.String("test"), 513 // S3Configuration: &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationS3ConfigurationArgs{ 514 // RoleArn: pulumi.Any(firehose.Arn), 515 // BucketArn: pulumi.Any(bucket.Arn), 516 // }, 517 // VpcConfig: &kinesis.FirehoseDeliveryStreamElasticsearchConfigurationVpcConfigArgs{ 518 // SubnetIds: pulumi.StringArray{ 519 // firstAwsSubnet.Id, 520 // second.Id, 521 // }, 522 // SecurityGroupIds: pulumi.StringArray{ 523 // first.Id, 524 // }, 525 // RoleArn: pulumi.Any(firehose.Arn), 526 // }, 527 // }, 528 // }, pulumi.DependsOn([]pulumi.Resource{ 529 // firehose_elasticsearchRolePolicy, 530 // })) 531 // if err != nil { 532 // return err 533 // } 534 // return nil 535 // }) 536 // } 537 // 538 // ``` 539 // <!--End PulumiCodeChooser --> 540 // 541 // ### OpenSearch Destination 542 // 543 // <!--Start PulumiCodeChooser --> 544 // ```go 545 // package main 546 // 547 // import ( 548 // 549 // "fmt" 550 // 551 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 552 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch" 553 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 554 // 555 // ) 556 // 557 // func main() { 558 // pulumi.Run(func(ctx *pulumi.Context) error { 559 // testCluster, err := opensearch.NewDomain(ctx, "test_cluster", &opensearch.DomainArgs{ 560 // DomainName: pulumi.String("firehose-os-test"), 561 // }) 562 // if err != nil { 563 // return err 564 // } 565 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ 566 // Name: pulumi.String("kinesis-firehose-test-stream"), 567 // Destination: pulumi.String("opensearch"), 568 // OpensearchConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{ 569 // DomainArn: testCluster.Arn, 570 // RoleArn: pulumi.Any(firehoseRole.Arn), 571 // IndexName: pulumi.String("test"), 572 // S3Configuration: &kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{ 573 // RoleArn: pulumi.Any(firehoseRole.Arn), 574 // BucketArn: pulumi.Any(bucket.Arn), 575 // BufferingSize: pulumi.Int(10), 576 // BufferingInterval: pulumi.Int(400), 577 // CompressionFormat: pulumi.String("GZIP"), 578 // }, 579 // ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationArgs{ 580 // Enabled: pulumi.Bool(true), 581 // Processors: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArray{ 582 // &kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorArgs{ 583 // Type: pulumi.String("Lambda"), 584 // Parameters: kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArray{ 585 // &kinesis.FirehoseDeliveryStreamOpensearchConfigurationProcessingConfigurationProcessorParameterArgs{ 586 // ParameterName: pulumi.String("LambdaArn"), 587 // ParameterValue: pulumi.String(fmt.Sprintf("%v:$LATEST", lambdaProcessor.Arn)), 588 // }, 589 // }, 590 // }, 591 // }, 592 // }, 593 // }, 594 // }) 595 // if err != nil { 596 // return err 597 // } 598 // return nil 599 // }) 600 // } 601 // 602 // ``` 603 // <!--End PulumiCodeChooser --> 604 // 605 // ### OpenSearch Destination With VPC 606 // 607 // <!--Start PulumiCodeChooser --> 608 // ```go 609 // package main 610 // 611 // import ( 612 // 613 // "fmt" 614 // 615 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 616 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 617 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch" 618 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 619 // 620 // ) 621 // 622 // func main() { 623 // pulumi.Run(func(ctx *pulumi.Context) error { 624 // testCluster, err := opensearch.NewDomain(ctx, "test_cluster", &opensearch.DomainArgs{ 625 // DomainName: pulumi.String("es-test"), 626 // ClusterConfig: &opensearch.DomainClusterConfigArgs{ 627 // InstanceCount: pulumi.Int(2), 628 // ZoneAwarenessEnabled: pulumi.Bool(true), 629 // InstanceType: pulumi.String("m4.large.search"), 630 // }, 631 // EbsOptions: &opensearch.DomainEbsOptionsArgs{ 632 // EbsEnabled: pulumi.Bool(true), 633 // VolumeSize: pulumi.Int(10), 634 // }, 635 // VpcOptions: &opensearch.DomainVpcOptionsArgs{ 636 // SecurityGroupIds: pulumi.StringArray{ 637 // first.Id, 638 // }, 639 // SubnetIds: pulumi.StringArray{ 640 // firstAwsSubnet.Id, 641 // second.Id, 642 // }, 643 // }, 644 // }) 645 // if err != nil { 646 // return err 647 // } 648 // _, err = iam.NewRolePolicy(ctx, "firehose-opensearch", &iam.RolePolicyArgs{ 649 // Name: pulumi.String("opensearch"), 650 // Role: pulumi.Any(firehose.Id), 651 // Policy: pulumi.All(testCluster.Arn, testCluster.Arn).ApplyT(func(_args []interface{}) (string, error) { 652 // testClusterArn := _args[0].(string) 653 // testClusterArn1 := _args[1].(string) 654 // return fmt.Sprintf(`{ 655 // "Version": "2012-10-17", 656 // "Statement": [ 657 // { 658 // "Effect": "Allow", 659 // "Action": [ 660 // "es:*" 661 // ], 662 // "Resource": [ 663 // "%v", 664 // "%v/*" 665 // ] 666 // }, 667 // { 668 // "Effect": "Allow", 669 // "Action": [ 670 // "ec2:DescribeVpcs", 671 // "ec2:DescribeVpcAttribute", 672 // "ec2:DescribeSubnets", 673 // "ec2:DescribeSecurityGroups", 674 // "ec2:DescribeNetworkInterfaces", 675 // "ec2:CreateNetworkInterface", 676 // "ec2:CreateNetworkInterfacePermission", 677 // "ec2:DeleteNetworkInterface" 678 // ], 679 // "Resource": [ 680 // "*" 681 // ] 682 // } 683 // ] 684 // } 685 // 686 // `, testClusterArn, testClusterArn1), nil 687 // 688 // }).(pulumi.StringOutput), 689 // }) 690 // if err != nil { 691 // return err 692 // } 693 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test", &kinesis.FirehoseDeliveryStreamArgs{ 694 // Name: pulumi.String("pulumi-kinesis-firehose-os"), 695 // Destination: pulumi.String("opensearch"), 696 // OpensearchConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchConfigurationArgs{ 697 // DomainArn: testCluster.Arn, 698 // RoleArn: pulumi.Any(firehose.Arn), 699 // IndexName: pulumi.String("test"), 700 // S3Configuration: &kinesis.FirehoseDeliveryStreamOpensearchConfigurationS3ConfigurationArgs{ 701 // RoleArn: pulumi.Any(firehose.Arn), 702 // BucketArn: pulumi.Any(bucket.Arn), 703 // }, 704 // VpcConfig: &kinesis.FirehoseDeliveryStreamOpensearchConfigurationVpcConfigArgs{ 705 // SubnetIds: pulumi.StringArray{ 706 // firstAwsSubnet.Id, 707 // second.Id, 708 // }, 709 // SecurityGroupIds: pulumi.StringArray{ 710 // first.Id, 711 // }, 712 // RoleArn: pulumi.Any(firehose.Arn), 713 // }, 714 // }, 715 // }, pulumi.DependsOn([]pulumi.Resource{ 716 // firehose_opensearch, 717 // })) 718 // if err != nil { 719 // return err 720 // } 721 // return nil 722 // }) 723 // } 724 // 725 // ``` 726 // <!--End PulumiCodeChooser --> 727 // 728 // ### OpenSearch Serverless Destination 729 // 730 // <!--Start PulumiCodeChooser --> 731 // ```go 732 // package main 733 // 734 // import ( 735 // 736 // "fmt" 737 // 738 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 739 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/opensearch" 740 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 741 // 742 // ) 743 // 744 // func main() { 745 // pulumi.Run(func(ctx *pulumi.Context) error { 746 // testCollection, err := opensearch.NewServerlessCollection(ctx, "test_collection", &opensearch.ServerlessCollectionArgs{ 747 // Name: pulumi.String("firehose-osserverless-test"), 748 // }) 749 // if err != nil { 750 // return err 751 // } 752 // _, err = kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ 753 // Name: pulumi.String("kinesis-firehose-test-stream"), 754 // Destination: pulumi.String("opensearchserverless"), 755 // OpensearchserverlessConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationArgs{ 756 // CollectionEndpoint: testCollection.CollectionEndpoint, 757 // RoleArn: pulumi.Any(firehoseRole.Arn), 758 // IndexName: pulumi.String("test"), 759 // S3Configuration: &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationS3ConfigurationArgs{ 760 // RoleArn: pulumi.Any(firehoseRole.Arn), 761 // BucketArn: pulumi.Any(bucket.Arn), 762 // BufferingSize: pulumi.Int(10), 763 // BufferingInterval: pulumi.Int(400), 764 // CompressionFormat: pulumi.String("GZIP"), 765 // }, 766 // ProcessingConfiguration: &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationArgs{ 767 // Enabled: pulumi.Bool(true), 768 // Processors: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArray{ 769 // &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorArgs{ 770 // Type: pulumi.String("Lambda"), 771 // Parameters: kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArray{ 772 // &kinesis.FirehoseDeliveryStreamOpensearchserverlessConfigurationProcessingConfigurationProcessorParameterArgs{ 773 // ParameterName: pulumi.String("LambdaArn"), 774 // ParameterValue: pulumi.String(fmt.Sprintf("%v:$LATEST", lambdaProcessor.Arn)), 775 // }, 776 // }, 777 // }, 778 // }, 779 // }, 780 // }, 781 // }) 782 // if err != nil { 783 // return err 784 // } 785 // return nil 786 // }) 787 // } 788 // 789 // ``` 790 // <!--End PulumiCodeChooser --> 791 // 792 // ### Splunk Destination 793 // 794 // <!--Start PulumiCodeChooser --> 795 // ```go 796 // package main 797 // 798 // import ( 799 // 800 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 801 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 802 // 803 // ) 804 // 805 // func main() { 806 // pulumi.Run(func(ctx *pulumi.Context) error { 807 // _, err := kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ 808 // Name: pulumi.String("kinesis-firehose-test-stream"), 809 // Destination: pulumi.String("splunk"), 810 // SplunkConfiguration: &kinesis.FirehoseDeliveryStreamSplunkConfigurationArgs{ 811 // HecEndpoint: pulumi.String("https://http-inputs-mydomain.splunkcloud.com:443"), 812 // HecToken: pulumi.String("51D4DA16-C61B-4F5F-8EC7-ED4301342A4A"), 813 // HecAcknowledgmentTimeout: pulumi.Int(600), 814 // HecEndpointType: pulumi.String("Event"), 815 // S3BackupMode: pulumi.String("FailedEventsOnly"), 816 // S3Configuration: &kinesis.FirehoseDeliveryStreamSplunkConfigurationS3ConfigurationArgs{ 817 // RoleArn: pulumi.Any(firehose.Arn), 818 // BucketArn: pulumi.Any(bucket.Arn), 819 // BufferingSize: pulumi.Int(10), 820 // BufferingInterval: pulumi.Int(400), 821 // CompressionFormat: pulumi.String("GZIP"), 822 // }, 823 // }, 824 // }) 825 // if err != nil { 826 // return err 827 // } 828 // return nil 829 // }) 830 // } 831 // 832 // ``` 833 // <!--End PulumiCodeChooser --> 834 // 835 // ### HTTP Endpoint (e.g., New Relic) Destination 836 // 837 // <!--Start PulumiCodeChooser --> 838 // ```go 839 // package main 840 // 841 // import ( 842 // 843 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kinesis" 844 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 845 // 846 // ) 847 // 848 // func main() { 849 // pulumi.Run(func(ctx *pulumi.Context) error { 850 // _, err := kinesis.NewFirehoseDeliveryStream(ctx, "test_stream", &kinesis.FirehoseDeliveryStreamArgs{ 851 // Name: pulumi.String("kinesis-firehose-test-stream"), 852 // Destination: pulumi.String("http_endpoint"), 853 // HttpEndpointConfiguration: &kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationArgs{ 854 // Url: pulumi.String("https://aws-api.newrelic.com/firehose/v1"), 855 // Name: pulumi.String("New Relic"), 856 // AccessKey: pulumi.String("my-key"), 857 // BufferingSize: pulumi.Int(15), 858 // BufferingInterval: pulumi.Int(600), 859 // RoleArn: pulumi.Any(firehose.Arn), 860 // S3BackupMode: pulumi.String("FailedDataOnly"), 861 // S3Configuration: &kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationS3ConfigurationArgs{ 862 // RoleArn: pulumi.Any(firehose.Arn), 863 // BucketArn: pulumi.Any(bucket.Arn), 864 // BufferingSize: pulumi.Int(10), 865 // BufferingInterval: pulumi.Int(400), 866 // CompressionFormat: pulumi.String("GZIP"), 867 // }, 868 // RequestConfiguration: &kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationArgs{ 869 // ContentEncoding: pulumi.String("GZIP"), 870 // CommonAttributes: kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArray{ 871 // &kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{ 872 // Name: pulumi.String("testname"), 873 // Value: pulumi.String("testvalue"), 874 // }, 875 // &kinesis.FirehoseDeliveryStreamHttpEndpointConfigurationRequestConfigurationCommonAttributeArgs{ 876 // Name: pulumi.String("testname2"), 877 // Value: pulumi.String("testvalue2"), 878 // }, 879 // }, 880 // }, 881 // }, 882 // }) 883 // if err != nil { 884 // return err 885 // } 886 // return nil 887 // }) 888 // } 889 // 890 // ``` 891 // <!--End PulumiCodeChooser --> 892 // 893 // ## Import 894 // 895 // Using `pulumi import`, import Kinesis Firehose Delivery streams using the stream ARN. For example: 896 // 897 // ```sh 898 // $ pulumi import aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream foo arn:aws:firehose:us-east-1:XXX:deliverystream/example 899 // ``` 900 // Note: Import does not work for stream destination `s3`. Consider using `extended_s3` since `s3` destination is deprecated. 901 type FirehoseDeliveryStream struct { 902 pulumi.CustomResourceState 903 904 // The Amazon Resource Name (ARN) specifying the Stream 905 Arn pulumi.StringOutput `pulumi:"arn"` 906 // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. 907 Destination pulumi.StringOutput `pulumi:"destination"` 908 DestinationId pulumi.StringOutput `pulumi:"destinationId"` 909 // Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details. 910 ElasticsearchConfiguration FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput `pulumi:"elasticsearchConfiguration"` 911 // Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details. 912 ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput `pulumi:"extendedS3Configuration"` 913 // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. 914 HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput `pulumi:"httpEndpointConfiguration"` 915 // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. 916 KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput `pulumi:"kinesisSourceConfiguration"` 917 // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. 918 MskSourceConfiguration FirehoseDeliveryStreamMskSourceConfigurationPtrOutput `pulumi:"mskSourceConfiguration"` 919 // 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. 920 Name pulumi.StringOutput `pulumi:"name"` 921 // Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details. 922 OpensearchConfiguration FirehoseDeliveryStreamOpensearchConfigurationPtrOutput `pulumi:"opensearchConfiguration"` 923 // Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details. 924 OpensearchserverlessConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput `pulumi:"opensearchserverlessConfiguration"` 925 // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details. 926 RedshiftConfiguration FirehoseDeliveryStreamRedshiftConfigurationPtrOutput `pulumi:"redshiftConfiguration"` 927 // Encrypt at rest options. See `serverSideEncryption` block below for details. 928 // 929 // **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. 930 ServerSideEncryption FirehoseDeliveryStreamServerSideEncryptionPtrOutput `pulumi:"serverSideEncryption"` 931 // Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details. 932 SplunkConfiguration FirehoseDeliveryStreamSplunkConfigurationPtrOutput `pulumi:"splunkConfiguration"` 933 // A 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. 934 Tags pulumi.StringMapOutput `pulumi:"tags"` 935 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 936 // 937 // Deprecated: Please use `tags` instead. 938 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 939 // Specifies the table version for the output data schema. Defaults to `LATEST`. 940 VersionId pulumi.StringOutput `pulumi:"versionId"` 941 } 942 943 // NewFirehoseDeliveryStream registers a new resource with the given unique name, arguments, and options. 944 func NewFirehoseDeliveryStream(ctx *pulumi.Context, 945 name string, args *FirehoseDeliveryStreamArgs, opts ...pulumi.ResourceOption) (*FirehoseDeliveryStream, error) { 946 if args == nil { 947 return nil, errors.New("missing one or more required arguments") 948 } 949 950 if args.Destination == nil { 951 return nil, errors.New("invalid value for required argument 'Destination'") 952 } 953 opts = internal.PkgResourceDefaultOpts(opts) 954 var resource FirehoseDeliveryStream 955 err := ctx.RegisterResource("aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream", name, args, &resource, opts...) 956 if err != nil { 957 return nil, err 958 } 959 return &resource, nil 960 } 961 962 // GetFirehoseDeliveryStream gets an existing FirehoseDeliveryStream resource's state with the given name, ID, and optional 963 // state properties that are used to uniquely qualify the lookup (nil if not required). 964 func GetFirehoseDeliveryStream(ctx *pulumi.Context, 965 name string, id pulumi.IDInput, state *FirehoseDeliveryStreamState, opts ...pulumi.ResourceOption) (*FirehoseDeliveryStream, error) { 966 var resource FirehoseDeliveryStream 967 err := ctx.ReadResource("aws:kinesis/firehoseDeliveryStream:FirehoseDeliveryStream", name, id, state, &resource, opts...) 968 if err != nil { 969 return nil, err 970 } 971 return &resource, nil 972 } 973 974 // Input properties used for looking up and filtering FirehoseDeliveryStream resources. 975 type firehoseDeliveryStreamState struct { 976 // The Amazon Resource Name (ARN) specifying the Stream 977 Arn *string `pulumi:"arn"` 978 // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. 979 Destination *string `pulumi:"destination"` 980 DestinationId *string `pulumi:"destinationId"` 981 // Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details. 982 ElasticsearchConfiguration *FirehoseDeliveryStreamElasticsearchConfiguration `pulumi:"elasticsearchConfiguration"` 983 // Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details. 984 ExtendedS3Configuration *FirehoseDeliveryStreamExtendedS3Configuration `pulumi:"extendedS3Configuration"` 985 // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. 986 HttpEndpointConfiguration *FirehoseDeliveryStreamHttpEndpointConfiguration `pulumi:"httpEndpointConfiguration"` 987 // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. 988 KinesisSourceConfiguration *FirehoseDeliveryStreamKinesisSourceConfiguration `pulumi:"kinesisSourceConfiguration"` 989 // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. 990 MskSourceConfiguration *FirehoseDeliveryStreamMskSourceConfiguration `pulumi:"mskSourceConfiguration"` 991 // 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. 992 Name *string `pulumi:"name"` 993 // Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details. 994 OpensearchConfiguration *FirehoseDeliveryStreamOpensearchConfiguration `pulumi:"opensearchConfiguration"` 995 // Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details. 996 OpensearchserverlessConfiguration *FirehoseDeliveryStreamOpensearchserverlessConfiguration `pulumi:"opensearchserverlessConfiguration"` 997 // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details. 998 RedshiftConfiguration *FirehoseDeliveryStreamRedshiftConfiguration `pulumi:"redshiftConfiguration"` 999 // Encrypt at rest options. See `serverSideEncryption` block below for details. 1000 // 1001 // **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. 1002 ServerSideEncryption *FirehoseDeliveryStreamServerSideEncryption `pulumi:"serverSideEncryption"` 1003 // Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details. 1004 SplunkConfiguration *FirehoseDeliveryStreamSplunkConfiguration `pulumi:"splunkConfiguration"` 1005 // A 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. 1006 Tags map[string]string `pulumi:"tags"` 1007 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 1008 // 1009 // Deprecated: Please use `tags` instead. 1010 TagsAll map[string]string `pulumi:"tagsAll"` 1011 // Specifies the table version for the output data schema. Defaults to `LATEST`. 1012 VersionId *string `pulumi:"versionId"` 1013 } 1014 1015 type FirehoseDeliveryStreamState struct { 1016 // The Amazon Resource Name (ARN) specifying the Stream 1017 Arn pulumi.StringPtrInput 1018 // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. 1019 Destination pulumi.StringPtrInput 1020 DestinationId pulumi.StringPtrInput 1021 // Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details. 1022 ElasticsearchConfiguration FirehoseDeliveryStreamElasticsearchConfigurationPtrInput 1023 // Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details. 1024 ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrInput 1025 // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. 1026 HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrInput 1027 // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. 1028 KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput 1029 // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. 1030 MskSourceConfiguration FirehoseDeliveryStreamMskSourceConfigurationPtrInput 1031 // 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. 1032 Name pulumi.StringPtrInput 1033 // Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details. 1034 OpensearchConfiguration FirehoseDeliveryStreamOpensearchConfigurationPtrInput 1035 // Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details. 1036 OpensearchserverlessConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput 1037 // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details. 1038 RedshiftConfiguration FirehoseDeliveryStreamRedshiftConfigurationPtrInput 1039 // Encrypt at rest options. See `serverSideEncryption` block below for details. 1040 // 1041 // **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. 1042 ServerSideEncryption FirehoseDeliveryStreamServerSideEncryptionPtrInput 1043 // Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details. 1044 SplunkConfiguration FirehoseDeliveryStreamSplunkConfigurationPtrInput 1045 // A 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. 1046 Tags pulumi.StringMapInput 1047 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 1048 // 1049 // Deprecated: Please use `tags` instead. 1050 TagsAll pulumi.StringMapInput 1051 // Specifies the table version for the output data schema. Defaults to `LATEST`. 1052 VersionId pulumi.StringPtrInput 1053 } 1054 1055 func (FirehoseDeliveryStreamState) ElementType() reflect.Type { 1056 return reflect.TypeOf((*firehoseDeliveryStreamState)(nil)).Elem() 1057 } 1058 1059 type firehoseDeliveryStreamArgs struct { 1060 // The Amazon Resource Name (ARN) specifying the Stream 1061 Arn *string `pulumi:"arn"` 1062 // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. 1063 Destination string `pulumi:"destination"` 1064 DestinationId *string `pulumi:"destinationId"` 1065 // Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details. 1066 ElasticsearchConfiguration *FirehoseDeliveryStreamElasticsearchConfiguration `pulumi:"elasticsearchConfiguration"` 1067 // Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details. 1068 ExtendedS3Configuration *FirehoseDeliveryStreamExtendedS3Configuration `pulumi:"extendedS3Configuration"` 1069 // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. 1070 HttpEndpointConfiguration *FirehoseDeliveryStreamHttpEndpointConfiguration `pulumi:"httpEndpointConfiguration"` 1071 // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. 1072 KinesisSourceConfiguration *FirehoseDeliveryStreamKinesisSourceConfiguration `pulumi:"kinesisSourceConfiguration"` 1073 // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. 1074 MskSourceConfiguration *FirehoseDeliveryStreamMskSourceConfiguration `pulumi:"mskSourceConfiguration"` 1075 // 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. 1076 Name *string `pulumi:"name"` 1077 // Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details. 1078 OpensearchConfiguration *FirehoseDeliveryStreamOpensearchConfiguration `pulumi:"opensearchConfiguration"` 1079 // Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details. 1080 OpensearchserverlessConfiguration *FirehoseDeliveryStreamOpensearchserverlessConfiguration `pulumi:"opensearchserverlessConfiguration"` 1081 // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details. 1082 RedshiftConfiguration *FirehoseDeliveryStreamRedshiftConfiguration `pulumi:"redshiftConfiguration"` 1083 // Encrypt at rest options. See `serverSideEncryption` block below for details. 1084 // 1085 // **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. 1086 ServerSideEncryption *FirehoseDeliveryStreamServerSideEncryption `pulumi:"serverSideEncryption"` 1087 // Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details. 1088 SplunkConfiguration *FirehoseDeliveryStreamSplunkConfiguration `pulumi:"splunkConfiguration"` 1089 // A 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. 1090 Tags map[string]string `pulumi:"tags"` 1091 // Specifies the table version for the output data schema. Defaults to `LATEST`. 1092 VersionId *string `pulumi:"versionId"` 1093 } 1094 1095 // The set of arguments for constructing a FirehoseDeliveryStream resource. 1096 type FirehoseDeliveryStreamArgs struct { 1097 // The Amazon Resource Name (ARN) specifying the Stream 1098 Arn pulumi.StringPtrInput 1099 // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. 1100 Destination pulumi.StringInput 1101 DestinationId pulumi.StringPtrInput 1102 // Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details. 1103 ElasticsearchConfiguration FirehoseDeliveryStreamElasticsearchConfigurationPtrInput 1104 // Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details. 1105 ExtendedS3Configuration FirehoseDeliveryStreamExtendedS3ConfigurationPtrInput 1106 // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. 1107 HttpEndpointConfiguration FirehoseDeliveryStreamHttpEndpointConfigurationPtrInput 1108 // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. 1109 KinesisSourceConfiguration FirehoseDeliveryStreamKinesisSourceConfigurationPtrInput 1110 // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. 1111 MskSourceConfiguration FirehoseDeliveryStreamMskSourceConfigurationPtrInput 1112 // 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. 1113 Name pulumi.StringPtrInput 1114 // Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details. 1115 OpensearchConfiguration FirehoseDeliveryStreamOpensearchConfigurationPtrInput 1116 // Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details. 1117 OpensearchserverlessConfiguration FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrInput 1118 // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details. 1119 RedshiftConfiguration FirehoseDeliveryStreamRedshiftConfigurationPtrInput 1120 // Encrypt at rest options. See `serverSideEncryption` block below for details. 1121 // 1122 // **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. 1123 ServerSideEncryption FirehoseDeliveryStreamServerSideEncryptionPtrInput 1124 // Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details. 1125 SplunkConfiguration FirehoseDeliveryStreamSplunkConfigurationPtrInput 1126 // A 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. 1127 Tags pulumi.StringMapInput 1128 // Specifies the table version for the output data schema. Defaults to `LATEST`. 1129 VersionId pulumi.StringPtrInput 1130 } 1131 1132 func (FirehoseDeliveryStreamArgs) ElementType() reflect.Type { 1133 return reflect.TypeOf((*firehoseDeliveryStreamArgs)(nil)).Elem() 1134 } 1135 1136 type FirehoseDeliveryStreamInput interface { 1137 pulumi.Input 1138 1139 ToFirehoseDeliveryStreamOutput() FirehoseDeliveryStreamOutput 1140 ToFirehoseDeliveryStreamOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOutput 1141 } 1142 1143 func (*FirehoseDeliveryStream) ElementType() reflect.Type { 1144 return reflect.TypeOf((**FirehoseDeliveryStream)(nil)).Elem() 1145 } 1146 1147 func (i *FirehoseDeliveryStream) ToFirehoseDeliveryStreamOutput() FirehoseDeliveryStreamOutput { 1148 return i.ToFirehoseDeliveryStreamOutputWithContext(context.Background()) 1149 } 1150 1151 func (i *FirehoseDeliveryStream) ToFirehoseDeliveryStreamOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOutput { 1152 return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamOutput) 1153 } 1154 1155 // FirehoseDeliveryStreamArrayInput is an input type that accepts FirehoseDeliveryStreamArray and FirehoseDeliveryStreamArrayOutput values. 1156 // You can construct a concrete instance of `FirehoseDeliveryStreamArrayInput` via: 1157 // 1158 // FirehoseDeliveryStreamArray{ FirehoseDeliveryStreamArgs{...} } 1159 type FirehoseDeliveryStreamArrayInput interface { 1160 pulumi.Input 1161 1162 ToFirehoseDeliveryStreamArrayOutput() FirehoseDeliveryStreamArrayOutput 1163 ToFirehoseDeliveryStreamArrayOutputWithContext(context.Context) FirehoseDeliveryStreamArrayOutput 1164 } 1165 1166 type FirehoseDeliveryStreamArray []FirehoseDeliveryStreamInput 1167 1168 func (FirehoseDeliveryStreamArray) ElementType() reflect.Type { 1169 return reflect.TypeOf((*[]*FirehoseDeliveryStream)(nil)).Elem() 1170 } 1171 1172 func (i FirehoseDeliveryStreamArray) ToFirehoseDeliveryStreamArrayOutput() FirehoseDeliveryStreamArrayOutput { 1173 return i.ToFirehoseDeliveryStreamArrayOutputWithContext(context.Background()) 1174 } 1175 1176 func (i FirehoseDeliveryStreamArray) ToFirehoseDeliveryStreamArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamArrayOutput { 1177 return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamArrayOutput) 1178 } 1179 1180 // FirehoseDeliveryStreamMapInput is an input type that accepts FirehoseDeliveryStreamMap and FirehoseDeliveryStreamMapOutput values. 1181 // You can construct a concrete instance of `FirehoseDeliveryStreamMapInput` via: 1182 // 1183 // FirehoseDeliveryStreamMap{ "key": FirehoseDeliveryStreamArgs{...} } 1184 type FirehoseDeliveryStreamMapInput interface { 1185 pulumi.Input 1186 1187 ToFirehoseDeliveryStreamMapOutput() FirehoseDeliveryStreamMapOutput 1188 ToFirehoseDeliveryStreamMapOutputWithContext(context.Context) FirehoseDeliveryStreamMapOutput 1189 } 1190 1191 type FirehoseDeliveryStreamMap map[string]FirehoseDeliveryStreamInput 1192 1193 func (FirehoseDeliveryStreamMap) ElementType() reflect.Type { 1194 return reflect.TypeOf((*map[string]*FirehoseDeliveryStream)(nil)).Elem() 1195 } 1196 1197 func (i FirehoseDeliveryStreamMap) ToFirehoseDeliveryStreamMapOutput() FirehoseDeliveryStreamMapOutput { 1198 return i.ToFirehoseDeliveryStreamMapOutputWithContext(context.Background()) 1199 } 1200 1201 func (i FirehoseDeliveryStreamMap) ToFirehoseDeliveryStreamMapOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMapOutput { 1202 return pulumi.ToOutputWithContext(ctx, i).(FirehoseDeliveryStreamMapOutput) 1203 } 1204 1205 type FirehoseDeliveryStreamOutput struct{ *pulumi.OutputState } 1206 1207 func (FirehoseDeliveryStreamOutput) ElementType() reflect.Type { 1208 return reflect.TypeOf((**FirehoseDeliveryStream)(nil)).Elem() 1209 } 1210 1211 func (o FirehoseDeliveryStreamOutput) ToFirehoseDeliveryStreamOutput() FirehoseDeliveryStreamOutput { 1212 return o 1213 } 1214 1215 func (o FirehoseDeliveryStreamOutput) ToFirehoseDeliveryStreamOutputWithContext(ctx context.Context) FirehoseDeliveryStreamOutput { 1216 return o 1217 } 1218 1219 // The Amazon Resource Name (ARN) specifying the Stream 1220 func (o FirehoseDeliveryStreamOutput) Arn() pulumi.StringOutput { 1221 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 1222 } 1223 1224 // This is the destination to where the data is delivered. The only options are `s3` (Deprecated, use `extendedS3` instead), `extendedS3`, `redshift`, `elasticsearch`, `splunk`, `httpEndpoint`, `opensearch` and `opensearchserverless`. 1225 func (o FirehoseDeliveryStreamOutput) Destination() pulumi.StringOutput { 1226 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.Destination }).(pulumi.StringOutput) 1227 } 1228 1229 func (o FirehoseDeliveryStreamOutput) DestinationId() pulumi.StringOutput { 1230 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.DestinationId }).(pulumi.StringOutput) 1231 } 1232 1233 // Configuration options when `destination` is `elasticsearch`. See `elasticsearchConfiguration` block below for details. 1234 func (o FirehoseDeliveryStreamOutput) ElasticsearchConfiguration() FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput { 1235 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput { 1236 return v.ElasticsearchConfiguration 1237 }).(FirehoseDeliveryStreamElasticsearchConfigurationPtrOutput) 1238 } 1239 1240 // Enhanced configuration options for the s3 destination. See `extendedS3Configuration` block below for details. 1241 func (o FirehoseDeliveryStreamOutput) ExtendedS3Configuration() FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput { 1242 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput { 1243 return v.ExtendedS3Configuration 1244 }).(FirehoseDeliveryStreamExtendedS3ConfigurationPtrOutput) 1245 } 1246 1247 // Configuration options when `destination` is `httpEndpoint`. Requires the user to also specify an `s3Configuration` block. See `httpEndpointConfiguration` block below for details. 1248 func (o FirehoseDeliveryStreamOutput) HttpEndpointConfiguration() FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput { 1249 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput { 1250 return v.HttpEndpointConfiguration 1251 }).(FirehoseDeliveryStreamHttpEndpointConfigurationPtrOutput) 1252 } 1253 1254 // The stream and role Amazon Resource Names (ARNs) for a Kinesis data stream used as the source for a delivery stream. See `kinesisSourceConfiguration` block below for details. 1255 func (o FirehoseDeliveryStreamOutput) KinesisSourceConfiguration() FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput { 1256 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput { 1257 return v.KinesisSourceConfiguration 1258 }).(FirehoseDeliveryStreamKinesisSourceConfigurationPtrOutput) 1259 } 1260 1261 // The configuration for the Amazon MSK cluster to be used as the source for a delivery stream. See `mskSourceConfiguration` block below for details. 1262 func (o FirehoseDeliveryStreamOutput) MskSourceConfiguration() FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { 1263 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamMskSourceConfigurationPtrOutput { 1264 return v.MskSourceConfiguration 1265 }).(FirehoseDeliveryStreamMskSourceConfigurationPtrOutput) 1266 } 1267 1268 // 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. 1269 func (o FirehoseDeliveryStreamOutput) Name() pulumi.StringOutput { 1270 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 1271 } 1272 1273 // Configuration options when `destination` is `opensearch`. See `opensearchConfiguration` block below for details. 1274 func (o FirehoseDeliveryStreamOutput) OpensearchConfiguration() FirehoseDeliveryStreamOpensearchConfigurationPtrOutput { 1275 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamOpensearchConfigurationPtrOutput { 1276 return v.OpensearchConfiguration 1277 }).(FirehoseDeliveryStreamOpensearchConfigurationPtrOutput) 1278 } 1279 1280 // Configuration options when `destination` is `opensearchserverless`. See `opensearchserverlessConfiguration` block below for details. 1281 func (o FirehoseDeliveryStreamOutput) OpensearchserverlessConfiguration() FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { 1282 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput { 1283 return v.OpensearchserverlessConfiguration 1284 }).(FirehoseDeliveryStreamOpensearchserverlessConfigurationPtrOutput) 1285 } 1286 1287 // Configuration options when `destination` is `redshift`. Requires the user to also specify an `s3Configuration` block. See `redshiftConfiguration` block below for details. 1288 func (o FirehoseDeliveryStreamOutput) RedshiftConfiguration() FirehoseDeliveryStreamRedshiftConfigurationPtrOutput { 1289 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamRedshiftConfigurationPtrOutput { 1290 return v.RedshiftConfiguration 1291 }).(FirehoseDeliveryStreamRedshiftConfigurationPtrOutput) 1292 } 1293 1294 // Encrypt at rest options. See `serverSideEncryption` block below for details. 1295 // 1296 // **NOTE:** Server-side encryption should not be enabled when a kinesis stream is configured as the source of the firehose delivery stream. 1297 func (o FirehoseDeliveryStreamOutput) ServerSideEncryption() FirehoseDeliveryStreamServerSideEncryptionPtrOutput { 1298 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamServerSideEncryptionPtrOutput { 1299 return v.ServerSideEncryption 1300 }).(FirehoseDeliveryStreamServerSideEncryptionPtrOutput) 1301 } 1302 1303 // Configuration options when `destination` is `splunk`. See `splunkConfiguration` block below for details. 1304 func (o FirehoseDeliveryStreamOutput) SplunkConfiguration() FirehoseDeliveryStreamSplunkConfigurationPtrOutput { 1305 return o.ApplyT(func(v *FirehoseDeliveryStream) FirehoseDeliveryStreamSplunkConfigurationPtrOutput { 1306 return v.SplunkConfiguration 1307 }).(FirehoseDeliveryStreamSplunkConfigurationPtrOutput) 1308 } 1309 1310 // A 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. 1311 func (o FirehoseDeliveryStreamOutput) Tags() pulumi.StringMapOutput { 1312 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 1313 } 1314 1315 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 1316 // 1317 // Deprecated: Please use `tags` instead. 1318 func (o FirehoseDeliveryStreamOutput) TagsAll() pulumi.StringMapOutput { 1319 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 1320 } 1321 1322 // Specifies the table version for the output data schema. Defaults to `LATEST`. 1323 func (o FirehoseDeliveryStreamOutput) VersionId() pulumi.StringOutput { 1324 return o.ApplyT(func(v *FirehoseDeliveryStream) pulumi.StringOutput { return v.VersionId }).(pulumi.StringOutput) 1325 } 1326 1327 type FirehoseDeliveryStreamArrayOutput struct{ *pulumi.OutputState } 1328 1329 func (FirehoseDeliveryStreamArrayOutput) ElementType() reflect.Type { 1330 return reflect.TypeOf((*[]*FirehoseDeliveryStream)(nil)).Elem() 1331 } 1332 1333 func (o FirehoseDeliveryStreamArrayOutput) ToFirehoseDeliveryStreamArrayOutput() FirehoseDeliveryStreamArrayOutput { 1334 return o 1335 } 1336 1337 func (o FirehoseDeliveryStreamArrayOutput) ToFirehoseDeliveryStreamArrayOutputWithContext(ctx context.Context) FirehoseDeliveryStreamArrayOutput { 1338 return o 1339 } 1340 1341 func (o FirehoseDeliveryStreamArrayOutput) Index(i pulumi.IntInput) FirehoseDeliveryStreamOutput { 1342 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *FirehoseDeliveryStream { 1343 return vs[0].([]*FirehoseDeliveryStream)[vs[1].(int)] 1344 }).(FirehoseDeliveryStreamOutput) 1345 } 1346 1347 type FirehoseDeliveryStreamMapOutput struct{ *pulumi.OutputState } 1348 1349 func (FirehoseDeliveryStreamMapOutput) ElementType() reflect.Type { 1350 return reflect.TypeOf((*map[string]*FirehoseDeliveryStream)(nil)).Elem() 1351 } 1352 1353 func (o FirehoseDeliveryStreamMapOutput) ToFirehoseDeliveryStreamMapOutput() FirehoseDeliveryStreamMapOutput { 1354 return o 1355 } 1356 1357 func (o FirehoseDeliveryStreamMapOutput) ToFirehoseDeliveryStreamMapOutputWithContext(ctx context.Context) FirehoseDeliveryStreamMapOutput { 1358 return o 1359 } 1360 1361 func (o FirehoseDeliveryStreamMapOutput) MapIndex(k pulumi.StringInput) FirehoseDeliveryStreamOutput { 1362 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *FirehoseDeliveryStream { 1363 return vs[0].(map[string]*FirehoseDeliveryStream)[vs[1].(string)] 1364 }).(FirehoseDeliveryStreamOutput) 1365 } 1366 1367 func init() { 1368 pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamInput)(nil)).Elem(), &FirehoseDeliveryStream{}) 1369 pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamArrayInput)(nil)).Elem(), FirehoseDeliveryStreamArray{}) 1370 pulumi.RegisterInputType(reflect.TypeOf((*FirehoseDeliveryStreamMapInput)(nil)).Elem(), FirehoseDeliveryStreamMap{}) 1371 pulumi.RegisterOutputType(FirehoseDeliveryStreamOutput{}) 1372 pulumi.RegisterOutputType(FirehoseDeliveryStreamArrayOutput{}) 1373 pulumi.RegisterOutputType(FirehoseDeliveryStreamMapOutput{}) 1374 }