@@ -21,6 +21,7 @@ import (
2121 "github.com/hashicorp/terraform-plugin-framework/resource/schema/planmodifier"
2222 "github.com/hashicorp/terraform-plugin-framework/resource/schema/stringplanmodifier"
2323
24+ "github.com/aws/aws-sdk-go-v2/aws/arn"
2425 "github.com/hashicorp/terraform-plugin-framework/types"
2526 "github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
2627 "github.com/hashicorp/terraform-provider-aws/internal/conns"
@@ -212,7 +213,7 @@ func (r *resourceNetworkPeeringConnection) Read(ctx context.Context, req resourc
212213 return
213214 }
214215
215- odbNetworks , err := conn . ListOdbNetworks ( ctx , & odb. ListOdbNetworksInput {} )
216+ odbNetworkARNParsed , err := arn . Parse ( * out . OdbNetworkArn )
216217 if err != nil {
217218 resp .Diagnostics .AddError (
218219 create .ProblemStandardMessage (names .ODB , create .ErrActionReading , ResNameNetworkPeeringConnection , state .OdbPeeringConnectionId .ValueString (), err ),
@@ -221,24 +222,17 @@ func (r *resourceNetworkPeeringConnection) Read(ctx context.Context, req resourc
221222 return
222223 }
223224
224- var odbNetworkId * string = nil
225- for _ , tempOdbNetwork := range odbNetworks .OdbNetworks {
226- if * tempOdbNetwork .OdbNetworkArn == * out .OdbNetworkArn {
227- odbNetworkId = tempOdbNetwork .OdbNetworkId
228- }
229- }
230- if odbNetworkId == nil {
225+ peerVpcARN , err := arn .Parse (* out .PeerNetworkArn )
226+ if err != nil {
231227 resp .Diagnostics .AddError (
232228 create .ProblemStandardMessage (names .ODB , create .ErrActionReading , ResNameNetworkPeeringConnection , state .OdbPeeringConnectionId .ValueString (), err ),
233229 err .Error (),
234230 )
235231 return
236232 }
237-
238- peerVpcId := strings .Split (* out .PeerNetworkArn , "/" )[1 ]
239- state .PeerNetworkId = types .StringValue (peerVpcId )
233+ state .PeerNetworkId = types .StringValue (strings .Split (peerVpcARN .Resource , "/" )[1 ])
240234 state .CreatedAt = types .StringValue (out .CreatedAt .Format (time .RFC3339 ))
241- state .OdbNetworkId = types .StringValue (* odbNetworkId )
235+ state .OdbNetworkId = types .StringValue (strings . Split ( odbNetworkARNParsed . Resource , "/" )[ 1 ] )
242236
243237 resp .Diagnostics .Append (flex .Flatten (ctx , out , & state , flex .WithIgnoredFieldNamesAppend ("CreatedAt" ),
244238 flex .WithIgnoredFieldNamesAppend ("PeerNetworkId" ), flex .WithIgnoredFieldNamesAppend ("OdbNetworkId" ))... )
@@ -267,8 +261,28 @@ func (r *resourceNetworkPeeringConnection) Update(ctx context.Context, req resou
267261 )
268262 return
269263 }
270- plan .CreatedAt = types .StringValue (updatedOdbNetPeeringConn .CreatedAt .Format (time .RFC3339 ))
271- resp .Diagnostics .Append (flex .Flatten (ctx , updatedOdbNetPeeringConn , & plan , flex .WithIgnoredFieldNamesAppend ("CreatedAt" ))... )
264+ odbNetworkARNParsed , err := arn .Parse (* updatedOdbNetPeeringConn .OdbNetworkArn )
265+ if err != nil {
266+ resp .Diagnostics .AddError (
267+ create .ProblemStandardMessage (names .ODB , create .ErrActionReading , ResNameNetworkPeeringConnection , state .OdbPeeringConnectionId .ValueString (), err ),
268+ err .Error (),
269+ )
270+ return
271+ }
272+
273+ peerVpcARN , err := arn .Parse (* updatedOdbNetPeeringConn .PeerNetworkArn )
274+ if err != nil {
275+ resp .Diagnostics .AddError (
276+ create .ProblemStandardMessage (names .ODB , create .ErrActionReading , ResNameNetworkPeeringConnection , state .OdbPeeringConnectionId .ValueString (), err ),
277+ err .Error (),
278+ )
279+ return
280+ }
281+ state .PeerNetworkId = types .StringValue (strings .Split (peerVpcARN .Resource , "/" )[1 ])
282+ state .CreatedAt = types .StringValue (updatedOdbNetPeeringConn .CreatedAt .Format (time .RFC3339 ))
283+ state .OdbNetworkId = types .StringValue (strings .Split (odbNetworkARNParsed .Resource , "/" )[1 ])
284+ resp .Diagnostics .Append (flex .Flatten (ctx , updatedOdbNetPeeringConn , & plan , flex .WithIgnoredFieldNamesAppend ("CreatedAt" ), flex .WithIgnoredFieldNamesAppend ("CreatedAt" ),
285+ flex .WithIgnoredFieldNamesAppend ("PeerNetworkId" ), flex .WithIgnoredFieldNamesAppend ("OdbNetworkId" ))... )
272286 if resp .Diagnostics .HasError () {
273287 return
274288 }
0 commit comments