Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 99a68d9

Browse files
committed
fix: Set s3_prefix to required for aws_cur_report_definition
1 parent cc6a0f5 commit 99a68d9

File tree

5 files changed

+65
-53
lines changed

5 files changed

+65
-53
lines changed

.changelog/38446.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
```release-note:bug
2+
resource/aws_cur_report_definition: Set the `s3_prefix` argument to required and update its validation
3+
```

internal/service/cur/report_definition.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -96,9 +96,12 @@ func resourceReportDefinition() *schema.Resource {
9696
Required: true,
9797
},
9898
"s3_prefix": {
99-
Type: schema.TypeString,
100-
Optional: true,
101-
ValidateFunc: validation.StringLenBetween(0, 256),
99+
Type: schema.TypeString,
100+
Required: true,
101+
ValidateFunc: validation.All(
102+
validation.StringLenBetween(1, 256),
103+
validation.StringMatch(regexache.MustCompile(`[0-9A-Za-z!\-_.*\'()]+`), "The prefix can't include invalid characters (!-_.*'()/) or spaces."),
104+
),
102105
},
103106
"s3_region": {
104107
Type: schema.TypeString,

internal/service/cur/report_definition_data_source_test.go

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@ func testAccReportDefinitionDataSource_basic(t *testing.T) {
1818
resourceName := "aws_cur_report_definition.test"
1919
datasourceName := "data.aws_cur_report_definition.test"
2020
reportName := sdkacctest.RandomWithPrefix("tf_acc_test")
21-
bucketName := fmt.Sprintf("tf-test-bucket-%d", sdkacctest.RandInt())
21+
s3BucketName := fmt.Sprintf("tf-test-bucket-%d", sdkacctest.RandInt())
22+
s3Prefix := "test"
2223

2324
resource.Test(t, resource.TestCase{
2425
PreCheck: func() { acctest.PreCheck(ctx, t) },
@@ -27,7 +28,7 @@ func testAccReportDefinitionDataSource_basic(t *testing.T) {
2728
CheckDestroy: testAccCheckReportDefinitionDestroy(ctx),
2829
Steps: []resource.TestStep{
2930
{
30-
Config: testAccReportDefinitionDataSourceConfig_basic(reportName, bucketName),
31+
Config: testAccReportDefinitionDataSourceConfig_basic(reportName, s3BucketName, s3Prefix),
3132
Check: resource.ComposeTestCheckFunc(
3233
resource.TestCheckResourceAttrPair(datasourceName, "report_name", resourceName, "report_name"),
3334
resource.TestCheckResourceAttrPair(datasourceName, "time_unit", resourceName, "time_unit"),
@@ -48,7 +49,8 @@ func testAccReportDefinitionDataSource_additional(t *testing.T) {
4849
resourceName := "aws_cur_report_definition.test"
4950
datasourceName := "data.aws_cur_report_definition.test"
5051
reportName := sdkacctest.RandomWithPrefix("tf_acc_test")
51-
bucketName := fmt.Sprintf("tf-test-bucket-%d", sdkacctest.RandInt())
52+
s3BucketName := fmt.Sprintf("tf-test-bucket-%d", sdkacctest.RandInt())
53+
s3Prefix := "test"
5254

5355
resource.Test(t, resource.TestCase{
5456
PreCheck: func() { acctest.PreCheck(ctx, t) },
@@ -57,7 +59,7 @@ func testAccReportDefinitionDataSource_additional(t *testing.T) {
5759
CheckDestroy: testAccCheckReportDefinitionDestroy(ctx),
5860
Steps: []resource.TestStep{
5961
{
60-
Config: testAccReportDefinitionDataSourceConfig_additional(reportName, bucketName),
62+
Config: testAccReportDefinitionDataSourceConfig_additional(reportName, s3BucketName, s3Prefix),
6163
Check: resource.ComposeTestCheckFunc(
6264
resource.TestCheckResourceAttrPair(datasourceName, "report_name", resourceName, "report_name"),
6365
resource.TestCheckResourceAttrPair(datasourceName, "time_unit", resourceName, "time_unit"),
@@ -75,7 +77,7 @@ func testAccReportDefinitionDataSource_additional(t *testing.T) {
7577
})
7678
}
7779

78-
func testAccReportDefinitionDataSourceConfig_basic(reportName string, bucketName string) string {
80+
func testAccReportDefinitionDataSourceConfig_basic(reportName, s3BucketName, s3Prefix string) string {
7981
return fmt.Sprintf(`
8082
data "aws_billing_service_account" "test" {}
8183
@@ -129,18 +131,18 @@ resource "aws_cur_report_definition" "test" {
129131
compression = "GZIP"
130132
additional_schema_elements = ["RESOURCES", "SPLIT_COST_ALLOCATION_DATA"]
131133
s3_bucket = aws_s3_bucket.test.id
132-
s3_prefix = ""
134+
s3_prefix = %[3]q
133135
s3_region = aws_s3_bucket.test.region
134136
additional_artifacts = ["REDSHIFT", "QUICKSIGHT"]
135137
}
136138
137139
data "aws_cur_report_definition" "test" {
138140
report_name = aws_cur_report_definition.test.report_name
139141
}
140-
`, reportName, bucketName)
142+
`, reportName, s3BucketName, s3Prefix)
141143
}
142144

143-
func testAccReportDefinitionDataSourceConfig_additional(reportName string, bucketName string) string {
145+
func testAccReportDefinitionDataSourceConfig_additional(reportName, s3BucketName, s3Prefix string) string {
144146
return fmt.Sprintf(`
145147
data "aws_billing_service_account" "test" {}
146148
@@ -194,7 +196,7 @@ resource "aws_cur_report_definition" "test" {
194196
compression = "GZIP"
195197
additional_schema_elements = ["RESOURCES", "SPLIT_COST_ALLOCATION_DATA"]
196198
s3_bucket = aws_s3_bucket.test.id
197-
s3_prefix = ""
199+
s3_prefix = %[3]q
198200
s3_region = aws_s3_bucket.test.region
199201
additional_artifacts = ["REDSHIFT", "QUICKSIGHT"]
200202
refresh_closed_reports = true
@@ -204,5 +206,5 @@ resource "aws_cur_report_definition" "test" {
204206
data "aws_cur_report_definition" "test" {
205207
report_name = aws_cur_report_definition.test.report_name
206208
}
207-
`, reportName, bucketName)
209+
`, reportName, s3BucketName, s3Prefix)
208210
}

0 commit comments

Comments
 (0)