Skip to content

Commit e70bd48

Browse files
committed
d/aws_iam_openid_connect_provider: Use 'inttypes.IsZero'.
1 parent 5a46ea8 commit e70bd48

File tree

2 files changed

+29
-28
lines changed

2 files changed

+29
-28
lines changed

internal/service/iam/openid_connect_provider.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,14 @@ func resourceOpenIDConnectProviderDelete(ctx context.Context, d *schema.Resource
224224
}
225225

226226
func findOpenIDConnectProviderByARN(ctx context.Context, conn *iam.Client, arn string) (*iam.GetOpenIDConnectProviderOutput, error) {
227-
input := &iam.GetOpenIDConnectProviderInput{
227+
input := iam.GetOpenIDConnectProviderInput{
228228
OpenIDConnectProviderArn: aws.String(arn),
229229
}
230230

231+
return findOpenIDConnectProvider(ctx, conn, &input)
232+
}
233+
234+
func findOpenIDConnectProvider(ctx context.Context, conn *iam.Client, input *iam.GetOpenIDConnectProviderInput) (*iam.GetOpenIDConnectProviderOutput, error) {
231235
output, err := conn.GetOpenIDConnectProvider(ctx, input)
232236

233237
if errs.IsA[*awstypes.NoSuchEntityException](err) {
@@ -236,6 +240,7 @@ func findOpenIDConnectProviderByARN(ctx context.Context, conn *iam.Client, arn s
236240
LastRequest: input,
237241
}
238242
}
243+
239244
if err != nil {
240245
return nil, err
241246
}

internal/service/iam/openid_connect_provider_data_source.go

Lines changed: 23 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,18 +6,18 @@ package iam
66
import (
77
"context"
88
"fmt"
9-
"reflect"
109
"strings"
1110

1211
"github.com/aws/aws-sdk-go-v2/aws"
1312
"github.com/aws/aws-sdk-go-v2/service/iam"
1413
awstypes "github.com/aws/aws-sdk-go-v2/service/iam/types"
1514
"github.com/hashicorp/terraform-plugin-sdk/v2/diag"
15+
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/retry"
1616
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
1717
"github.com/hashicorp/terraform-provider-aws/internal/conns"
1818
"github.com/hashicorp/terraform-provider-aws/internal/errs/sdkdiag"
19-
"github.com/hashicorp/terraform-provider-aws/internal/flex"
2019
tftags "github.com/hashicorp/terraform-provider-aws/internal/tags"
20+
inttypes "github.com/hashicorp/terraform-provider-aws/internal/types"
2121
"github.com/hashicorp/terraform-provider-aws/internal/verify"
2222
"github.com/hashicorp/terraform-provider-aws/names"
2323
)
@@ -42,12 +42,12 @@ func dataSourceOpenIDConnectProvider() *schema.Resource {
4242
Computed: true,
4343
Elem: &schema.Schema{Type: schema.TypeString},
4444
},
45+
names.AttrTags: tftags.TagsSchemaComputed(),
4546
"thumbprint_list": {
4647
Type: schema.TypeList,
4748
Computed: true,
4849
Elem: &schema.Schema{Type: schema.TypeString},
4950
},
50-
names.AttrTags: tftags.TagsSchemaComputed(),
5151
names.AttrURL: {
5252
Type: schema.TypeString,
5353
Optional: true,
@@ -62,71 +62,67 @@ func dataSourceOpenIDConnectProvider() *schema.Resource {
6262

6363
func dataSourceOpenIDConnectProviderRead(ctx context.Context, d *schema.ResourceData, meta any) diag.Diagnostics {
6464
var diags diag.Diagnostics
65-
6665
conn := meta.(*conns.AWSClient).IAMClient(ctx)
6766

68-
input := &iam.GetOpenIDConnectProviderInput{}
67+
var input iam.GetOpenIDConnectProviderInput
6968

7069
if v, ok := d.GetOk(names.AttrARN); ok {
7170
input.OpenIDConnectProviderArn = aws.String(v.(string))
7271
} else if v, ok := d.GetOk(names.AttrURL); ok {
7372
url := v.(string)
7473

75-
oidcpEntry, err := dataSourceGetOpenIDConnectProviderByURL(ctx, conn, url)
74+
oidcpEntry, err := findOpenIDConnectProviderByURL(ctx, conn, url)
75+
7676
if err != nil {
77-
return sdkdiag.AppendErrorf(diags, "finding IAM OIDC Provider by url (%s): %s", url, err)
77+
return sdkdiag.AppendErrorf(diags, "reading IAM OIDC Provider (%s): %s", url, err)
7878
}
7979

80-
if oidcpEntry == nil {
81-
return sdkdiag.AppendErrorf(diags, "finding IAM OIDC Provider by url (%s): not found", url)
82-
}
8380
input.OpenIDConnectProviderArn = oidcpEntry.Arn
8481
}
8582

86-
resp, err := conn.GetOpenIDConnectProvider(ctx, input)
83+
output, err := findOpenIDConnectProvider(ctx, conn, &input)
8784

8885
if err != nil {
8986
return sdkdiag.AppendErrorf(diags, "reading IAM OIDC Provider: %s", err)
9087
}
9188

92-
d.SetId(aws.ToString(input.OpenIDConnectProviderArn))
93-
d.Set(names.AttrARN, input.OpenIDConnectProviderArn)
94-
d.Set(names.AttrURL, resp.Url)
95-
d.Set("client_id_list", flex.FlattenStringValueList(resp.ClientIDList))
96-
d.Set("thumbprint_list", flex.FlattenStringValueList(resp.ThumbprintList))
89+
arn := aws.ToString(input.OpenIDConnectProviderArn)
90+
d.SetId(arn)
91+
d.Set(names.AttrARN, arn)
92+
d.Set("client_id_list", output.ClientIDList)
93+
d.Set("thumbprint_list", output.ThumbprintList)
94+
d.Set(names.AttrURL, output.Url)
9795

98-
setTagsOut(ctx, resp.Tags)
96+
setTagsOut(ctx, output.Tags)
9997

10098
return diags
10199
}
102100

103-
func dataSourceGetOpenIDConnectProviderByURL(ctx context.Context, conn *iam.Client, url string) (*awstypes.OpenIDConnectProviderListEntry, error) {
104-
var result *awstypes.OpenIDConnectProviderListEntry
105-
106-
input := &iam.ListOpenIDConnectProvidersInput{}
101+
func findOpenIDConnectProviderByURL(ctx context.Context, conn *iam.Client, url string) (*awstypes.OpenIDConnectProviderListEntry, error) {
102+
var input iam.ListOpenIDConnectProvidersInput
107103

108-
output, err := conn.ListOpenIDConnectProviders(ctx, input)
104+
output, err := conn.ListOpenIDConnectProviders(ctx, &input)
109105

110106
if err != nil {
111107
return nil, err
112108
}
113109

114-
for _, oidcp := range output.OpenIDConnectProviderList {
115-
if reflect.ValueOf(oidcp).IsZero() {
110+
for _, v := range output.OpenIDConnectProviderList {
111+
if p := &v; inttypes.IsZero(p) {
116112
continue
117113
}
118114

119-
arnUrl, err := urlFromOpenIDConnectProviderARN(aws.ToString(oidcp.Arn))
115+
arnUrl, err := urlFromOpenIDConnectProviderARN(aws.ToString(v.Arn))
120116
if err != nil {
121117
return nil, err
122118
}
123119

124120
if arnUrl == strings.TrimPrefix(url, "https://") {
125-
return &oidcp, nil
121+
return &v, nil
126122
}
127123
}
128124

129-
return result, nil
125+
return nil, &retry.NotFoundError{}
130126
}
131127

132128
func urlFromOpenIDConnectProviderARN(arn string) (string, error) {

0 commit comments

Comments
 (0)