File Coverage

blib/lib/Cfn/Resource/AWS/WAFv2/WebACL.pm
Criterion Covered Total %
statement 290 290 100.0
branch n/a
condition n/a
subroutine 98 98 100.0
pod 0 2 0.0
total 388 390 99.4


line stmt bran cond sub pod time code
1             # AWS::WAFv2::WebACL generated from spec 10.0.0
2 1     1   989 use Moose::Util::TypeConstraints;
  1         4  
  1         17  
3              
4             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::WAFv2::WebACL->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::WAFv2::WebACL {
9 1     1   2570 use Moose;
  1         4  
  1         12  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 5 [ 'Arn','Capacity','Id' ]
15             }
16             sub supported_regions {
17 1     1 0 1271 [ 'ap-northeast-1','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','eu-central-1','eu-west-1','eu-west-2','eu-west-3','sa-east-1','us-east-1','us-east-2','us-west-1','us-west-2' ]
18             }
19             }
20              
21              
22              
23             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::UriPath',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::UriPath',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::UriPathValue->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::UriPathValue {
37 1     1   8593 use Moose;
  1         5  
  1         10  
38 1     1   8425 use MooseX::StrictConstructor;
  1         3  
  1         14  
39             extends 'Cfn::Value::TypedValue';
40            
41             }
42             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
43             as 'Cfn::Value',
44             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
45             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
46              
47             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
48             from 'HashRef',
49             via {
50             if (my $f = Cfn::TypeLibrary::try_function($_)) {
51             return $f
52             } else {
53             die 'Only accepts functions';
54             }
55             },
56             from 'ArrayRef',
57             via {
58             Cfn::Value::Array->new(Value => [
59             map {
60             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation')->coerce($_)
61             } @$_
62             ]);
63             };
64              
65             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
66             as 'Cfn::Value';
67              
68             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
69             from 'HashRef',
70             via {
71             if (my $f = Cfn::TypeLibrary::try_function($_)) {
72             return $f
73             } else {
74             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformationValue->new( %$_ );
75             }
76             };
77              
78             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformationValue {
79 1     1   4691 use Moose;
  1         3  
  1         9  
80 1     1   7997 use MooseX::StrictConstructor;
  1         4  
  1         6  
81             extends 'Cfn::Value::TypedValue';
82            
83             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
84             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
85             }
86              
87             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleQueryArgument',
88             as 'Cfn::Value';
89              
90             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleQueryArgument',
91             from 'HashRef',
92             via {
93             if (my $f = Cfn::TypeLibrary::try_function($_)) {
94             return $f
95             } else {
96             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleQueryArgumentValue->new( %$_ );
97             }
98             };
99              
100             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleQueryArgumentValue {
101 1     1   3766 use Moose;
  1         4  
  1         6  
102 1     1   8019 use MooseX::StrictConstructor;
  1         4  
  1         10  
103             extends 'Cfn::Value::TypedValue';
104            
105             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
106             }
107              
108             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleHeader',
109             as 'Cfn::Value';
110              
111             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleHeader',
112             from 'HashRef',
113             via {
114             if (my $f = Cfn::TypeLibrary::try_function($_)) {
115             return $f
116             } else {
117             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleHeaderValue->new( %$_ );
118             }
119             };
120              
121             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleHeaderValue {
122 1     1   4801 use Moose;
  1         4  
  1         8  
123 1     1   8339 use MooseX::StrictConstructor;
  1         4  
  1         8  
124             extends 'Cfn::Value::TypedValue';
125            
126             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
127             }
128              
129             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::QueryString',
130             as 'Cfn::Value';
131              
132             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::QueryString',
133             from 'HashRef',
134             via {
135             if (my $f = Cfn::TypeLibrary::try_function($_)) {
136             return $f
137             } else {
138             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::QueryStringValue->new( %$_ );
139             }
140             };
141              
142             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::QueryStringValue {
143 1     1   4475 use Moose;
  1         4  
  1         8  
144 1     1   8281 use MooseX::StrictConstructor;
  1         4  
  1         9  
145             extends 'Cfn::Value::TypedValue';
146            
147             }
148              
149             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Method',
150             as 'Cfn::Value';
151              
152             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Method',
153             from 'HashRef',
154             via {
155             if (my $f = Cfn::TypeLibrary::try_function($_)) {
156             return $f
157             } else {
158             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::MethodValue->new( %$_ );
159             }
160             };
161              
162             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::MethodValue {
163 1     1   4099 use Moose;
  1         3  
  1         8  
164 1     1   8493 use MooseX::StrictConstructor;
  1         3  
  1         9  
165             extends 'Cfn::Value::TypedValue';
166            
167             }
168             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
169             as 'Cfn::Value',
170             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
171             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
172              
173             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
174             from 'HashRef',
175             via {
176             if (my $f = Cfn::TypeLibrary::try_function($_)) {
177             return $f
178             } else {
179             die 'Only accepts functions';
180             }
181             },
182             from 'ArrayRef',
183             via {
184             Cfn::Value::Array->new(Value => [
185             map {
186             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule')->coerce($_)
187             } @$_
188             ]);
189             };
190              
191             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
192             as 'Cfn::Value';
193              
194             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
195             from 'HashRef',
196             via {
197             if (my $f = Cfn::TypeLibrary::try_function($_)) {
198             return $f
199             } else {
200             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRuleValue->new( %$_ );
201             }
202             };
203              
204             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRuleValue {
205 1     1   4867 use Moose;
  1         2  
  1         10  
206 1     1   8230 use MooseX::StrictConstructor;
  1         3  
  1         11  
207             extends 'Cfn::Value::TypedValue';
208            
209             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
210             }
211              
212             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Body',
213             as 'Cfn::Value';
214              
215             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Body',
216             from 'HashRef',
217             via {
218             if (my $f = Cfn::TypeLibrary::try_function($_)) {
219             return $f
220             } else {
221             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::BodyValue->new( %$_ );
222             }
223             };
224              
225             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::BodyValue {
226 1     1   4722 use Moose;
  1         4  
  1         10  
227 1     1   7453 use MooseX::StrictConstructor;
  1         3  
  1         7  
228             extends 'Cfn::Value::TypedValue';
229            
230             }
231              
232             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllQueryArguments',
233             as 'Cfn::Value';
234              
235             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllQueryArguments',
236             from 'HashRef',
237             via {
238             if (my $f = Cfn::TypeLibrary::try_function($_)) {
239             return $f
240             } else {
241             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllQueryArgumentsValue->new( %$_ );
242             }
243             };
244              
245             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllQueryArgumentsValue {
246 1     1   3581 use Moose;
  1         3  
  1         6  
247 1     1   6627 use MooseX::StrictConstructor;
  1         3  
  1         5  
248             extends 'Cfn::Value::TypedValue';
249            
250             }
251              
252             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations',
253             as 'Cfn::Value';
254              
255             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations',
256             from 'HashRef',
257             via {
258             if (my $f = Cfn::TypeLibrary::try_function($_)) {
259             return $f
260             } else {
261             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformationsValue->new( %$_ );
262             }
263             };
264              
265             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformationsValue {
266 1     1   3484 use Moose;
  1         4  
  1         6  
267 1     1   7336 use MooseX::StrictConstructor;
  1         2  
  1         7  
268             extends 'Cfn::Value::TypedValue';
269            
270             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
271             }
272              
273             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch',
274             as 'Cfn::Value';
275              
276             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch',
277             from 'HashRef',
278             via {
279             if (my $f = Cfn::TypeLibrary::try_function($_)) {
280             return $f
281             } else {
282             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatchValue->new( %$_ );
283             }
284             };
285              
286             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatchValue {
287 1     1   3658 use Moose;
  1         2  
  1         19  
288 1     1   6676 use MooseX::StrictConstructor;
  1         2  
  1         8  
289             extends 'Cfn::Value::TypedValue';
290            
291             has AllQueryArguments => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllQueryArguments', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
292             has Body => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Body', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
293             has Method => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Method', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
294             has QueryString => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::QueryString', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
295             has SingleHeader => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleHeader', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             has SingleQueryArgument => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SingleQueryArgument', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             has UriPath => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::UriPath', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
298             }
299              
300             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRules',
301             as 'Cfn::Value';
302              
303             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRules',
304             from 'HashRef',
305             via {
306             if (my $f = Cfn::TypeLibrary::try_function($_)) {
307             return $f
308             } else {
309             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRulesValue->new( %$_ );
310             }
311             };
312              
313             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRulesValue {
314 1     1   3501 use Moose;
  1         2  
  1         15  
315 1     1   6687 use MooseX::StrictConstructor;
  1         3  
  1         7  
316             extends 'Cfn::Value::TypedValue';
317            
318             has ExcludedRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
319             }
320              
321             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountryCodes',
322             as 'Cfn::Value';
323              
324             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountryCodes',
325             from 'HashRef',
326             via {
327             if (my $f = Cfn::TypeLibrary::try_function($_)) {
328             return $f
329             } else {
330             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountryCodesValue->new( %$_ );
331             }
332             };
333              
334             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountryCodesValue {
335 1     1   3705 use Moose;
  1         5  
  1         8  
336 1     1   8275 use MooseX::StrictConstructor;
  1         3  
  1         10  
337             extends 'Cfn::Value::TypedValue';
338            
339             has CountryCodes => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
340             }
341              
342             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement',
343             as 'Cfn::Value';
344              
345             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement',
346             from 'HashRef',
347             via {
348             if (my $f = Cfn::TypeLibrary::try_function($_)) {
349             return $f
350             } else {
351             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatementValue->new( %$_ );
352             }
353             };
354              
355             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatementValue {
356 1     1   4699 use Moose;
  1         3  
  1         8  
357 1     1   7633 use MooseX::StrictConstructor;
  1         3  
  1         7  
358             extends 'Cfn::Value::TypedValue';
359            
360             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
361             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
362             }
363              
364             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement',
365             as 'Cfn::Value';
366              
367             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement',
368             from 'HashRef',
369             via {
370             if (my $f = Cfn::TypeLibrary::try_function($_)) {
371             return $f
372             } else {
373             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatementValue->new( %$_ );
374             }
375             };
376              
377             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatementValue {
378 1     1   3582 use Moose;
  1         3  
  1         6  
379 1     1   6569 use MooseX::StrictConstructor;
  1         2  
  1         6  
380             extends 'Cfn::Value::TypedValue';
381            
382             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
383             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
384             }
385              
386             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement',
387             as 'Cfn::Value';
388              
389             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement',
390             from 'HashRef',
391             via {
392             if (my $f = Cfn::TypeLibrary::try_function($_)) {
393             return $f
394             } else {
395             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatementValue->new( %$_ );
396             }
397             };
398              
399             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatementValue {
400 1     1   3410 use Moose;
  1         3  
  1         4  
401 1     1   6905 use MooseX::StrictConstructor;
  1         3  
  1         8  
402             extends 'Cfn::Value::TypedValue';
403            
404             has ComparisonOperator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
405             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
406             has Size => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
407             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
408             }
409              
410             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement',
411             as 'Cfn::Value';
412              
413             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement',
414             from 'HashRef',
415             via {
416             if (my $f = Cfn::TypeLibrary::try_function($_)) {
417             return $f
418             } else {
419             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatementValue->new( %$_ );
420             }
421             };
422              
423             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatementValue {
424 1     1   4472 use Moose;
  1         3  
  1         9  
425 1     1   8616 use MooseX::StrictConstructor;
  1         3  
  1         9  
426             extends 'Cfn::Value::TypedValue';
427            
428             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
429             has ExcludedRules => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRules', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
430             }
431              
432             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement',
433             as 'Cfn::Value';
434              
435             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement',
436             from 'HashRef',
437             via {
438             if (my $f = Cfn::TypeLibrary::try_function($_)) {
439             return $f
440             } else {
441             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatementValue->new( %$_ );
442             }
443             };
444              
445             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatementValue {
446 1     1   4598 use Moose;
  1         3  
  1         8  
447 1     1   8347 use MooseX::StrictConstructor;
  1         3  
  1         8  
448             extends 'Cfn::Value::TypedValue';
449            
450             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
451             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
452             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
453             }
454              
455             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement',
456             as 'Cfn::Value';
457              
458             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement',
459             from 'HashRef',
460             via {
461             if (my $f = Cfn::TypeLibrary::try_function($_)) {
462             return $f
463             } else {
464             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatementValue->new( %$_ );
465             }
466             };
467              
468             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatementValue {
469 1     1   3860 use Moose;
  1         4  
  1         5  
470 1     1   6897 use MooseX::StrictConstructor;
  1         3  
  1         6  
471             extends 'Cfn::Value::TypedValue';
472            
473             has ExcludedRules => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRules', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
474             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
475             has VendorName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
476             }
477              
478             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement',
479             as 'Cfn::Value';
480              
481             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement',
482             from 'HashRef',
483             via {
484             if (my $f = Cfn::TypeLibrary::try_function($_)) {
485             return $f
486             } else {
487             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatementValue->new( %$_ );
488             }
489             };
490              
491             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatementValue {
492 1     1   3453 use Moose;
  1         2  
  1         5  
493 1     1   6644 use MooseX::StrictConstructor;
  1         2  
  1         5  
494             extends 'Cfn::Value::TypedValue';
495            
496             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
497             }
498              
499             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement',
500             as 'Cfn::Value';
501              
502             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement',
503             from 'HashRef',
504             via {
505             if (my $f = Cfn::TypeLibrary::try_function($_)) {
506             return $f
507             } else {
508             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatementValue->new( %$_ );
509             }
510             };
511              
512             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatementValue {
513 1     1   3371 use Moose;
  1         3  
  1         16  
514 1     1   8054 use MooseX::StrictConstructor;
  1         4  
  1         9  
515             extends 'Cfn::Value::TypedValue';
516            
517             has CountryCodes => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountryCodes', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
518             }
519              
520             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement',
521             as 'Cfn::Value';
522              
523             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement',
524             from 'HashRef',
525             via {
526             if (my $f = Cfn::TypeLibrary::try_function($_)) {
527             return $f
528             } else {
529             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatementValue->new( %$_ );
530             }
531             };
532              
533             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatementValue {
534 1     1   4570 use Moose;
  1         3  
  1         9  
535 1     1   8398 use MooseX::StrictConstructor;
  1         3  
  1         11  
536             extends 'Cfn::Value::TypedValue';
537            
538             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
539             has PositionalConstraint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
540             has SearchString => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
541             has SearchStringBase64 => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
542             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
543             }
544             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
545             as 'Cfn::Value',
546             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
547             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
548              
549             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
550             from 'HashRef',
551             via {
552             if (my $f = Cfn::TypeLibrary::try_function($_)) {
553             return $f
554             } else {
555             die 'Only accepts functions';
556             }
557             },
558             from 'ArrayRef',
559             via {
560             Cfn::Value::Array->new(Value => [
561             map {
562             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree')->coerce($_)
563             } @$_
564             ]);
565             };
566              
567             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
568             as 'Cfn::Value';
569              
570             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
571             from 'HashRef',
572             via {
573             if (my $f = Cfn::TypeLibrary::try_function($_)) {
574             return $f
575             } else {
576             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThreeValue->new( %$_ );
577             }
578             };
579              
580             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThreeValue {
581 1     1   4866 use Moose;
  1         3  
  1         8  
582 1     1   7366 use MooseX::StrictConstructor;
  1         3  
  1         8  
583             extends 'Cfn::Value::TypedValue';
584            
585             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
586             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
587             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
588             has ManagedRuleGroupStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
589             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
590             has RuleGroupReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
591             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
592             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
593             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
594             }
595              
596             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThrees',
597             as 'Cfn::Value';
598              
599             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThrees',
600             from 'HashRef',
601             via {
602             if (my $f = Cfn::TypeLibrary::try_function($_)) {
603             return $f
604             } else {
605             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThreesValue->new( %$_ );
606             }
607             };
608              
609             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThreesValue {
610 1     1   4028 use Moose;
  1         2  
  1         7  
611 1     1   7997 use MooseX::StrictConstructor;
  1         3  
  1         9  
612             extends 'Cfn::Value::TypedValue';
613            
614             has StatementThrees => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
615             }
616              
617             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwo',
618             as 'Cfn::Value';
619              
620             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwo',
621             from 'HashRef',
622             via {
623             if (my $f = Cfn::TypeLibrary::try_function($_)) {
624             return $f
625             } else {
626             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwoValue->new( %$_ );
627             }
628             };
629              
630             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwoValue {
631 1     1   3910 use Moose;
  1         3  
  1         7  
632 1     1   7941 use MooseX::StrictConstructor;
  1         3  
  1         9  
633             extends 'Cfn::Value::TypedValue';
634            
635             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
636             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
637             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
638             }
639              
640             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwo',
641             as 'Cfn::Value';
642              
643             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwo',
644             from 'HashRef',
645             via {
646             if (my $f = Cfn::TypeLibrary::try_function($_)) {
647             return $f
648             } else {
649             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwoValue->new( %$_ );
650             }
651             };
652              
653             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwoValue {
654 1     1   4431 use Moose;
  1         3  
  1         8  
655 1     1   8107 use MooseX::StrictConstructor;
  1         4  
  1         9  
656             extends 'Cfn::Value::TypedValue';
657            
658             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThrees', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
659             }
660              
661             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwo',
662             as 'Cfn::Value';
663              
664             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwo',
665             from 'HashRef',
666             via {
667             if (my $f = Cfn::TypeLibrary::try_function($_)) {
668             return $f
669             } else {
670             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwoValue->new( %$_ );
671             }
672             };
673              
674             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwoValue {
675 1     1   4478 use Moose;
  1         3  
  1         7  
676 1     1   8030 use MooseX::StrictConstructor;
  1         3  
  1         8  
677             extends 'Cfn::Value::TypedValue';
678            
679             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
680             }
681              
682             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwo',
683             as 'Cfn::Value';
684              
685             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwo',
686             from 'HashRef',
687             via {
688             if (my $f = Cfn::TypeLibrary::try_function($_)) {
689             return $f
690             } else {
691             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwoValue->new( %$_ );
692             }
693             };
694              
695             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwoValue {
696 1     1   4197 use Moose;
  1         4  
  1         5  
697 1     1   7565 use MooseX::StrictConstructor;
  1         3  
  1         9  
698             extends 'Cfn::Value::TypedValue';
699            
700             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThrees', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
701             }
702             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
703             as 'Cfn::Value',
704             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
705             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
706              
707             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
708             from 'HashRef',
709             via {
710             if (my $f = Cfn::TypeLibrary::try_function($_)) {
711             return $f
712             } else {
713             die 'Only accepts functions';
714             }
715             },
716             from 'ArrayRef',
717             via {
718             Cfn::Value::Array->new(Value => [
719             map {
720             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo')->coerce($_)
721             } @$_
722             ]);
723             };
724              
725             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
726             as 'Cfn::Value';
727              
728             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
729             from 'HashRef',
730             via {
731             if (my $f = Cfn::TypeLibrary::try_function($_)) {
732             return $f
733             } else {
734             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwoValue->new( %$_ );
735             }
736             };
737              
738             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwoValue {
739 1     1   4277 use Moose;
  1         2  
  1         6  
740 1     1   6983 use MooseX::StrictConstructor;
  1         2  
  1         5  
741             extends 'Cfn::Value::TypedValue';
742            
743             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
744             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
745             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
746             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
747             has ManagedRuleGroupStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
748             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
749             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
750             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
751             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
752             has RuleGroupReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
753             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
754             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
755             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
756             }
757              
758             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwos',
759             as 'Cfn::Value';
760              
761             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwos',
762             from 'HashRef',
763             via {
764             if (my $f = Cfn::TypeLibrary::try_function($_)) {
765             return $f
766             } else {
767             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwosValue->new( %$_ );
768             }
769             };
770              
771             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwosValue {
772 1     1   3556 use Moose;
  1         2  
  1         5  
773 1     1   6515 use MooseX::StrictConstructor;
  1         3  
  1         6  
774             extends 'Cfn::Value::TypedValue';
775            
776             has StatementTwos => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
777             }
778              
779             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOne',
780             as 'Cfn::Value';
781              
782             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOne',
783             from 'HashRef',
784             via {
785             if (my $f = Cfn::TypeLibrary::try_function($_)) {
786             return $f
787             } else {
788             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOneValue->new( %$_ );
789             }
790             };
791              
792             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOneValue {
793 1     1   3374 use Moose;
  1         2  
  1         5  
794 1     1   6535 use MooseX::StrictConstructor;
  1         5  
  1         6  
795             extends 'Cfn::Value::TypedValue';
796            
797             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
798             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
799             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
800             }
801              
802             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOne',
803             as 'Cfn::Value';
804              
805             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOne',
806             from 'HashRef',
807             via {
808             if (my $f = Cfn::TypeLibrary::try_function($_)) {
809             return $f
810             } else {
811             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOneValue->new( %$_ );
812             }
813             };
814              
815             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOneValue {
816 1     1   3398 use Moose;
  1         3  
  1         5  
817 1     1   6567 use MooseX::StrictConstructor;
  1         2  
  1         6  
818             extends 'Cfn::Value::TypedValue';
819            
820             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwos', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
821             }
822              
823             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOne',
824             as 'Cfn::Value';
825              
826             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOne',
827             from 'HashRef',
828             via {
829             if (my $f = Cfn::TypeLibrary::try_function($_)) {
830             return $f
831             } else {
832             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOneValue->new( %$_ );
833             }
834             };
835              
836             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOneValue {
837 1     1   3341 use Moose;
  1         2  
  1         6  
838 1     1   6601 use MooseX::StrictConstructor;
  1         3  
  1         5  
839             extends 'Cfn::Value::TypedValue';
840            
841             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
842             }
843              
844             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NoneAction',
845             as 'Cfn::Value';
846              
847             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NoneAction',
848             from 'HashRef',
849             via {
850             if (my $f = Cfn::TypeLibrary::try_function($_)) {
851             return $f
852             } else {
853             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::NoneActionValue->new( %$_ );
854             }
855             };
856              
857             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::NoneActionValue {
858 1     1   3345 use Moose;
  1         4  
  1         5  
859 1     1   6509 use MooseX::StrictConstructor;
  1         2  
  1         6  
860             extends 'Cfn::Value::TypedValue';
861            
862             }
863              
864             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountAction',
865             as 'Cfn::Value';
866              
867             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountAction',
868             from 'HashRef',
869             via {
870             if (my $f = Cfn::TypeLibrary::try_function($_)) {
871             return $f
872             } else {
873             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountActionValue->new( %$_ );
874             }
875             };
876              
877             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountActionValue {
878 1     1   3318 use Moose;
  1         2  
  1         5  
879 1     1   6706 use MooseX::StrictConstructor;
  1         3  
  1         5  
880             extends 'Cfn::Value::TypedValue';
881            
882             }
883              
884             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::BlockAction',
885             as 'Cfn::Value';
886              
887             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::BlockAction',
888             from 'HashRef',
889             via {
890             if (my $f = Cfn::TypeLibrary::try_function($_)) {
891             return $f
892             } else {
893             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::BlockActionValue->new( %$_ );
894             }
895             };
896              
897             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::BlockActionValue {
898 1     1   3350 use Moose;
  1         2  
  1         5  
899 1     1   6608 use MooseX::StrictConstructor;
  1         3  
  1         6  
900             extends 'Cfn::Value::TypedValue';
901            
902             }
903              
904             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOne',
905             as 'Cfn::Value';
906              
907             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOne',
908             from 'HashRef',
909             via {
910             if (my $f = Cfn::TypeLibrary::try_function($_)) {
911             return $f
912             } else {
913             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOneValue->new( %$_ );
914             }
915             };
916              
917             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOneValue {
918 1     1   3475 use Moose;
  1         3  
  1         6  
919 1     1   6725 use MooseX::StrictConstructor;
  1         3  
  1         6  
920             extends 'Cfn::Value::TypedValue';
921            
922             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwos', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
923             }
924              
925             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllowAction',
926             as 'Cfn::Value';
927              
928             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllowAction',
929             from 'HashRef',
930             via {
931             if (my $f = Cfn::TypeLibrary::try_function($_)) {
932             return $f
933             } else {
934             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllowActionValue->new( %$_ );
935             }
936             };
937              
938             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllowActionValue {
939 1     1   3361 use Moose;
  1         3  
  1         5  
940 1     1   6557 use MooseX::StrictConstructor;
  1         3  
  1         5  
941             extends 'Cfn::Value::TypedValue';
942            
943             }
944              
945             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig',
946             as 'Cfn::Value';
947              
948             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig',
949             from 'HashRef',
950             via {
951             if (my $f = Cfn::TypeLibrary::try_function($_)) {
952             return $f
953             } else {
954             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfigValue->new( %$_ );
955             }
956             };
957              
958             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfigValue {
959 1     1   3335 use Moose;
  1         2  
  1         5  
960 1     1   6591 use MooseX::StrictConstructor;
  1         3  
  1         6  
961             extends 'Cfn::Value::TypedValue';
962            
963             has CloudWatchMetricsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
964             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
965             has SampledRequestsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
966             }
967              
968             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOne',
969             as 'Cfn::Value';
970              
971             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOne',
972             from 'HashRef',
973             via {
974             if (my $f = Cfn::TypeLibrary::try_function($_)) {
975             return $f
976             } else {
977             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOneValue->new( %$_ );
978             }
979             };
980              
981             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOneValue {
982 1     1   3714 use Moose;
  1         2  
  1         6  
983 1     1   6550 use MooseX::StrictConstructor;
  1         3  
  1         5  
984             extends 'Cfn::Value::TypedValue';
985            
986             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
987             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
988             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
989             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
990             has ManagedRuleGroupStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
991             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
992             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
993             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
994             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
995             has RuleGroupReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
996             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
997             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
998             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
999             }
1000              
1001             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleAction',
1002             as 'Cfn::Value';
1003              
1004             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleAction',
1005             from 'HashRef',
1006             via {
1007             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1008             return $f
1009             } else {
1010             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleActionValue->new( %$_ );
1011             }
1012             };
1013              
1014             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleActionValue {
1015 1     1   3538 use Moose;
  1         4  
  1         5  
1016 1     1   6598 use MooseX::StrictConstructor;
  1         2  
  1         5  
1017             extends 'Cfn::Value::TypedValue';
1018            
1019             has Allow => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllowAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1020             has Block => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::BlockAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1021             has Count => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1022             }
1023              
1024             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideAction',
1025             as 'Cfn::Value';
1026              
1027             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideAction',
1028             from 'HashRef',
1029             via {
1030             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1031             return $f
1032             } else {
1033             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideActionValue->new( %$_ );
1034             }
1035             };
1036              
1037             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideActionValue {
1038 1     1   3403 use Moose;
  1         2  
  1         6  
1039 1     1   6537 use MooseX::StrictConstructor;
  1         2  
  1         6  
1040             extends 'Cfn::Value::TypedValue';
1041            
1042             has Count => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::CountAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1043             has None => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NoneAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1044             }
1045             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
1046             as 'Cfn::Value',
1047             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
1048             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
1049              
1050             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
1051             from 'HashRef',
1052             via {
1053             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1054             return $f
1055             } else {
1056             die 'Only accepts functions';
1057             }
1058             },
1059             from 'ArrayRef',
1060             via {
1061             Cfn::Value::Array->new(Value => [
1062             map {
1063             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rule')->coerce($_)
1064             } @$_
1065             ]);
1066             };
1067              
1068             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
1069             as 'Cfn::Value';
1070              
1071             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
1072             from 'HashRef',
1073             via {
1074             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1075             return $f
1076             } else {
1077             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleValue->new( %$_ );
1078             }
1079             };
1080              
1081             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleValue {
1082 1     1   3512 use Moose;
  1         2  
  1         6  
1083 1     1   6576 use MooseX::StrictConstructor;
  1         2  
  1         6  
1084             extends 'Cfn::Value::TypedValue';
1085            
1086             has Action => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1087             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1088             has OverrideAction => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1089             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1090             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1091             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1092             }
1093              
1094             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TagList',
1095             as 'Cfn::Value';
1096              
1097             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TagList',
1098             from 'HashRef',
1099             via {
1100             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1101             return $f
1102             } else {
1103             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::TagListValue->new( %$_ );
1104             }
1105             };
1106              
1107             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::TagListValue {
1108 1     1   3418 use Moose;
  1         3  
  1         6  
1109 1     1   6570 use MooseX::StrictConstructor;
  1         2  
  1         6  
1110             extends 'Cfn::Value::TypedValue';
1111            
1112             has TagList => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1113             }
1114              
1115             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rules',
1116             as 'Cfn::Value';
1117              
1118             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rules',
1119             from 'HashRef',
1120             via {
1121             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1122             return $f
1123             } else {
1124             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::RulesValue->new( %$_ );
1125             }
1126             };
1127              
1128             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::RulesValue {
1129 1     1   3314 use Moose;
  1         2  
  1         6  
1130 1     1   6537 use MooseX::StrictConstructor;
  1         3  
  1         5  
1131             extends 'Cfn::Value::TypedValue';
1132            
1133             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::Rule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1134             }
1135              
1136             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultAction',
1137             as 'Cfn::Value';
1138              
1139             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultAction',
1140             from 'HashRef',
1141             via {
1142             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1143             return $f
1144             } else {
1145             return Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultActionValue->new( %$_ );
1146             }
1147             };
1148              
1149             package Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultActionValue {
1150 1     1   3355 use Moose;
  1         3  
  1         6  
1151 1     1   6599 use MooseX::StrictConstructor;
  1         2  
  1         5  
1152             extends 'Cfn::Value::TypedValue';
1153            
1154             has Allow => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AllowAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1155             has Block => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::BlockAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1156             }
1157              
1158             package Cfn::Resource::Properties::AWS::WAFv2::WebACL {
1159 1     1   3272 use Moose;
  1         3  
  1         5  
1160 1     1   6644 use MooseX::StrictConstructor;
  1         2  
  1         5  
1161             extends 'Cfn::Resource::Properties';
1162            
1163             has DefaultAction => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1164             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1165             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1166             has Rules => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rules', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1167             has Scope => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1168             has Tags => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TagList', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1169             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1170             }
1171              
1172             1;