Skip to content

Commit

Permalink
Merge pull request #35672 from hashicorp/b-aws_kinesis_firehose_deliv…
Browse files Browse the repository at this point in the history
…ery_stream-parameters-order

r/aws_kinesis_firehose_delivery_stream: Change `parameters` from `TypeList` to `TypeSet`
  • Loading branch information
ewbankkit authored Feb 6, 2024
2 parents 21d5ee4 + 1e69412 commit d440913
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 18 deletions.
3 changes: 3 additions & 0 deletions .changelog/35672.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
```release-note:bug
resource/aws_kinesis_firehose_delivery_stream: Change `extended_s3_configuration.processing_configuration.processors.parameters` from `TypeList` to `TypeSet` as order is not significant
```
5 changes: 3 additions & 2 deletions internal/service/firehose/delivery_stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,8 @@ func resourceDeliveryStream() *schema.Resource {
"parameters": {
// See AWS::KinesisFirehose::DeliveryStream CloudFormation resource schema.
// uniqueItems is true and insertionOrder is true.
Type: schema.TypeList,
// However, IRL the order of the processors is not important.
Type: schema.TypeSet,
Optional: true,
Elem: &schema.Resource{
Schema: map[string]*schema.Schema{
Expand Down Expand Up @@ -2133,7 +2134,7 @@ func expandProcessor(processingConfigurationProcessor map[string]interface{}) *t
if processorType != "" {
processor = &types.Processor{
Type: types.ProcessorType(processorType),
Parameters: expandProcessorParameters(processingConfigurationProcessor["parameters"].([]interface{})),
Parameters: expandProcessorParameters(processingConfigurationProcessor["parameters"].(*schema.Set).List()),
}
}
return processor
Expand Down
42 changes: 26 additions & 16 deletions internal/service/firehose/delivery_stream_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,17 @@ func TestAccFirehoseDeliveryStream_basic(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.#", "1"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.type", "Lambda"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.#", "3"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.0.parameter_name", "LambdaArn"),
resource.TestCheckResourceAttrSet(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.0.parameter_value"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.1.parameter_name", "BufferSizeInMBs"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.1.parameter_value", "1.1"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.2.parameter_name", "BufferIntervalInSeconds"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.2.parameter_value", "70"),
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.*", map[string]string{
"parameter_name": "LambdaArn",
}),
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.*", map[string]string{
"parameter_name": "BufferSizeInMBs",
"parameter_value": "1.1",
}),
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "extended_s3_configuration.0.processing_configuration.0.processors.0.parameters.*", map[string]string{
"parameter_name": "BufferIntervalInSeconds",
"parameter_value": "70",
}),
resource.TestCheckResourceAttrSet(resourceName, "extended_s3_configuration.0.role_arn"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.s3_backup_configuration.#", "0"),
resource.TestCheckResourceAttr(resourceName, "extended_s3_configuration.0.s3_backup_mode", "Disabled"),
Expand Down Expand Up @@ -1815,12 +1820,17 @@ func TestAccFirehoseDeliveryStream_openSearchServerlessUpdates(t *testing.T) {
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.#", "1"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.type", "Lambda"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.#", "3"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.0.parameter_name", "LambdaArn"),
resource.TestCheckResourceAttrSet(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.0.parameter_value"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.1.parameter_name", "BufferSizeInMBs"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.1.parameter_value", "1.1"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.2.parameter_name", "BufferIntervalInSeconds"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.2.parameter_value", "70"),
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.*", map[string]string{
"parameter_name": "LambdaArn",
}),
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.*", map[string]string{
"parameter_name": "BufferSizeInMBs",
"parameter_value": "1.1",
}),
resource.TestCheckTypeSetElemNestedAttrs(resourceName, "opensearchserverless_configuration.0.processing_configuration.0.processors.0.parameters.*", map[string]string{
"parameter_name": "BufferIntervalInSeconds",
"parameter_value": "70",
}),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.retry_duration", "300"),
resource.TestCheckResourceAttrSet(resourceName, "opensearchserverless_configuration.0.role_arn"),
resource.TestCheckResourceAttr(resourceName, "opensearchserverless_configuration.0.s3_backup_mode", "FailedDocumentsOnly"),
Expand Down Expand Up @@ -3243,6 +3253,10 @@ resource "aws_kinesis_firehose_delivery_stream" "test" {
processors {
type = "Lambda"
parameters {
parameter_name = "BufferIntervalInSeconds"
parameter_value = "70"
}
parameters {
parameter_name = "LambdaArn"
parameter_value = "${aws_lambda_function.lambda_function_test.arn}:$LATEST"
Expand All @@ -3251,10 +3265,6 @@ resource "aws_kinesis_firehose_delivery_stream" "test" {
parameter_name = "BufferSizeInMBs"
parameter_value = "1.1"
}
parameters {
parameter_name = "BufferIntervalInSeconds"
parameter_value = "70"
}
}
}
Expand Down

0 comments on commit d440913

Please sign in to comment.