File Coverage

blib/lib/Cfn/Resource/AWS/WAFv2/WebACL.pm
Criterion Covered Total %
statement 194 194 100.0
branch n/a
condition n/a
subroutine 66 66 100.0
pod 0 2 0.0
total 260 262 99.2


line stmt bran cond sub pod time code
1             # AWS::WAFv2::WebACL generated from spec 20.1.0
2 1     1   850 use Moose::Util::TypeConstraints;
  1         3  
  1         9  
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   2288 use Moose;
  1         3  
  1         8  
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 4 [ 'Arn','Capacity','Id' ]
15             }
16             sub supported_regions {
17 1     1 0 1276 [ 'af-south-1','ap-east-1','ap-northeast-1','ap-northeast-2','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','eu-central-1','eu-north-1','eu-south-1','eu-west-1','eu-west-2','eu-west-3','me-south-1','sa-east-1','us-east-1','us-east-2','us-gov-west-1','us-west-1','us-west-2' ]
18             }
19             }
20              
21              
22             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
23             as 'Cfn::Value',
24             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
25             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
26              
27             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
28             from 'HashRef',
29             via {
30             if (my $f = Cfn::TypeLibrary::try_function($_)) {
31             return $f
32             } else {
33             die 'Only accepts functions';
34             }
35             },
36             from 'ArrayRef',
37             via {
38             Cfn::Value::Array->new(Value => [
39             map {
40             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation')->coerce($_)
41             } @$_
42             ]);
43             };
44              
45             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::TextTransformation->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::TextTransformation {
59 1     1   7832 use Moose;
  1         5  
  1         5  
60 1     1   6623 use MooseX::StrictConstructor;
  1         3  
  1         10  
61             extends 'Cfn::Value::TypedValue';
62            
63             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
65             }
66              
67             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetForwardedIPConfiguration',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetForwardedIPConfiguration',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::IPSetForwardedIPConfiguration->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::IPSetForwardedIPConfiguration {
81 1     1   3644 use Moose;
  1         2  
  1         5  
82 1     1   6691 use MooseX::StrictConstructor;
  1         3  
  1         7  
83             extends 'Cfn::Value::TypedValue';
84            
85             has FallbackBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             has HeaderName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
87             has Position => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
88             }
89              
90             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ForwardedIPConfiguration',
91             as 'Cfn::Value';
92              
93             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ForwardedIPConfiguration',
94             from 'HashRef',
95             via {
96             if (my $f = Cfn::TypeLibrary::try_function($_)) {
97             return $f
98             } else {
99             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ForwardedIPConfiguration->new( %$_ );
100             }
101             };
102              
103             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ForwardedIPConfiguration {
104 1     1   3474 use Moose;
  1         2  
  1         6  
105 1     1   6917 use MooseX::StrictConstructor;
  1         3  
  1         8  
106             extends 'Cfn::Value::TypedValue';
107            
108             has FallbackBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
109             has HeaderName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
110             }
111              
112             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch',
113             as 'Cfn::Value';
114              
115             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch',
116             from 'HashRef',
117             via {
118             if (my $f = Cfn::TypeLibrary::try_function($_)) {
119             return $f
120             } else {
121             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::FieldToMatch->new( %$_ );
122             }
123             };
124              
125             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::FieldToMatch {
126 1     1   3421 use Moose;
  1         3  
  1         6  
127 1     1   6771 use MooseX::StrictConstructor;
  1         6  
  1         4  
128             extends 'Cfn::Value::TypedValue';
129            
130             has AllQueryArguments => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
131             has Body => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
132             has Method => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
133             has QueryString => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
134             has SingleHeader => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
135             has SingleQueryArgument => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
136             has UriPath => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
137             }
138             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
139             as 'Cfn::Value',
140             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
141             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
142              
143             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
144             from 'HashRef',
145             via {
146             if (my $f = Cfn::TypeLibrary::try_function($_)) {
147             return $f
148             } else {
149             die 'Only accepts functions';
150             }
151             },
152             from 'ArrayRef',
153             via {
154             Cfn::Value::Array->new(Value => [
155             map {
156             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule')->coerce($_)
157             } @$_
158             ]);
159             };
160              
161             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
162             as 'Cfn::Value';
163              
164             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule',
165             from 'HashRef',
166             via {
167             if (my $f = Cfn::TypeLibrary::try_function($_)) {
168             return $f
169             } else {
170             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ExcludedRule->new( %$_ );
171             }
172             };
173              
174             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ExcludedRule {
175 1     1   3682 use Moose;
  1         3  
  1         5  
176 1     1   6595 use MooseX::StrictConstructor;
  1         3  
  1         5  
177             extends 'Cfn::Value::TypedValue';
178            
179             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
180             }
181              
182             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement',
183             as 'Cfn::Value';
184              
185             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement',
186             from 'HashRef',
187             via {
188             if (my $f = Cfn::TypeLibrary::try_function($_)) {
189             return $f
190             } else {
191             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::XssMatchStatement->new( %$_ );
192             }
193             };
194              
195             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::XssMatchStatement {
196 1     1   3444 use Moose;
  1         3  
  1         7  
197 1     1   6757 use MooseX::StrictConstructor;
  1         5  
  1         5  
198             extends 'Cfn::Value::TypedValue';
199            
200             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
201             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
202             }
203              
204             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement',
205             as 'Cfn::Value';
206              
207             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement',
208             from 'HashRef',
209             via {
210             if (my $f = Cfn::TypeLibrary::try_function($_)) {
211             return $f
212             } else {
213             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::SqliMatchStatement->new( %$_ );
214             }
215             };
216              
217             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::SqliMatchStatement {
218 1     1   3483 use Moose;
  1         4  
  1         7  
219 1     1   6637 use MooseX::StrictConstructor;
  1         4  
  1         6  
220             extends 'Cfn::Value::TypedValue';
221            
222             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
223             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
224             }
225              
226             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement',
227             as 'Cfn::Value';
228              
229             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement',
230             from 'HashRef',
231             via {
232             if (my $f = Cfn::TypeLibrary::try_function($_)) {
233             return $f
234             } else {
235             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::SizeConstraintStatement->new( %$_ );
236             }
237             };
238              
239             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::SizeConstraintStatement {
240 1     1   3606 use Moose;
  1         4  
  1         6  
241 1     1   6696 use MooseX::StrictConstructor;
  1         2  
  1         7  
242             extends 'Cfn::Value::TypedValue';
243            
244             has ComparisonOperator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
245             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
246             has Size => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
247             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             }
249              
250             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement',
251             as 'Cfn::Value';
252              
253             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement',
254             from 'HashRef',
255             via {
256             if (my $f = Cfn::TypeLibrary::try_function($_)) {
257             return $f
258             } else {
259             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RuleGroupReferenceStatement->new( %$_ );
260             }
261             };
262              
263             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RuleGroupReferenceStatement {
264 1     1   3485 use Moose;
  1         3  
  1         8  
265 1     1   6563 use MooseX::StrictConstructor;
  1         3  
  1         6  
266             extends 'Cfn::Value::TypedValue';
267            
268             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
269             has ExcludedRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
270             }
271              
272             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement',
273             as 'Cfn::Value';
274              
275             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement',
276             from 'HashRef',
277             via {
278             if (my $f = Cfn::TypeLibrary::try_function($_)) {
279             return $f
280             } else {
281             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement->new( %$_ );
282             }
283             };
284              
285             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement {
286 1     1   3416 use Moose;
  1         2  
  1         6  
287 1     1   6592 use MooseX::StrictConstructor;
  1         4  
  1         6  
288             extends 'Cfn::Value::TypedValue';
289            
290             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
291             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
292             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
293             }
294              
295             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement',
296             as 'Cfn::Value';
297              
298             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement',
299             from 'HashRef',
300             via {
301             if (my $f = Cfn::TypeLibrary::try_function($_)) {
302             return $f
303             } else {
304             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ManagedRuleGroupStatement->new( %$_ );
305             }
306             };
307              
308             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ManagedRuleGroupStatement {
309 1     1   3431 use Moose;
  1         5  
  1         6  
310 1     1   6625 use MooseX::StrictConstructor;
  1         3  
  1         6  
311             extends 'Cfn::Value::TypedValue';
312            
313             has ExcludedRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::ExcludedRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
314             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
315             has VendorName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
316             }
317              
318             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement',
319             as 'Cfn::Value';
320              
321             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement',
322             from 'HashRef',
323             via {
324             if (my $f = Cfn::TypeLibrary::try_function($_)) {
325             return $f
326             } else {
327             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::IPSetReferenceStatement->new( %$_ );
328             }
329             };
330              
331             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::IPSetReferenceStatement {
332 1     1   4099 use Moose;
  1         2  
  1         6  
333 1     1   7020 use MooseX::StrictConstructor;
  1         3  
  1         5  
334             extends 'Cfn::Value::TypedValue';
335            
336             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
337             has IPSetForwardedIPConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetForwardedIPConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
338             }
339              
340             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement',
341             as 'Cfn::Value';
342              
343             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement',
344             from 'HashRef',
345             via {
346             if (my $f = Cfn::TypeLibrary::try_function($_)) {
347             return $f
348             } else {
349             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::GeoMatchStatement->new( %$_ );
350             }
351             };
352              
353             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::GeoMatchStatement {
354 1     1   3490 use Moose;
  1         9  
  1         5  
355 1     1   6685 use MooseX::StrictConstructor;
  1         3  
  1         5  
356             extends 'Cfn::Value::TypedValue';
357            
358             has CountryCodes => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
359             has ForwardedIPConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ForwardedIPConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
360             }
361              
362             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement',
363             as 'Cfn::Value';
364              
365             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement',
366             from 'HashRef',
367             via {
368             if (my $f = Cfn::TypeLibrary::try_function($_)) {
369             return $f
370             } else {
371             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ByteMatchStatement->new( %$_ );
372             }
373             };
374              
375             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::ByteMatchStatement {
376 1     1   3442 use Moose;
  1         4  
  1         9  
377 1     1   6700 use MooseX::StrictConstructor;
  1         4  
  1         5  
378             extends 'Cfn::Value::TypedValue';
379            
380             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
381             has PositionalConstraint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
382             has SearchString => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
383             has SearchStringBase64 => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
384             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
385             }
386             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
387             as 'Cfn::Value',
388             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
389             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
390              
391             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
392             from 'HashRef',
393             via {
394             if (my $f = Cfn::TypeLibrary::try_function($_)) {
395             return $f
396             } else {
397             die 'Only accepts functions';
398             }
399             },
400             from 'ArrayRef',
401             via {
402             Cfn::Value::Array->new(Value => [
403             map {
404             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree')->coerce($_)
405             } @$_
406             ]);
407             };
408              
409             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
410             as 'Cfn::Value';
411              
412             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree',
413             from 'HashRef',
414             via {
415             if (my $f = Cfn::TypeLibrary::try_function($_)) {
416             return $f
417             } else {
418             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::StatementThree->new( %$_ );
419             }
420             };
421              
422             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::StatementThree {
423 1     1   3730 use Moose;
  1         7  
  1         6  
424 1     1   6613 use MooseX::StrictConstructor;
  1         5  
  1         7  
425             extends 'Cfn::Value::TypedValue';
426            
427             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
428             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
429             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
430             has ManagedRuleGroupStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
431             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
432             has RuleGroupReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
433             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
434             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
435             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
436             }
437              
438             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwo',
439             as 'Cfn::Value';
440              
441             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwo',
442             from 'HashRef',
443             via {
444             if (my $f = Cfn::TypeLibrary::try_function($_)) {
445             return $f
446             } else {
447             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RateBasedStatementTwo->new( %$_ );
448             }
449             };
450              
451             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RateBasedStatementTwo {
452 1     1   3571 use Moose;
  1         4  
  1         7  
453 1     1   6924 use MooseX::StrictConstructor;
  1         5  
  1         6  
454             extends 'Cfn::Value::TypedValue';
455            
456             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
457             has ForwardedIPConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ForwardedIPConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
458             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
459             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
460             }
461              
462             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwo',
463             as 'Cfn::Value';
464              
465             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwo',
466             from 'HashRef',
467             via {
468             if (my $f = Cfn::TypeLibrary::try_function($_)) {
469             return $f
470             } else {
471             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::OrStatementTwo->new( %$_ );
472             }
473             };
474              
475             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::OrStatementTwo {
476 1     1   3478 use Moose;
  1         5  
  1         7  
477 1     1   6639 use MooseX::StrictConstructor;
  1         2  
  1         7  
478             extends 'Cfn::Value::TypedValue';
479            
480             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
481             }
482              
483             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwo',
484             as 'Cfn::Value';
485              
486             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwo',
487             from 'HashRef',
488             via {
489             if (my $f = Cfn::TypeLibrary::try_function($_)) {
490             return $f
491             } else {
492             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::NotStatementTwo->new( %$_ );
493             }
494             };
495              
496             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::NotStatementTwo {
497 1     1   3353 use Moose;
  1         4  
  1         7  
498 1     1   6875 use MooseX::StrictConstructor;
  1         4  
  1         5  
499             extends 'Cfn::Value::TypedValue';
500            
501             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
502             }
503              
504             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwo',
505             as 'Cfn::Value';
506              
507             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwo',
508             from 'HashRef',
509             via {
510             if (my $f = Cfn::TypeLibrary::try_function($_)) {
511             return $f
512             } else {
513             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::AndStatementTwo->new( %$_ );
514             }
515             };
516              
517             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::AndStatementTwo {
518 1     1   3391 use Moose;
  1         3  
  1         15  
519 1     1   6786 use MooseX::StrictConstructor;
  1         4  
  1         6  
520             extends 'Cfn::Value::TypedValue';
521            
522             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementThree', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
523             }
524             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
525             as 'Cfn::Value',
526             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
527             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
528              
529             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
530             from 'HashRef',
531             via {
532             if (my $f = Cfn::TypeLibrary::try_function($_)) {
533             return $f
534             } else {
535             die 'Only accepts functions';
536             }
537             },
538             from 'ArrayRef',
539             via {
540             Cfn::Value::Array->new(Value => [
541             map {
542             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo')->coerce($_)
543             } @$_
544             ]);
545             };
546              
547             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
548             as 'Cfn::Value';
549              
550             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo',
551             from 'HashRef',
552             via {
553             if (my $f = Cfn::TypeLibrary::try_function($_)) {
554             return $f
555             } else {
556             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::StatementTwo->new( %$_ );
557             }
558             };
559              
560             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::StatementTwo {
561 1     1   3739 use Moose;
  1         5  
  1         5  
562 1     1   6778 use MooseX::StrictConstructor;
  1         5  
  1         6  
563             extends 'Cfn::Value::TypedValue';
564            
565             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
566             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
567             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
568             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
569             has ManagedRuleGroupStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
570             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
571             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
572             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
573             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
574             has RuleGroupReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
575             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
576             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
577             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
578             }
579              
580             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOne',
581             as 'Cfn::Value';
582              
583             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOne',
584             from 'HashRef',
585             via {
586             if (my $f = Cfn::TypeLibrary::try_function($_)) {
587             return $f
588             } else {
589             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RateBasedStatementOne->new( %$_ );
590             }
591             };
592              
593             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RateBasedStatementOne {
594 1     1   3574 use Moose;
  1         3  
  1         15  
595 1     1   6631 use MooseX::StrictConstructor;
  1         2  
  1         5  
596             extends 'Cfn::Value::TypedValue';
597            
598             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
599             has ForwardedIPConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ForwardedIPConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
600             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
601             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
602             }
603              
604             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOne',
605             as 'Cfn::Value';
606              
607             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOne',
608             from 'HashRef',
609             via {
610             if (my $f = Cfn::TypeLibrary::try_function($_)) {
611             return $f
612             } else {
613             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::OrStatementOne->new( %$_ );
614             }
615             };
616              
617             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::OrStatementOne {
618 1     1   3479 use Moose;
  1         6  
  1         6  
619 1     1   6641 use MooseX::StrictConstructor;
  1         3  
  1         6  
620             extends 'Cfn::Value::TypedValue';
621            
622             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
623             }
624              
625             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOne',
626             as 'Cfn::Value';
627              
628             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOne',
629             from 'HashRef',
630             via {
631             if (my $f = Cfn::TypeLibrary::try_function($_)) {
632             return $f
633             } else {
634             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::NotStatementOne->new( %$_ );
635             }
636             };
637              
638             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::NotStatementOne {
639 1     1   3460 use Moose;
  1         3  
  1         6  
640 1     1   6841 use MooseX::StrictConstructor;
  1         2  
  1         8  
641             extends 'Cfn::Value::TypedValue';
642            
643             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
644             }
645              
646             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOne',
647             as 'Cfn::Value';
648              
649             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOne',
650             from 'HashRef',
651             via {
652             if (my $f = Cfn::TypeLibrary::try_function($_)) {
653             return $f
654             } else {
655             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::AndStatementOne->new( %$_ );
656             }
657             };
658              
659             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::AndStatementOne {
660 1     1   3427 use Moose;
  1         3  
  1         8  
661 1     1   7126 use MooseX::StrictConstructor;
  1         3  
  1         5  
662             extends 'Cfn::Value::TypedValue';
663            
664             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::StatementTwo', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
665             }
666              
667             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig',
668             as 'Cfn::Value';
669              
670             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig',
671             from 'HashRef',
672             via {
673             if (my $f = Cfn::TypeLibrary::try_function($_)) {
674             return $f
675             } else {
676             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::VisibilityConfig->new( %$_ );
677             }
678             };
679              
680             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::VisibilityConfig {
681 1     1   3473 use Moose;
  1         3  
  1         6  
682 1     1   6752 use MooseX::StrictConstructor;
  1         3  
  1         8  
683             extends 'Cfn::Value::TypedValue';
684            
685             has CloudWatchMetricsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
686             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
687             has SampledRequestsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
688             }
689              
690             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOne',
691             as 'Cfn::Value';
692              
693             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOne',
694             from 'HashRef',
695             via {
696             if (my $f = Cfn::TypeLibrary::try_function($_)) {
697             return $f
698             } else {
699             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::StatementOne->new( %$_ );
700             }
701             };
702              
703             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::StatementOne {
704 1     1   3385 use Moose;
  1         2  
  1         8  
705 1     1   6672 use MooseX::StrictConstructor;
  1         3  
  1         7  
706             extends 'Cfn::Value::TypedValue';
707            
708             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::AndStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
709             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
710             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
711             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
712             has ManagedRuleGroupStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::ManagedRuleGroupStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
713             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::NotStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
714             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OrStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
715             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RateBasedStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
716             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
717             has RuleGroupReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleGroupReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
718             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
719             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
720             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
721             }
722              
723             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleAction',
724             as 'Cfn::Value';
725              
726             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleAction',
727             from 'HashRef',
728             via {
729             if (my $f = Cfn::TypeLibrary::try_function($_)) {
730             return $f
731             } else {
732             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RuleAction->new( %$_ );
733             }
734             };
735              
736             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::RuleAction {
737 1     1   3632 use Moose;
  1         8  
  1         5  
738 1     1   6620 use MooseX::StrictConstructor;
  1         5  
  1         6  
739             extends 'Cfn::Value::TypedValue';
740            
741             has Allow => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
742             has Block => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
743             has Count => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
744             }
745              
746             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideAction',
747             as 'Cfn::Value';
748              
749             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideAction',
750             from 'HashRef',
751             via {
752             if (my $f = Cfn::TypeLibrary::try_function($_)) {
753             return $f
754             } else {
755             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::OverrideAction->new( %$_ );
756             }
757             };
758              
759             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::OverrideAction {
760 1     1   3483 use Moose;
  1         2  
  1         6  
761 1     1   6617 use MooseX::StrictConstructor;
  1         9  
  1         8  
762             extends 'Cfn::Value::TypedValue';
763            
764             has Count => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
765             has None => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
766             }
767             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
768             as 'Cfn::Value',
769             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
770             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
771              
772             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
773             from 'HashRef',
774             via {
775             if (my $f = Cfn::TypeLibrary::try_function($_)) {
776             return $f
777             } else {
778             die 'Only accepts functions';
779             }
780             },
781             from 'ArrayRef',
782             via {
783             Cfn::Value::Array->new(Value => [
784             map {
785             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rule')->coerce($_)
786             } @$_
787             ]);
788             };
789              
790             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
791             as 'Cfn::Value';
792              
793             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::Rule',
794             from 'HashRef',
795             via {
796             if (my $f = Cfn::TypeLibrary::try_function($_)) {
797             return $f
798             } else {
799             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::Rule->new( %$_ );
800             }
801             };
802              
803             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::Rule {
804 1     1   3611 use Moose;
  1         3  
  1         7  
805 1     1   6648 use MooseX::StrictConstructor;
  1         2  
  1         7  
806             extends 'Cfn::Value::TypedValue';
807            
808             has Action => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::RuleAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
809             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
810             has OverrideAction => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::OverrideAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
811             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
812             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::StatementOne', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
813             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
814             }
815              
816             subtype 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultAction',
817             as 'Cfn::Value';
818              
819             coerce 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultAction',
820             from 'HashRef',
821             via {
822             if (my $f = Cfn::TypeLibrary::try_function($_)) {
823             return $f
824             } else {
825             return Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::DefaultAction->new( %$_ );
826             }
827             };
828              
829             package Cfn::Resource::Properties::Object::AWS::WAFv2::WebACL::DefaultAction {
830 1     1   3511 use Moose;
  1         2  
  1         22  
831 1     1   6592 use MooseX::StrictConstructor;
  1         4  
  1         5  
832             extends 'Cfn::Value::TypedValue';
833            
834             has Allow => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
835             has Block => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
836             }
837              
838             package Cfn::Resource::Properties::AWS::WAFv2::WebACL {
839 1     1   3327 use Moose;
  1         3  
  1         5  
840 1     1   6549 use MooseX::StrictConstructor;
  1         3  
  1         7  
841             extends 'Cfn::Resource::Properties';
842            
843             has DefaultAction => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::DefaultAction', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
844             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
845             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
846             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::WebACL::Rule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
847             has Scope => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
848             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
849             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::WebACL::VisibilityConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
850             }
851              
852             1;
853             ### main pod documentation begin ###
854              
855             =encoding UTF-8
856              
857             =head1 NAME
858              
859             Cfn::Resource::AWS::WAFv2::WebACL - Cfn resource for AWS::WAFv2::WebACL
860              
861             =head1 DESCRIPTION
862              
863             This module implements a Perl module that represents the CloudFormation object AWS::WAFv2::WebACL.
864              
865             See L<Cfn> for more information on how to use it.
866              
867             =head1 AUTHOR
868              
869             Jose Luis Martinez
870             CAPSiDE
871             jlmartinez@capside.com
872              
873             =head1 COPYRIGHT and LICENSE
874              
875             Copyright (c) 2013 by CAPSiDE
876             This code is distributed under the Apache 2 License. The full text of the
877             license can be found in the LICENSE file included with this module.
878              
879             =cut