@@ -421,9 +421,18 @@ func changeFromTfplan(rawChange *planproto.Change) (*plans.ChangeSrc, error) {
421421 }
422422
423423 if rawChange .Importing != nil {
424+ var identity plans.DynamicValue
425+ if rawChange .Importing .Identity != nil {
426+ var err error
427+ identity , err = valueFromTfplan (rawChange .Importing .Identity )
428+ if err != nil {
429+ return nil , fmt .Errorf ("invalid \" identity\" value: %s" , err )
430+ }
431+ }
424432 ret .Importing = & plans.ImportingSrc {
425- ID : rawChange .Importing .Id ,
426- Unknown : rawChange .Importing .Unknown ,
433+ ID : rawChange .Importing .Id ,
434+ Unknown : rawChange .Importing .Unknown ,
435+ Identity : identity ,
427436 }
428437 }
429438 ret .GeneratedConfig = rawChange .GeneratedConfig
@@ -443,6 +452,21 @@ func changeFromTfplan(rawChange *planproto.Change) (*plans.ChangeSrc, error) {
443452 ret .AfterSensitivePaths = afterValSensitiveAttrs
444453 }
445454
455+ if rawChange .BeforeIdentity != nil {
456+ beforeIdentity , err := valueFromTfplan (rawChange .BeforeIdentity )
457+ if err != nil {
458+ return nil , fmt .Errorf ("failed to decode before identity: %s" , err )
459+ }
460+ ret .BeforeIdentity = beforeIdentity
461+ }
462+ if rawChange .AfterIdentity != nil {
463+ afterIdentity , err := valueFromTfplan (rawChange .AfterIdentity )
464+ if err != nil {
465+ return nil , fmt .Errorf ("failed to decode after identity: %s" , err )
466+ }
467+ ret .AfterIdentity = afterIdentity
468+ }
469+
446470 return ret , nil
447471}
448472
@@ -809,14 +833,26 @@ func changeToTfplan(change *plans.ChangeSrc) (*planproto.Change, error) {
809833 ret .AfterSensitivePaths = afterSensitivePaths
810834
811835 if change .Importing != nil {
836+ var identity * planproto.DynamicValue
837+ if change .Importing .Identity != nil {
838+ identity = planproto .NewPlanDynamicValue (change .Importing .Identity )
839+ }
812840 ret .Importing = & planproto.Importing {
813- Id : change .Importing .ID ,
814- Unknown : change .Importing .Unknown ,
841+ Id : change .Importing .ID ,
842+ Unknown : change .Importing .Unknown ,
843+ Identity : identity ,
815844 }
816845
817846 }
818847 ret .GeneratedConfig = change .GeneratedConfig
819848
849+ if change .BeforeIdentity != nil {
850+ ret .BeforeIdentity = planproto .NewPlanDynamicValue (change .BeforeIdentity )
851+ }
852+ if change .AfterIdentity != nil {
853+ ret .AfterIdentity = planproto .NewPlanDynamicValue (change .AfterIdentity )
854+ }
855+
820856 ret .Action , err = ActionToProto (change .Action )
821857 if err != nil {
822858 return nil , err
0 commit comments