From d1f72eec207eda402253bc2e0944c52a8892c922 Mon Sep 17 00:00:00 2001 From: takaya-n Date: Fri, 23 Feb 2024 16:47:39 +0900 Subject: [PATCH 1/8] feat: add attributes for manage admin password to aws_redshiftserverless_namespace --- .../service/redshiftserverless/namespace.go | 39 +++++++++++++++++++ .../redshiftserverless/namespace_test.go | 33 ++++++++++++++++ ...redshiftserverless_namespace.html.markdown | 6 +++ 3 files changed, 78 insertions(+) diff --git a/internal/service/redshiftserverless/namespace.go b/internal/service/redshiftserverless/namespace.go index d3830440e1d1..644a978c36b4 100644 --- a/internal/service/redshiftserverless/namespace.go +++ b/internal/service/redshiftserverless/namespace.go @@ -40,6 +40,16 @@ func ResourceNamespace() *schema.Resource { }, Schema: map[string]*schema.Schema{ + "admin_password_secret_arn": { + Type: schema.TypeString, + Computed: true, + }, + "admin_password_secret_kms_key_id": { + Type: schema.TypeString, + Optional: true, + Computed: true, + ValidateFunc: verify.ValidKMSKeyID, + }, "admin_user_password": { Type: schema.TypeString, Optional: true, @@ -89,6 +99,11 @@ func ResourceNamespace() *schema.Resource { ValidateFunc: validation.StringInSlice(redshiftserverless.LogExport_Values(), false), }, }, + "manage_admin_password": { + Type: schema.TypeBool, + Optional: true, + ConflictsWith: []string{"admin_user_password"}, + }, "namespace_id": { Type: schema.TypeString, Computed: true, @@ -116,6 +131,10 @@ func resourceNamespaceCreate(ctx context.Context, d *schema.ResourceData, meta i Tags: getTagsIn(ctx), } + if v, ok := d.GetOk("admin_password_secret_kms_key_id"); ok { + input.AdminPasswordSecretKmsKeyId = aws.String(v.(string)) + } + if v, ok := d.GetOk("admin_user_password"); ok { input.AdminUserPassword = aws.String(v.(string)) } @@ -144,6 +163,16 @@ func resourceNamespaceCreate(ctx context.Context, d *schema.ResourceData, meta i input.LogExports = flex.ExpandStringSet(v.(*schema.Set)) } + if v, ok := d.GetOk("manage_admin_password"); ok { + input.ManageAdminPassword = aws.Bool(v.(bool)) + } + + if _, ok := d.GetOk("admin_user_password"); !ok { + if _, ok := d.GetOk("manage_admin_password"); !ok { + return sdkdiag.AppendErrorf(diags, `provider.aws: aws_redshiftserverless_namespace: %s: one of "admin_user_password" or "manage_admin_password" is required`, d.Get("namespace_name").(string)) + } + } + output, err := conn.CreateNamespaceWithContext(ctx, input) if err != nil { @@ -172,6 +201,8 @@ func resourceNamespaceRead(ctx context.Context, d *schema.ResourceData, meta int } arn := aws.StringValue(output.NamespaceArn) + d.Set("admin_password_secret_arn", output.AdminPasswordSecretArn) + d.Set("admin_password_secret_kms_key_id", output.AdminPasswordSecretKmsKeyId) d.Set("admin_username", output.AdminUsername) d.Set("arn", arn) d.Set("db_name", output.DbName) @@ -194,6 +225,10 @@ func resourceNamespaceUpdate(ctx context.Context, d *schema.ResourceData, meta i NamespaceName: aws.String(d.Id()), } + if d.HasChanges("admin_password_secret_kms_key_id") { + input.AdminPasswordSecretKmsKeyId = aws.String(d.Get("admin_password_secret_kms_key_id").(string)) + } + if d.HasChanges("admin_username", "admin_user_password") { input.AdminUsername = aws.String(d.Get("admin_username").(string)) input.AdminUserPassword = aws.String(d.Get("admin_user_password").(string)) @@ -215,6 +250,10 @@ func resourceNamespaceUpdate(ctx context.Context, d *schema.ResourceData, meta i input.LogExports = flex.ExpandStringSet(d.Get("log_exports").(*schema.Set)) } + if d.HasChange("manage_admin_password") { + input.ManageAdminPassword = aws.Bool(d.Get("manage_admin_password").(bool)) + } + _, err := conn.UpdateNamespaceWithContext(ctx, input) if err != nil { diff --git a/internal/service/redshiftserverless/namespace_test.go b/internal/service/redshiftserverless/namespace_test.go index 6e255b9453eb..28fa61718411 100644 --- a/internal/service/redshiftserverless/namespace_test.go +++ b/internal/service/redshiftserverless/namespace_test.go @@ -218,6 +218,30 @@ func TestAccRedshiftServerlessNamespace_withWorkgroup(t *testing.T) { }) } +func TestAccRedshiftServerlessNamespace_manageAdminPassword(t *testing.T) { + ctx := acctest.Context(t) + resourceName := "aws_redshiftserverless_namespace.test" + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(ctx, t) }, + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, + CheckDestroy: testAccCheckNamespaceDestroy(ctx), + Steps: []resource.TestStep{ + { + Config: testAccNamespaceConfig_manageAdminPassword(rName), + Check: resource.ComposeTestCheckFunc( + testAccCheckNamespaceExists(ctx, resourceName), + testAccCheckNamespaceExists(ctx, resourceName), + resource.TestCheckResourceAttr(resourceName, "manage_admin_password", "true"), + resource.TestCheckResourceAttrSet(resourceName, "admin_password_secret_arn"), + ), + }, + }, + }) +} + func testAccCheckNamespaceDestroy(ctx context.Context) resource.TestCheckFunc { return func(s *terraform.State) error { conn := acctest.Provider.Meta().(*conns.AWSClient).RedshiftServerlessConn(ctx) @@ -363,6 +387,15 @@ resource "aws_redshiftserverless_namespace" "test" { `, rName)) } +func testAccNamespaceConfig_manageAdminPassword(rName string) string { + return fmt.Sprintf(` +resource "aws_redshiftserverless_namespace" "test" { + namespace_name = %[1]q + manage_admin_password = true +} +`, rName) +} + func testAccNamespaceConfig_withWorkgroup(rName string) string { return acctest.ConfigCompose(testAccNamespaceConfig_baseIAMRole(rName, 2), fmt.Sprintf(` resource "aws_redshiftserverless_namespace" "test" { diff --git a/website/docs/r/redshiftserverless_namespace.html.markdown b/website/docs/r/redshiftserverless_namespace.html.markdown index e2b6e628efd0..4472f3fa4976 100644 --- a/website/docs/r/redshiftserverless_namespace.html.markdown +++ b/website/docs/r/redshiftserverless_namespace.html.markdown @@ -22,7 +22,10 @@ resource "aws_redshiftserverless_namespace" "example" { This resource supports the following arguments: +* `admin_password_secret_kms_key_id` - (Optional) ID of the KMS key used to encrypt the namespace's admin credentials secret. * `admin_user_password` - (Optional) The password of the administrator for the first database created in the namespace. + Conflicts with `manage_admin_password`. + One of `admin_user_password` or `manage_admin_password` is required. * `admin_username` - (Optional) The username of the administrator for the first database created in the namespace. * `db_name` - (Optional) The name of the first database created in the namespace. * `default_iam_role_arn` - (Optional) The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace. When specifying `default_iam_role_arn`, it also must be part of `iam_roles`. @@ -30,6 +33,9 @@ This resource supports the following arguments: * `kms_key_id` - (Optional) The ARN of the Amazon Web Services Key Management Service key used to encrypt your data. * `log_exports` - (Optional) The types of logs the namespace can export. Available export types are `userlog`, `connectionlog`, and `useractivitylog`. * `namespace_name` - (Required) The name of the namespace. +* `manage_admin_password` - (Optional) Whether to use AWS SecretManager to manage namespace's admin credentials. + Conflicts with `admin_user_password`. + One of `admin_user_password` or `manage_admin_password` is required. * `tags` - (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. ## Attribute Reference From ca1b69de96e1a024422dbf05eff272d1b26de3f1 Mon Sep 17 00:00:00 2001 From: takaya-n Date: Sat, 24 Feb 2024 12:30:05 +0900 Subject: [PATCH 2/8] fix: doc, data.redshift_Namespace test --- internal/service/redshiftserverless/namespace.go | 13 ++++--------- .../redshiftserverless/namespace_data_source.go | 2 +- .../r/redshiftserverless_namespace.html.markdown | 2 -- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/internal/service/redshiftserverless/namespace.go b/internal/service/redshiftserverless/namespace.go index 644a978c36b4..a7466403088a 100644 --- a/internal/service/redshiftserverless/namespace.go +++ b/internal/service/redshiftserverless/namespace.go @@ -51,9 +51,10 @@ func ResourceNamespace() *schema.Resource { ValidateFunc: verify.ValidKMSKeyID, }, "admin_user_password": { - Type: schema.TypeString, - Optional: true, - Sensitive: true, + Type: schema.TypeString, + Optional: true, + Sensitive: true, + ConflictsWith: []string{"manage_admin_password"}, }, "admin_username": { Type: schema.TypeString, @@ -167,12 +168,6 @@ func resourceNamespaceCreate(ctx context.Context, d *schema.ResourceData, meta i input.ManageAdminPassword = aws.Bool(v.(bool)) } - if _, ok := d.GetOk("admin_user_password"); !ok { - if _, ok := d.GetOk("manage_admin_password"); !ok { - return sdkdiag.AppendErrorf(diags, `provider.aws: aws_redshiftserverless_namespace: %s: one of "admin_user_password" or "manage_admin_password" is required`, d.Get("namespace_name").(string)) - } - } - output, err := conn.CreateNamespaceWithContext(ctx, input) if err != nil { diff --git a/internal/service/redshiftserverless/namespace_data_source.go b/internal/service/redshiftserverless/namespace_data_source.go index 3ddf6e3481db..fec51b3fd1e5 100644 --- a/internal/service/redshiftserverless/namespace_data_source.go +++ b/internal/service/redshiftserverless/namespace_data_source.go @@ -82,7 +82,7 @@ func dataSourceNamespaceRead(ctx context.Context, d *schema.ResourceData, meta i d.Set("arn", resource.NamespaceArn) d.Set("db_name", resource.DbName) d.Set("default_iam_role_arn", resource.DefaultIamRoleArn) - d.Set("iam_roles", resource.IamRoles) + d.Set("iam_roles", flattenNamespaceIAMRoles(resource.IamRoles)) d.Set("kms_key_id", resource.KmsKeyId) d.Set("log_exports", resource.LogExports) diff --git a/website/docs/r/redshiftserverless_namespace.html.markdown b/website/docs/r/redshiftserverless_namespace.html.markdown index 4472f3fa4976..6c3fef8645bc 100644 --- a/website/docs/r/redshiftserverless_namespace.html.markdown +++ b/website/docs/r/redshiftserverless_namespace.html.markdown @@ -25,7 +25,6 @@ This resource supports the following arguments: * `admin_password_secret_kms_key_id` - (Optional) ID of the KMS key used to encrypt the namespace's admin credentials secret. * `admin_user_password` - (Optional) The password of the administrator for the first database created in the namespace. Conflicts with `manage_admin_password`. - One of `admin_user_password` or `manage_admin_password` is required. * `admin_username` - (Optional) The username of the administrator for the first database created in the namespace. * `db_name` - (Optional) The name of the first database created in the namespace. * `default_iam_role_arn` - (Optional) The Amazon Resource Name (ARN) of the IAM role to set as a default in the namespace. When specifying `default_iam_role_arn`, it also must be part of `iam_roles`. @@ -35,7 +34,6 @@ This resource supports the following arguments: * `namespace_name` - (Required) The name of the namespace. * `manage_admin_password` - (Optional) Whether to use AWS SecretManager to manage namespace's admin credentials. Conflicts with `admin_user_password`. - One of `admin_user_password` or `manage_admin_password` is required. * `tags` - (Optional) A map of tags to assign to the resource. If configured with a provider [`default_tags` configuration block](https://registry.terraform.io/providers/hashicorp/aws/latest/docs#default_tags-configuration-block) present, tags with matching keys will overwrite those defined at the provider-level. ## Attribute Reference From 4e15a6aec4322a6e5753ac20b8076dfc413ce73c Mon Sep 17 00:00:00 2001 From: takaya-n Date: Sat, 24 Feb 2024 13:03:09 +0900 Subject: [PATCH 3/8] docs: add changelog --- .changelog/35965.txt | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 .changelog/35965.txt diff --git a/.changelog/35965.txt b/.changelog/35965.txt new file mode 100644 index 000000000000..57e13522f33f --- /dev/null +++ b/.changelog/35965.txt @@ -0,0 +1,8 @@ +```release-note:enhancement +resource/aws_redshiftserverless_namespace: +Add attributes `admin_password_secret_kms_key_id` and `manage_admin_password` +``` + +```release-note:bug +data/aws_redshiftserverless_namespace: Fix apply flattenNamespaceIAMRoles function to iam_roles in dataSourceNamespaceRead +``` From d44e350122d37c335ad9fedb1fbeca6497dc30a8 Mon Sep 17 00:00:00 2001 From: takaya-n Date: Mon, 26 Feb 2024 20:31:01 +0900 Subject: [PATCH 4/8] fix: use ServiceID instated of endpintsID --- .../service/redshiftserverless/namespace_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/service/redshiftserverless/namespace_test.go b/internal/service/redshiftserverless/namespace_test.go index 28fa61718411..d45a3b270d31 100644 --- a/internal/service/redshiftserverless/namespace_test.go +++ b/internal/service/redshiftserverless/namespace_test.go @@ -26,7 +26,7 @@ func TestAccRedshiftServerlessNamespace_basic(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -72,7 +72,7 @@ func TestAccRedshiftServerlessNamespace_defaultIAMRole(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -100,7 +100,7 @@ func TestAccRedshiftServerlessNamespace_user(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -133,7 +133,7 @@ func TestAccRedshiftServerlessNamespace_tags(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -177,7 +177,7 @@ func TestAccRedshiftServerlessNamespace_disappears(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -200,7 +200,7 @@ func TestAccRedshiftServerlessNamespace_withWorkgroup(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -225,7 +225,7 @@ func TestAccRedshiftServerlessNamespace_manageAdminPassword(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ From c461400337fb47cf22c27f4f4c1537a0a10b30b8 Mon Sep 17 00:00:00 2001 From: takaya-n Date: Mon, 26 Feb 2024 22:23:55 +0900 Subject: [PATCH 5/8] fix: format --- internal/service/redshiftserverless/namespace_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/service/redshiftserverless/namespace_test.go b/internal/service/redshiftserverless/namespace_test.go index d45a3b270d31..12ad931c562b 100644 --- a/internal/service/redshiftserverless/namespace_test.go +++ b/internal/service/redshiftserverless/namespace_test.go @@ -390,7 +390,7 @@ resource "aws_redshiftserverless_namespace" "test" { func testAccNamespaceConfig_manageAdminPassword(rName string) string { return fmt.Sprintf(` resource "aws_redshiftserverless_namespace" "test" { - namespace_name = %[1]q + namespace_name = %[1]q manage_admin_password = true } `, rName) From b7c2a04d98f40db0a6283ec026c1ecab6c4e86e3 Mon Sep 17 00:00:00 2001 From: takaya-n Date: Mon, 26 Feb 2024 22:43:47 +0900 Subject: [PATCH 6/8] Revert "fix: use ServiceID instated of endpintsID" This reverts commit d44e350122d37c335ad9fedb1fbeca6497dc30a8. --- .../service/redshiftserverless/namespace_test.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/service/redshiftserverless/namespace_test.go b/internal/service/redshiftserverless/namespace_test.go index 12ad931c562b..4ef0d1b70a1f 100644 --- a/internal/service/redshiftserverless/namespace_test.go +++ b/internal/service/redshiftserverless/namespace_test.go @@ -26,7 +26,7 @@ func TestAccRedshiftServerlessNamespace_basic(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -72,7 +72,7 @@ func TestAccRedshiftServerlessNamespace_defaultIAMRole(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -100,7 +100,7 @@ func TestAccRedshiftServerlessNamespace_user(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -133,7 +133,7 @@ func TestAccRedshiftServerlessNamespace_tags(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -177,7 +177,7 @@ func TestAccRedshiftServerlessNamespace_disappears(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -200,7 +200,7 @@ func TestAccRedshiftServerlessNamespace_withWorkgroup(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ @@ -225,7 +225,7 @@ func TestAccRedshiftServerlessNamespace_manageAdminPassword(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.ServiceID), + ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{ From 62e901b1602792662d4885cafb49b83eb5a97304 Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Mon, 26 Feb 2024 08:52:17 -0500 Subject: [PATCH 7/8] chore: tweak changelog --- .changelog/35965.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.changelog/35965.txt b/.changelog/35965.txt index 57e13522f33f..61ca9139a815 100644 --- a/.changelog/35965.txt +++ b/.changelog/35965.txt @@ -4,5 +4,5 @@ Add attributes `admin_password_secret_kms_key_id` and `manage_admin_password` ``` ```release-note:bug -data/aws_redshiftserverless_namespace: Fix apply flattenNamespaceIAMRoles function to iam_roles in dataSourceNamespaceRead +data/aws_redshiftserverless_namespace: Properly set `iam_roles` attribute on read ``` From 0981d3423b1337da57755e542e505d6b166d3dc6 Mon Sep 17 00:00:00 2001 From: Jared Baker Date: Mon, 26 Feb 2024 08:52:53 -0500 Subject: [PATCH 8/8] r/aws_redshiftserverless_namespace(test): fix ErrorCheck arguments --- internal/service/redshiftserverless/namespace_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/service/redshiftserverless/namespace_test.go b/internal/service/redshiftserverless/namespace_test.go index 78800b777b97..aab254da169a 100644 --- a/internal/service/redshiftserverless/namespace_test.go +++ b/internal/service/redshiftserverless/namespace_test.go @@ -225,7 +225,7 @@ func TestAccRedshiftServerlessNamespace_manageAdminPassword(t *testing.T) { resource.ParallelTest(t, resource.TestCase{ PreCheck: func() { acctest.PreCheck(ctx, t) }, - ErrorCheck: acctest.ErrorCheck(t, redshiftserverless.EndpointsID), + ErrorCheck: acctest.ErrorCheck(t, names.RedshiftServerlessServiceID), ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, CheckDestroy: testAccCheckNamespaceDestroy(ctx), Steps: []resource.TestStep{