@@ -5,21 +5,26 @@ package ec2
55
66import (
77 "context"
8+ "log"
89
910 "github.com/aws/aws-sdk-go-v2/service/ec2"
1011 "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
1112 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1213 "github.com/hashicorp/terraform-provider-aws/internal/conns"
1314 "github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
15+ "github.com/hashicorp/terraform-provider-aws/internal/tfresource"
1416 "github.com/hashicorp/terraform-provider-aws/names"
1517)
1618
1719// @SDKResource("aws_ec2_serial_console_access", name="Serial Console Access")
18- // @Region(global=true)
1920// @SingletonIdentity
21+ // @IdentityVersion(1, sdkV2IdentityUpgraders="serialConsoleAccessIdentityUpgradeV0")
2022// @V60SDKv2Fix
2123// @Testing(hasExistsFunction=false)
2224// @Testing(generator=false)
25+ // @Testing(identityTest=false)
26+ // @Testing(identityVersion="0;v6.0.0")
27+ // @Testing(identityVersion="1;v6.21.0")
2328func resourceSerialConsoleAccess () * schema.Resource {
2429 return & schema.Resource {
2530 CreateWithoutTimeout : resourceSerialConsoleAccessCreate ,
@@ -39,26 +44,29 @@ func resourceSerialConsoleAccess() *schema.Resource {
3944
4045func resourceSerialConsoleAccessCreate (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
4146 var diags diag.Diagnostics
42-
4347 conn := meta .(* conns.AWSClient ).EC2Client (ctx )
4448
4549 enabled := d .Get (names .AttrEnabled ).(bool )
4650 if err := setSerialConsoleAccess (ctx , conn , enabled ); err != nil {
4751 return sdkdiag .AppendErrorf (diags , "setting EC2 Serial Console Access (%t): %s" , enabled , err )
4852 }
4953
50- d .SetId (meta .(* conns.AWSClient ).AccountID (ctx ))
54+ d .SetId (meta .(* conns.AWSClient ).Region (ctx ))
5155
5256 return append (diags , resourceSerialConsoleAccessRead (ctx , d , meta )... )
5357}
5458
5559func resourceSerialConsoleAccessRead (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
5660 var diags diag.Diagnostics
57-
5861 conn := meta .(* conns.AWSClient ).EC2Client (ctx )
5962
60- input := ec2.GetSerialConsoleAccessStatusInput {}
61- output , err := conn .GetSerialConsoleAccessStatus (ctx , & input )
63+ output , err := findSerialConsoleAccessStatus (ctx , conn )
64+
65+ if ! d .IsNewResource () && tfresource .NotFound (err ) {
66+ log .Printf ("[WARN] EC2 Serial Console Access %s not found, removing from state" , d .Id ())
67+ d .SetId ("" )
68+ return diags
69+ }
6270
6371 if err != nil {
6472 return sdkdiag .AppendErrorf (diags , "reading EC2 Serial Console Access: %s" , err )
@@ -71,7 +79,6 @@ func resourceSerialConsoleAccessRead(ctx context.Context, d *schema.ResourceData
7179
7280func resourceSerialConsoleAccessUpdate (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
7381 var diags diag.Diagnostics
74-
7582 conn := meta .(* conns.AWSClient ).EC2Client (ctx )
7683
7784 enabled := d .Get (names .AttrEnabled ).(bool )
@@ -84,7 +91,6 @@ func resourceSerialConsoleAccessUpdate(ctx context.Context, d *schema.ResourceDa
8491
8592func resourceSerialConsoleAccessDelete (ctx context.Context , d * schema.ResourceData , meta any ) diag.Diagnostics {
8693 var diags diag.Diagnostics
87-
8894 conn := meta .(* conns.AWSClient ).EC2Client (ctx )
8995
9096 // Removing the resource disables serial console access.
@@ -99,12 +105,20 @@ func setSerialConsoleAccess(ctx context.Context, conn *ec2.Client, enabled bool)
99105 var err error
100106
101107 if enabled {
102- input := ec2.EnableSerialConsoleAccessInput {}
108+ var input ec2.EnableSerialConsoleAccessInput
103109 _ , err = conn .EnableSerialConsoleAccess (ctx , & input )
104110 } else {
105- input := ec2.DisableSerialConsoleAccessInput {}
111+ var input ec2.DisableSerialConsoleAccessInput
106112 _ , err = conn .DisableSerialConsoleAccess (ctx , & input )
107113 }
108114
109115 return err
110116}
117+
118+ var serialConsoleAccessIdentityUpgradeV0 = schema.IdentityUpgrader {
119+ Version : 0 ,
120+ Upgrade : func (ctx context.Context , rawState map [string ]any , meta any ) (map [string ]any , error ) {
121+ rawState [names .AttrRegion ] = meta .(* conns.AWSClient ).Region (ctx )
122+ return rawState , nil
123+ },
124+ }
0 commit comments