diff --git a/internal/service/ec2/ec2_spot_instance_request.go b/internal/service/ec2/ec2_spot_instance_request.go index a7e6ab89fa1a..ecd794c3ae91 100644 --- a/internal/service/ec2/ec2_spot_instance_request.go +++ b/internal/service/ec2/ec2_spot_instance_request.go @@ -49,7 +49,7 @@ func ResourceSpotInstanceRequest() *schema.Resource { if v.Computed && !v.Optional { continue } - if k == names.AttrTags { + if k == names.AttrTags || k == "volume_tags" { continue } v.ForceNew = true diff --git a/internal/service/ec2/tags.go b/internal/service/ec2/tags.go index 729383ff674e..5887f2da49c4 100644 --- a/internal/service/ec2/tags.go +++ b/internal/service/ec2/tags.go @@ -111,8 +111,10 @@ func tagsFromTagDescriptions(tds []*ec2.TagDescription) []*ec2.Tag { } func tagsSchemaConflictsWith(conflictsWith []string) *schema.Schema { - v := tftags.TagsSchema() - v.ConflictsWith = conflictsWith - - return v + return &schema.Schema{ + Type: schema.TypeMap, + Optional: true, + Elem: &schema.Schema{Type: schema.TypeString}, + ConflictsWith: conflictsWith, + } } diff --git a/internal/tags/tags.go b/internal/tags/tags.go index fbe5fe2385a0..76893e46983e 100644 --- a/internal/tags/tags.go +++ b/internal/tags/tags.go @@ -4,29 +4,35 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) -// TagsSchema returns the schema to use for tags. -func TagsSchema() *schema.Schema { - return &schema.Schema{ +var ( + tagsSchema *schema.Schema = &schema.Schema{ Type: schema.TypeMap, Optional: true, Elem: &schema.Schema{Type: schema.TypeString}, } -} - -func TagsSchemaComputed() *schema.Schema { - return &schema.Schema{ + tagsSchemaComputed *schema.Schema = &schema.Schema{ Type: schema.TypeMap, Optional: true, Computed: true, Elem: &schema.Schema{Type: schema.TypeString}, } -} - -func TagsSchemaForceNew() *schema.Schema { - return &schema.Schema{ + tagsSchemaForceNew *schema.Schema = &schema.Schema{ Type: schema.TypeMap, Optional: true, ForceNew: true, Elem: &schema.Schema{Type: schema.TypeString}, } +) + +// TagsSchema returns the schema to use for tags. +func TagsSchema() *schema.Schema { + return tagsSchema +} + +func TagsSchemaComputed() *schema.Schema { + return tagsSchemaComputed +} + +func TagsSchemaForceNew() *schema.Schema { + return tagsSchemaForceNew }