Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tech debt: Reduce tags boilerplate code - Plugin SDK resources q* (Phase 3c) #30478

Merged
merged 2 commits into from
Apr 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 6 additions & 33 deletions internal/service/qldb/ledger.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ import (
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
"github.com/hashicorp/terraform-provider-aws/internal/verify"
"github.com/hashicorp/terraform-provider-aws/names"
)

// @SDKResource("aws_qldb_ledger")
// @SDKResource("aws_qldb_ledger", name="Ledger")
// @Tags(identifierAttribute="arn")
func ResourceLedger() *schema.Resource {
return &schema.Resource{
CreateWithoutTimeout: resourceLedgerCreate,
Expand Down Expand Up @@ -71,8 +73,8 @@ func ResourceLedger() *schema.Resource {
Required: true,
ValidateFunc: validation.StringInSlice(qldb.PermissionsMode_Values(), false),
},
"tags": tftags.TagsSchema(),
"tags_all": tftags.TagsSchemaComputed(),
names.AttrTags: tftags.TagsSchema(),
names.AttrTagsAll: tftags.TagsSchemaComputed(),
},

CustomizeDiff: verify.SetTagsDiff,
Expand All @@ -81,15 +83,13 @@ func ResourceLedger() *schema.Resource {

func resourceLedgerCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QLDBConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
tags := defaultTagsConfig.MergeTags(tftags.New(ctx, d.Get("tags").(map[string]interface{})))

name := create.Name(d.Get("name").(string), "tf")
input := &qldb.CreateLedgerInput{
DeletionProtection: aws.Bool(d.Get("deletion_protection").(bool)),
Name: aws.String(name),
PermissionsMode: aws.String(d.Get("permissions_mode").(string)),
Tags: Tags(tags.IgnoreAWS()),
Tags: GetTagsIn(ctx),
}

if v, ok := d.GetOk("kms_key"); ok {
Expand All @@ -114,8 +114,6 @@ func resourceLedgerCreate(ctx context.Context, d *schema.ResourceData, meta inte

func resourceLedgerRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QLDBConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig

ledger, err := FindLedgerByName(ctx, conn, d.Id())

Expand All @@ -139,23 +137,6 @@ func resourceLedgerRead(ctx context.Context, d *schema.ResourceData, meta interf
d.Set("name", ledger.Name)
d.Set("permissions_mode", ledger.PermissionsMode)

tags, err := ListTags(ctx, conn, d.Get("arn").(string))

if err != nil {
return diag.Errorf("listing tags for QLDB Ledger (%s): %s", d.Id(), err)
}

tags = tags.IgnoreAWS().IgnoreConfig(ignoreTagsConfig)

//lintignore:AWSR002
if err := d.Set("tags", tags.RemoveDefaultConfig(defaultTagsConfig).Map()); err != nil {
return diag.Errorf("setting tags: %s", err)
}

if err := d.Set("tags_all", tags.Map()); err != nil {
return diag.Errorf("setting tags_all: %s", err)
}

return nil
}

Expand Down Expand Up @@ -190,14 +171,6 @@ func resourceLedgerUpdate(ctx context.Context, d *schema.ResourceData, meta inte
}
}

if d.HasChange("tags_all") {
o, n := d.GetChange("tags_all")

if err := UpdateTags(ctx, conn, d.Get("arn").(string), o, n); err != nil {
return diag.Errorf("updating tags: %s", err)
}
}

return resourceLedgerRead(ctx, d, meta)
}

Expand Down
8 changes: 8 additions & 0 deletions internal/service/qldb/service_package_gen.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

42 changes: 7 additions & 35 deletions internal/service/qldb/stream.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,11 @@ import (
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
"github.com/hashicorp/terraform-provider-aws/internal/tfresource"
"github.com/hashicorp/terraform-provider-aws/internal/verify"
"github.com/hashicorp/terraform-provider-aws/names"
)

// @SDKResource("aws_qldb_stream")
// @SDKResource("aws_qldb_stream", name="Stream")
// @Tags(identifierAttribute="arn")
func ResourceStream() *schema.Resource {
return &schema.Resource{
CreateWithoutTimeout: resourceStreamCreate,
Expand Down Expand Up @@ -88,8 +90,8 @@ func ResourceStream() *schema.Resource {
validation.StringLenBetween(1, 32),
),
},
"tags": tftags.TagsSchema(),
"tags_all": tftags.TagsSchemaComputed(),
names.AttrTags: tftags.TagsSchema(),
names.AttrTagsAll: tftags.TagsSchemaComputed(),
},

CustomizeDiff: verify.SetTagsDiff,
Expand All @@ -98,16 +100,14 @@ func ResourceStream() *schema.Resource {

func resourceStreamCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QLDBConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
tags := defaultTagsConfig.MergeTags(tftags.New(ctx, d.Get("tags").(map[string]interface{})))

ledgerName := d.Get("ledger_name").(string)
name := d.Get("stream_name").(string)
input := &qldb.StreamJournalToKinesisInput{
LedgerName: aws.String(ledgerName),
RoleArn: aws.String(d.Get("role_arn").(string)),
StreamName: aws.String(name),
Tags: Tags(tags.IgnoreAWS()),
Tags: GetTagsIn(ctx),
}

if v, ok := d.GetOk("exclusive_end_time"); ok {
Expand Down Expand Up @@ -142,8 +142,6 @@ func resourceStreamCreate(ctx context.Context, d *schema.ResourceData, meta inte

func resourceStreamRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QLDBConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig

ledgerName := d.Get("ledger_name").(string)
stream, err := FindStream(ctx, conn, ledgerName, d.Id())
Expand Down Expand Up @@ -180,37 +178,11 @@ func resourceStreamRead(ctx context.Context, d *schema.ResourceData, meta interf
d.Set("role_arn", stream.RoleArn)
d.Set("stream_name", stream.StreamName)

tags, err := ListTags(ctx, conn, d.Get("arn").(string))

if err != nil {
return diag.Errorf("listing tags for QLDB Stream (%s): %s", d.Id(), err)
}

tags = tags.IgnoreAWS().IgnoreConfig(ignoreTagsConfig)

//lintignore:AWSR002
if err := d.Set("tags", tags.RemoveDefaultConfig(defaultTagsConfig).Map()); err != nil {
return diag.Errorf("setting tags: %s", err)
}

if err := d.Set("tags_all", tags.Map()); err != nil {
return diag.Errorf("setting tags_all: %s", err)
}

return nil
}

func resourceStreamUpdate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QLDBConn()

if d.HasChange("tags") {
o, n := d.GetChange("tags")

if err := UpdateTags(ctx, conn, d.Get("arn").(string), o, n); err != nil {
return diag.Errorf("updating tags: %s", err)
}
}

// Tags only.
return resourceStreamRead(ctx, d, meta)
}

Expand Down
42 changes: 6 additions & 36 deletions internal/service/quicksight/data_set.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,11 @@ import (
"github.com/hashicorp/terraform-provider-aws/internal/flex"
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
"github.com/hashicorp/terraform-provider-aws/internal/verify"
"github.com/hashicorp/terraform-provider-aws/names"
)

// @SDKResource("aws_quicksight_data_set")
// @SDKResource("aws_quicksight_data_set", name="Data Set")
// @Tags(identifierAttribute="arn")
func ResourceDataSet() *schema.Resource {
return &schema.Resource{
CreateWithoutTimeout: resourceDataSetCreate,
Expand Down Expand Up @@ -277,8 +279,8 @@ func ResourceDataSet() *schema.Resource {
},
},
},
"tags": tftags.TagsSchema(),
"tags_all": tftags.TagsSchemaComputed(),
names.AttrTags: tftags.TagsSchema(),
names.AttrTagsAll: tftags.TagsSchemaComputed(),
},
CustomizeDiff: verify.SetTagsDiff,
}
Expand Down Expand Up @@ -752,7 +754,6 @@ func physicalTableMapSchema() *schema.Resource {

func resourceDataSetCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QuickSightConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig

awsAccountId := meta.(*conns.AWSClient).AccountID
if v, ok := d.GetOk("aws_account_id"); ok {
Expand All @@ -768,11 +769,7 @@ func resourceDataSetCreate(ctx context.Context, d *schema.ResourceData, meta int
ImportMode: aws.String(d.Get("import_mode").(string)),
PhysicalTableMap: expandDataSetPhysicalTableMap(d.Get("physical_table_map").(*schema.Set)),
Name: aws.String(d.Get("name").(string)),
}

tags := defaultTagsConfig.MergeTags(tftags.New(ctx, d.Get("tags").(map[string]interface{})))
if len(tags) > 0 {
input.Tags = Tags(tags.IgnoreAWS())
Tags: GetTagsIn(ctx),
}

if v, ok := d.GetOk("column_groups"); ok && len(v.([]interface{})) > 0 && v.([]interface{})[0] != nil {
Expand Down Expand Up @@ -817,8 +814,6 @@ func resourceDataSetCreate(ctx context.Context, d *schema.ResourceData, meta int

func resourceDataSetRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QuickSightConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig

awsAccountId, dataSetId, err := ParseDataSetID(d.Id())
if err != nil {
Expand Down Expand Up @@ -886,23 +881,6 @@ func resourceDataSetRead(ctx context.Context, d *schema.ResourceData, meta inter
return diag.Errorf("error setting row_level_permission_tag_configuration: %s", err)
}

tags, err := ListTags(ctx, conn, d.Get("arn").(string))

if err != nil {
return diag.Errorf("error listing tags for QuickSight Data Set (%s): %s", d.Id(), err)
}

tags = tags.IgnoreAWS().IgnoreConfig(ignoreTagsConfig)

//lintignore:AWSR002
if err := d.Set("tags", tags.RemoveDefaultConfig(defaultTagsConfig).Map()); err != nil {
return diag.Errorf("error setting tags: %s", err)
}

if err := d.Set("tags_all", tags.Map()); err != nil {
return diag.Errorf("error setting tags_all: %s", err)
}

permsResp, err := conn.DescribeDataSetPermissionsWithContext(ctx, &quicksight.DescribeDataSetPermissionsInput{
AwsAccountId: aws.String(awsAccountId),
DataSetId: aws.String(dataSetId),
Expand Down Expand Up @@ -1001,14 +979,6 @@ func resourceDataSetUpdate(ctx context.Context, d *schema.ResourceData, meta int
}
}

if d.HasChange("tags_all") {
o, n := d.GetChange("tags_all")

if err := UpdateTags(ctx, conn, d.Get("arn").(string), o, n); err != nil {
return diag.Errorf("error updating QuickSight Data Source (%s) tags: %s", d.Id(), err)
}
}

return resourceDataSetRead(ctx, d, meta)
}

Expand Down
43 changes: 6 additions & 37 deletions internal/service/quicksight/data_source.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,11 @@ import (
"github.com/hashicorp/terraform-provider-aws/internal/conns"
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
"github.com/hashicorp/terraform-provider-aws/internal/verify"
"github.com/hashicorp/terraform-provider-aws/names"
)

// @SDKResource("aws_quicksight_data_source")
// @SDKResource("aws_quicksight_data_source", name="Data Source")
// @Tags(identifierAttribute="arn")
func ResourceDataSource() *schema.Resource {
return &schema.Resource{
CreateWithoutTimeout: resourceDataSourceCreate,
Expand Down Expand Up @@ -572,9 +574,8 @@ func ResourceDataSource() *schema.Resource {
},
},

"tags": tftags.TagsSchema(),

"tags_all": tftags.TagsSchemaComputed(),
names.AttrTags: tftags.TagsSchema(),
names.AttrTagsAll: tftags.TagsSchemaComputed(),

"type": {
Type: schema.TypeString,
Expand Down Expand Up @@ -604,8 +605,6 @@ func ResourceDataSource() *schema.Resource {

func resourceDataSourceCreate(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QuickSightConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
tags := defaultTagsConfig.MergeTags(tftags.New(ctx, d.Get("tags").(map[string]interface{})))

awsAccountId := meta.(*conns.AWSClient).AccountID
id := d.Get("data_source_id").(string)
Expand All @@ -619,13 +618,10 @@ func resourceDataSourceCreate(ctx context.Context, d *schema.ResourceData, meta
DataSourceId: aws.String(id),
DataSourceParameters: expandDataSourceParameters(d.Get("parameters").([]interface{})),
Name: aws.String(d.Get("name").(string)),
Tags: GetTagsIn(ctx),
Type: aws.String(d.Get("type").(string)),
}

if len(tags) > 0 {
params.Tags = Tags(tags.IgnoreAWS())
}

if v, ok := d.GetOk("credentials"); ok && len(v.([]interface{})) > 0 && v.([]interface{})[0] != nil {
params.Credentials = expandDataSourceCredentials(v.([]interface{}))
}
Expand Down Expand Up @@ -658,8 +654,6 @@ func resourceDataSourceCreate(ctx context.Context, d *schema.ResourceData, meta

func resourceDataSourceRead(ctx context.Context, d *schema.ResourceData, meta interface{}) diag.Diagnostics {
conn := meta.(*conns.AWSClient).QuickSightConn()
defaultTagsConfig := meta.(*conns.AWSClient).DefaultTagsConfig
ignoreTagsConfig := meta.(*conns.AWSClient).IgnoreTagsConfig

awsAccountId, dataSourceId, err := ParseDataSourceID(d.Id())
if err != nil {
Expand Down Expand Up @@ -702,23 +696,6 @@ func resourceDataSourceRead(ctx context.Context, d *schema.ResourceData, meta in
return diag.Errorf("error setting ssl_properties: %s", err)
}

tags, err := ListTags(ctx, conn, d.Get("arn").(string))

if err != nil {
return diag.Errorf("error listing tags for QuickSight Data Source (%s): %s", d.Id(), err)
}

tags = tags.IgnoreAWS().IgnoreConfig(ignoreTagsConfig)

//lintignore:AWSR002
if err := d.Set("tags", tags.RemoveDefaultConfig(defaultTagsConfig).Map()); err != nil {
return diag.Errorf("error setting tags: %s", err)
}

if err := d.Set("tags_all", tags.Map()); err != nil {
return diag.Errorf("error setting tags_all: %s", err)
}

d.Set("type", dataSource.Type)

if err := d.Set("vpc_connection_properties", flattenVPCConnectionProperties(dataSource.VpcConnectionProperties)); err != nil {
Expand Down Expand Up @@ -815,14 +792,6 @@ func resourceDataSourceUpdate(ctx context.Context, d *schema.ResourceData, meta
}
}

if d.HasChange("tags_all") {
o, n := d.GetChange("tags_all")

if err := UpdateTags(ctx, conn, d.Get("arn").(string), o, n); err != nil {
return diag.Errorf("error updating QuickSight Data Source (%s) tags: %s", d.Id(), err)
}
}

return resourceDataSourceRead(ctx, d, meta)
}

Expand Down
Loading