func setGlacierVaultTags(conn *glacier.Glacier, d *schema.ResourceData) error { if d.HasChange("tags") { oraw, nraw := d.GetChange("tags") o := oraw.(map[string]interface{}) n := nraw.(map[string]interface{}) create, remove := diffGlacierVaultTags(mapGlacierVaultTags(o), mapGlacierVaultTags(n)) // Set tags if len(remove) > 0 { tagsToRemove := &glacier.RemoveTagsFromVaultInput{ VaultName: aws.String(d.Id()), TagKeys: glacierStringsToPointyString(remove), } log.Printf("[DEBUG] Removing tags: from %s", d.Id()) _, err := conn.RemoveTagsFromVault(tagsToRemove) if err != nil { return err } } if len(create) > 0 { tagsToAdd := &glacier.AddTagsToVaultInput{ VaultName: aws.String(d.Id()), Tags: glacierVaultTagsFromMap(create), } log.Printf("[DEBUG] Creating tags: for %s", d.Id()) _, err := conn.AddTagsToVault(tagsToAdd) if err != nil { return err } } } return nil }