diff --git a/.changelog/37832.txt b/.changelog/37832.txt new file mode 100644 index 00000000000..17c1caf4c51 --- /dev/null +++ b/.changelog/37832.txt @@ -0,0 +1,3 @@ +```release-note:bug +resource/aws_ssm_parameter: Fix `Cannot import non-existent remote object` errors when importing resources with version +``` \ No newline at end of file diff --git a/internal/service/ssm/parameter.go b/internal/service/ssm/parameter.go index 7fd23f6b575..86e3f7debaa 100644 --- a/internal/service/ssm/parameter.go +++ b/internal/service/ssm/parameter.go @@ -257,7 +257,7 @@ func resourceParameterRead(ctx context.Context, d *schema.ResourceData, meta int return sdkdiag.AppendErrorf(diags, "invalid configuration, cannot set type = %s and insecure_value", param.Type) } - detail, err := findParameterMetadataByName(ctx, conn, d.Id()) + detail, err := findParameterMetadataByName(ctx, conn, d.Get(names.AttrName).(string)) if !d.IsNewResource() && tfresource.NotFound(err) { log.Printf("[WARN] SSM Parameter %s not found, removing from state", d.Id()) diff --git a/internal/service/ssm/parameter_test.go b/internal/service/ssm/parameter_test.go index e2afdf86e0b..b12e6a78411 100644 --- a/internal/service/ssm/parameter_test.go +++ b/internal/service/ssm/parameter_test.go @@ -54,6 +54,16 @@ func TestAccSSMParameter_basic(t *testing.T) { ImportStateVerify: true, ImportStateVerifyIgnore: []string{"overwrite"}, }, + // Test import with version. + // https://github.com/hashicorp/terraform-provider-aws/issues/37812. + { + ResourceName: resourceName, + ImportState: true, + ImportStateId: name + ":1", + ImportStateVerify: true, + ImportStateVerifyIdentifierAttribute: names.AttrName, + ImportStateVerifyIgnore: []string{names.AttrID, "overwrite"}, + }, }, }) }