4
4
package wafv2
5
5
6
6
import (
7
- "fmt "
7
+ "context "
8
8
"log"
9
9
"strings"
10
10
11
11
"github.com/aws/aws-sdk-go-v2/aws"
12
12
"github.com/aws/aws-sdk-go-v2/service/wafv2"
13
13
awstypes "github.com/aws/aws-sdk-go-v2/service/wafv2/types"
14
- "github.com/hashicorp/terraform-plugin-testing/helper/resource "
14
+ "github.com/hashicorp/terraform-provider-aws/internal/conns "
15
15
"github.com/hashicorp/terraform-provider-aws/internal/sweep"
16
16
"github.com/hashicorp/terraform-provider-aws/internal/sweep/awsv2"
17
17
"github.com/hashicorp/terraform-provider-aws/internal/sweep/framework"
18
18
"github.com/hashicorp/terraform-provider-aws/names"
19
19
)
20
20
21
21
func RegisterSweepers () {
22
- resource .AddTestSweepers ("aws_wafv2_ip_set" , & resource.Sweeper {
23
- Name : "aws_wafv2_ip_set" ,
24
- F : sweepIPSets ,
25
- Dependencies : []string {
26
- "aws_wafv2_rule_group" ,
27
- "aws_wafv2_web_acl" ,
28
- },
29
- })
22
+ awsv2 .Register ("aws_wafv2_api_key" , sweepAPIKeys )
23
+ awsv2 .Register ("aws_wafv2_ip_set" , sweepIPSets , "aws_wafv2_rule_group" , "aws_wafv2_web_acl" )
24
+ awsv2 .Register ("aws_wafv2_regex_pattern_set" , sweepRegexPatternSets , "aws_wafv2_rule_group" , "aws_wafv2_web_acl" )
25
+ awsv2 .Register ("aws_wafv2_rule_group" , sweepRuleGroups , "aws_wafv2_web_acl" )
26
+ awsv2 .Register ("aws_wafv2_web_acl" , sweepWebACLs )
27
+ }
30
28
31
- resource .AddTestSweepers ("aws_wafv2_regex_pattern_set" , & resource.Sweeper {
32
- Name : "aws_wafv2_regex_pattern_set" ,
33
- F : sweepRegexPatternSets ,
34
- Dependencies : []string {
35
- "aws_wafv2_rule_group" ,
36
- "aws_wafv2_web_acl" ,
37
- },
38
- })
29
+ func sweepAPIKeys (ctx context.Context , client * conns.AWSClient ) ([]sweep.Sweepable , error ) {
30
+ conn := client .WAFV2Client (ctx )
31
+ var input wafv2.ListAPIKeysInput
32
+ input .Scope = awstypes .ScopeRegional
33
+ sweepResources := make ([]sweep.Sweepable , 0 )
39
34
40
- resource .AddTestSweepers ("aws_wafv2_rule_group" , & resource.Sweeper {
41
- Name : "aws_wafv2_rule_group" ,
42
- F : sweepRuleGroups ,
43
- Dependencies : []string {
44
- "aws_wafv2_web_acl" ,
45
- },
46
- })
35
+ err := listAPIKeysPages (ctx , conn , & input , func (page * wafv2.ListAPIKeysOutput , lastPage bool ) bool {
36
+ if page == nil {
37
+ return ! lastPage
38
+ }
47
39
48
- resource .AddTestSweepers ("aws_wafv2_web_acl" , & resource.Sweeper {
49
- Name : "aws_wafv2_web_acl" ,
50
- F : sweepWebACLs ,
51
- })
40
+ for _ , v := range page .APIKeySummaries {
41
+ sweepResources = append (sweepResources , framework .NewSweepResource (newAPIKeyResource , client ,
42
+ framework .NewAttribute ("api_key" , aws .ToString (v .APIKey )),
43
+ framework .NewAttribute (names .AttrScope , awstypes .ScopeRegional ),
44
+ ))
45
+ }
52
46
53
- resource .AddTestSweepers ("aws_wafv2_api_key" , & resource.Sweeper {
54
- Name : "aws_wafv2_api_key" ,
55
- F : sweepAPIKeys ,
47
+ return ! lastPage
56
48
})
57
- }
58
49
59
- func sweepIPSets (region string ) error {
60
- ctx := sweep .Context (region )
61
- client , err := sweep .SharedRegionalSweepClient (ctx , region )
62
50
if err != nil {
63
- return fmt . Errorf ( "error getting client: %s" , err )
51
+ return nil , err
64
52
}
53
+
54
+ return sweepResources , nil
55
+ }
56
+
57
+ func sweepIPSets (ctx context.Context , client * conns.AWSClient ) ([]sweep.Sweepable , error ) {
65
58
conn := client .WAFV2Client (ctx )
66
- input := & wafv2.ListIPSetsInput {
67
- Scope : awstypes .ScopeRegional ,
68
- }
59
+ var input wafv2.ListIPSetsInput
60
+ input .Scope = awstypes .ScopeRegional
69
61
sweepResources := make ([]sweep.Sweepable , 0 )
70
62
71
- err = listIPSetsPages (ctx , conn , input , func (page * wafv2.ListIPSetsOutput , lastPage bool ) bool {
63
+ err : = listIPSetsPages (ctx , conn , & input , func (page * wafv2.ListIPSetsOutput , lastPage bool ) bool {
72
64
if page == nil {
73
65
return ! lastPage
74
66
}
@@ -87,37 +79,20 @@ func sweepIPSets(region string) error {
87
79
return ! lastPage
88
80
})
89
81
90
- if awsv2 .SkipSweepError (err ) {
91
- log .Printf ("[WARN] Skipping WAFv2 IPSet sweep for %s: %s" , region , err )
92
- return nil
93
- }
94
-
95
- if err != nil {
96
- return fmt .Errorf ("error listing WAFv2 IPSets (%s): %w" , region , err )
97
- }
98
-
99
- err = sweep .SweepOrchestrator (ctx , sweepResources )
100
-
101
82
if err != nil {
102
- return fmt . Errorf ( "error sweeping WAFv2 IPSets (%s): %w" , region , err )
83
+ return nil , err
103
84
}
104
85
105
- return nil
86
+ return sweepResources , nil
106
87
}
107
88
108
- func sweepRegexPatternSets (region string ) error {
109
- ctx := sweep .Context (region )
110
- client , err := sweep .SharedRegionalSweepClient (ctx , region )
111
- if err != nil {
112
- return fmt .Errorf ("error getting client: %s" , err )
113
- }
89
+ func sweepRegexPatternSets (ctx context.Context , client * conns.AWSClient ) ([]sweep.Sweepable , error ) {
114
90
conn := client .WAFV2Client (ctx )
115
- input := & wafv2.ListRegexPatternSetsInput {
116
- Scope : awstypes .ScopeRegional ,
117
- }
91
+ var input wafv2.ListRegexPatternSetsInput
92
+ input .Scope = awstypes .ScopeRegional
118
93
sweepResources := make ([]sweep.Sweepable , 0 )
119
94
120
- err = listRegexPatternSetsPages (ctx , conn , input , func (page * wafv2.ListRegexPatternSetsOutput , lastPage bool ) bool {
95
+ err : = listRegexPatternSetsPages (ctx , conn , & input , func (page * wafv2.ListRegexPatternSetsOutput , lastPage bool ) bool {
121
96
if page == nil {
122
97
return ! lastPage
123
98
}
@@ -136,37 +111,20 @@ func sweepRegexPatternSets(region string) error {
136
111
return ! lastPage
137
112
})
138
113
139
- if awsv2 .SkipSweepError (err ) {
140
- log .Printf ("[WARN] Skipping WAFv2 RegexPatternSet sweep for %s: %s" , region , err )
141
- return nil
142
- }
143
-
144
114
if err != nil {
145
- return fmt . Errorf ( "error listing WAFv2 RegexPatternSets (%s): %w" , region , err )
115
+ return nil , err
146
116
}
147
117
148
- err = sweep .SweepOrchestrator (ctx , sweepResources )
149
-
150
- if err != nil {
151
- return fmt .Errorf ("error sweeping WAFv2 RegexPatternSets (%s): %w" , region , err )
152
- }
153
-
154
- return nil
118
+ return sweepResources , nil
155
119
}
156
120
157
- func sweepRuleGroups (region string ) error {
158
- ctx := sweep .Context (region )
159
- client , err := sweep .SharedRegionalSweepClient (ctx , region )
160
- if err != nil {
161
- return fmt .Errorf ("error getting client: %s" , err )
162
- }
121
+ func sweepRuleGroups (ctx context.Context , client * conns.AWSClient ) ([]sweep.Sweepable , error ) {
163
122
conn := client .WAFV2Client (ctx )
164
- input := & wafv2.ListRuleGroupsInput {
165
- Scope : awstypes .ScopeRegional ,
166
- }
123
+ var input wafv2.ListRuleGroupsInput
124
+ input .Scope = awstypes .ScopeRegional
167
125
sweepResources := make ([]sweep.Sweepable , 0 )
168
126
169
- err = listRuleGroupsPages (ctx , conn , input , func (page * wafv2.ListRuleGroupsOutput , lastPage bool ) bool {
127
+ err : = listRuleGroupsPages (ctx , conn , & input , func (page * wafv2.ListRuleGroupsOutput , lastPage bool ) bool {
170
128
if page == nil {
171
129
return ! lastPage
172
130
}
@@ -185,37 +143,20 @@ func sweepRuleGroups(region string) error {
185
143
return ! lastPage
186
144
})
187
145
188
- if awsv2 .SkipSweepError (err ) {
189
- log .Printf ("[WARN] Skipping WAFv2 RuleGroup sweep for %s: %s" , region , err )
190
- return nil
191
- }
192
-
193
146
if err != nil {
194
- return fmt . Errorf ( "error listing WAFv2 RuleGroups (%s): %w" , region , err )
147
+ return nil , err
195
148
}
196
149
197
- err = sweep .SweepOrchestrator (ctx , sweepResources )
198
-
199
- if err != nil {
200
- return fmt .Errorf ("error sweeping WAFv2 RuleGroups (%s): %w" , region , err )
201
- }
202
-
203
- return nil
150
+ return sweepResources , nil
204
151
}
205
152
206
- func sweepWebACLs (region string ) error {
207
- ctx := sweep .Context (region )
208
- client , err := sweep .SharedRegionalSweepClient (ctx , region )
209
- if err != nil {
210
- return fmt .Errorf ("error getting client: %s" , err )
211
- }
153
+ func sweepWebACLs (ctx context.Context , client * conns.AWSClient ) ([]sweep.Sweepable , error ) {
212
154
conn := client .WAFV2Client (ctx )
213
- input := & wafv2.ListWebACLsInput {
214
- Scope : awstypes .ScopeRegional ,
215
- }
155
+ var input wafv2.ListWebACLsInput
156
+ input .Scope = awstypes .ScopeRegional
216
157
sweepResources := make ([]sweep.Sweepable , 0 )
217
158
218
- err = listWebACLsPages (ctx , conn , input , func (page * wafv2.ListWebACLsOutput , lastPage bool ) bool {
159
+ err : = listWebACLsPages (ctx , conn , & input , func (page * wafv2.ListWebACLsOutput , lastPage bool ) bool {
219
160
if page == nil {
220
161
return ! lastPage
221
162
}
@@ -244,65 +185,9 @@ func sweepWebACLs(region string) error {
244
185
return ! lastPage
245
186
})
246
187
247
- if awsv2 .SkipSweepError (err ) {
248
- log .Printf ("[WARN] Skipping WAFv2 WebACL sweep for %s: %s" , region , err )
249
- return nil
250
- }
251
-
252
- if err != nil {
253
- return fmt .Errorf ("error listing WAFv2 WebACLs (%s): %w" , region , err )
254
- }
255
-
256
- err = sweep .SweepOrchestrator (ctx , sweepResources )
257
-
258
- if err != nil {
259
- return fmt .Errorf ("error sweeping WAFv2 WebACLs (%s): %w" , region , err )
260
- }
261
-
262
- return nil
263
- }
264
-
265
- func sweepAPIKeys (region string ) error {
266
- ctx := sweep .Context (region )
267
- client , err := sweep .SharedRegionalSweepClient (ctx , region )
268
- if err != nil {
269
- return fmt .Errorf ("error getting client: %w" , err )
270
- }
271
- conn := client .WAFV2Client (ctx )
272
-
273
- sweepResources := make ([]sweep.Sweepable , 0 )
274
-
275
- input := & wafv2.ListAPIKeysInput {
276
- Scope : awstypes .ScopeRegional ,
277
- }
278
-
279
- err = listAPIKeysPages (ctx , conn , input , func (page * wafv2.ListAPIKeysOutput , lastPage bool ) bool {
280
- if page == nil {
281
- return ! lastPage
282
- }
283
-
284
- for _ , v := range page .APIKeySummaries {
285
- sweepResources = append (sweepResources , framework .NewSweepResource (newAPIKeyResource , client ,
286
- framework .NewAttribute ("api_key" , aws .ToString (v .APIKey )),
287
- framework .NewAttribute ("token_domains" , v .TokenDomains ),
288
- framework .NewAttribute (names .AttrScope , awstypes .ScopeRegional ),
289
- ))
290
- }
291
- return ! lastPage
292
- })
293
-
294
- if awsv2 .SkipSweepError (err ) {
295
- log .Printf ("[WARN] Skipping WAFv2 API Key sweep for %s scope in %s: %s" , awstypes .ScopeRegional , region , err )
296
- return nil
297
- }
298
- if err != nil {
299
- return fmt .Errorf ("error listing WAFv2 API Keys in (%s) for scope %s: %w" , region , awstypes .ScopeRegional , err )
300
- }
301
-
302
- err = sweep .SweepOrchestrator (ctx , sweepResources )
303
188
if err != nil {
304
- return fmt . Errorf ( "error sweeping WAFv2 API Keys (%s): %w" , region , err )
189
+ return nil , err
305
190
}
306
191
307
- return nil
192
+ return sweepResources , nil
308
193
}
0 commit comments