diff --git a/aws/data_source_aws_network_interface.go b/aws/data_source_aws_network_interface.go index 0a138faa150b..d1eca3e9fd5c 100644 --- a/aws/data_source_aws_network_interface.go +++ b/aws/data_source_aws_network_interface.go @@ -7,6 +7,7 @@ import ( "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/service/ec2" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" + "github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags" ) func dataSourceAwsNetworkInterface() *schema.Resource { @@ -180,6 +181,10 @@ func dataSourceAwsNetworkInterfaceRead(d *schema.ResourceData, meta interface{}) d.Set("requester_id", eni.RequesterId) d.Set("subnet_id", eni.SubnetId) d.Set("vpc_id", eni.VpcId) - d.Set("tags", tagsToMap(eni.TagSet)) + + if err := d.Set("tags", keyvaluetags.Ec2KeyValueTags(eni.TagSet).IgnoreAws().Map()); err != nil { + return fmt.Errorf("error setting tags: %s", err) + } + return nil } diff --git a/aws/data_source_aws_network_interfaces.go b/aws/data_source_aws_network_interfaces.go index 1fe328038d03..228c1fb04b2f 100644 --- a/aws/data_source_aws_network_interfaces.go +++ b/aws/data_source_aws_network_interfaces.go @@ -9,6 +9,7 @@ import ( "github.com/aws/aws-sdk-go/service/ec2" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" + "github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags" ) func dataSourceAwsNetworkInterfaces() *schema.Resource { @@ -40,7 +41,7 @@ func dataSourceAwsNetworkInterfacesRead(d *schema.ResourceData, meta interface{} if tagsOk { req.Filters = buildEC2TagFilterList( - tagsFromMap(tags.(map[string]interface{})), + keyvaluetags.New(tags.(map[string]interface{})).Ec2Tags(), ) } diff --git a/aws/resource_aws_network_interface.go b/aws/resource_aws_network_interface.go index 01080e21e25d..b568909a9782 100644 --- a/aws/resource_aws_network_interface.go +++ b/aws/resource_aws_network_interface.go @@ -14,6 +14,7 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/hashcode" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" + "github.com/terraform-providers/terraform-provider-aws/aws/internal/keyvaluetags" ) func resourceAwsNetworkInterface() *schema.Resource { @@ -199,7 +200,7 @@ func resourceAwsNetworkInterfaceRead(d *schema.ResourceData, meta interface{}) e d.Set("source_dest_check", eni.SourceDestCheck) d.Set("subnet_id", eni.SubnetId) - if err := d.Set("tags", tagsToMap(eni.TagSet)); err != nil { + if err := d.Set("tags", keyvaluetags.Ec2KeyValueTags(eni.TagSet).IgnoreAws().Map()); err != nil { return fmt.Errorf("error setting tags: %s", err) } @@ -416,10 +417,12 @@ func resourceAwsNetworkInterfaceUpdate(d *schema.ResourceData, meta interface{}) d.SetPartial("description") } - if err := setTags(conn, d); err != nil { - return err - } else { - d.SetPartial("tags") + if d.HasChange("tags") { + o, n := d.GetChange("tags") + + if err := keyvaluetags.Ec2UpdateTags(conn, d.Id(), o, n); err != nil { + return fmt.Errorf("error updating EC2 Network Interface (%s) tags: %s", d.Id(), err) + } } d.Partial(false)