From e1a5be78528548f1f7865b39cad147d7f8d28e22 Mon Sep 17 00:00:00 2001 From: Matt Bush Date: Thu, 6 Mar 2025 09:35:00 -0800 Subject: [PATCH] r/cognito_resource_server allow name change without ForceNew --- .changelog/41702.txt | 3 ++ .../service/cognitoidp/resource_server.go | 1 - .../cognitoidp/resource_server_test.go | 45 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) create mode 100644 .changelog/41702.txt diff --git a/.changelog/41702.txt b/.changelog/41702.txt new file mode 100644 index 000000000000..7198a284a113 --- /dev/null +++ b/.changelog/41702.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +resource/aws_cognito_resource_server: Allow changes to `name` attribute without deleting and recreating. +``` \ No newline at end of file diff --git a/internal/service/cognitoidp/resource_server.go b/internal/service/cognitoidp/resource_server.go index 4c9d2ab67d69..213d1e8051f7 100644 --- a/internal/service/cognitoidp/resource_server.go +++ b/internal/service/cognitoidp/resource_server.go @@ -45,7 +45,6 @@ func resourceResourceServer() *schema.Resource { names.AttrName: { Type: schema.TypeString, Required: true, - ForceNew: true, }, names.AttrScope: { Type: schema.TypeSet, diff --git a/internal/service/cognitoidp/resource_server_test.go b/internal/service/cognitoidp/resource_server_test.go index f11e3a691810..561cbf921375 100644 --- a/internal/service/cognitoidp/resource_server_test.go +++ b/internal/service/cognitoidp/resource_server_test.go @@ -123,6 +123,37 @@ func TestAccCognitoIDPResourceServer_scope(t *testing.T) { }) } +func TestAccCognitoIDPResourceServer_nameChange(t *testing.T) { + ctx := acctest.Context(t) + var resourceServer awstypes.ResourceServerType + rName := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) + identifier := sdkacctest.RandomWithPrefix(acctest.ResourcePrefix) + resourceName := "aws_cognito_resource_server.test" + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { acctest.PreCheck(ctx, t); testAccPreCheckIdentityProvider(ctx, t) }, + ErrorCheck: acctest.ErrorCheck(t, names.CognitoIDPServiceID), + ProtoV5ProviderFactories: acctest.ProtoV5ProviderFactories, + CheckDestroy: testAccCheckResourceServerDestroy(ctx), + Steps: []resource.TestStep{ + { + Config: testAccResourceServerConfig_basic(identifier, rName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckResourceServerExists(ctx, resourceName, &resourceServer), + resource.TestCheckResourceAttr(resourceName, names.AttrName, rName), + ), + }, + { + Config: testAccResourceServerConfig_nameUpdate(identifier, rName), + Check: resource.ComposeAggregateTestCheckFunc( + testAccCheckResourceServerExists(ctx, resourceName, &resourceServer), + resource.TestCheckResourceAttr(resourceName, names.AttrName, fmt.Sprintf(`%s updated`, rName)), + ), + }, + }, + }) +} + func testAccCheckResourceServerExists(ctx context.Context, n string, v *awstypes.ResourceServerType) resource.TestCheckFunc { return func(s *terraform.State) error { rs, ok := s.RootModule().Resources[n] @@ -184,6 +215,20 @@ resource "aws_cognito_user_pool" "test" { `, identifier, rName) } +func testAccResourceServerConfig_nameUpdate(identifier, rName string) string { + return fmt.Sprintf(` +resource "aws_cognito_resource_server" "test" { + identifier = %[1]q + name = "%[2]s updated" + user_pool_id = aws_cognito_user_pool.test.id +} + +resource "aws_cognito_user_pool" "test" { + name = %[2]q +} +`, identifier, rName) +} + func testAccResourceServerConfig_scope(identifier, rName string) string { return fmt.Sprintf(` resource "aws_cognito_resource_server" "test" {