File Coverage

blib/lib/Cfn/Resource/AWS/WAFv2/RuleGroup.pm
Criterion Covered Total %
statement 152 152 100.0
branch n/a
condition n/a
subroutine 52 52 100.0
pod 0 2 0.0
total 204 206 99.0


line stmt bran cond sub pod time code
1             # AWS::WAFv2::RuleGroup generated from spec 11.1.0
2 1     1   622 use Moose::Util::TypeConstraints;
  1         2  
  1         9  
3              
4             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::WAFv2::RuleGroup->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::WAFv2::RuleGroup {
9 1     1   1984 use Moose;
  1         3  
  1         6  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 4 [ 'Arn','Id' ]
15             }
16             sub supported_regions {
17 1     1 0 1168 [ '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-west-1','eu-west-2','eu-west-3','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::RuleGroup::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::RuleGroup::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::RuleGroup::TextTransformation')->coerce($_)
41             } @$_
42             ]);
43             };
44              
45             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformationValue->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformationValue {
59 1     1   7431 use Moose;
  1         3  
  1         5  
60 1     1   6516 use MooseX::StrictConstructor;
  1         3  
  1         7  
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::RuleGroup::FieldToMatch',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatchValue->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatchValue {
81 1     1   3427 use Moose;
  1         5  
  1         6  
82 1     1   6476 use MooseX::StrictConstructor;
  1         2  
  1         5  
83             extends 'Cfn::Value::TypedValue';
84            
85             has AllQueryArguments => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             has Body => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
87             has Method => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
88             has QueryString => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
89             has SingleHeader => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
90             has SingleQueryArgument => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
91             has UriPath => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
92             }
93              
94             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement',
95             as 'Cfn::Value';
96              
97             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement',
98             from 'HashRef',
99             via {
100             if (my $f = Cfn::TypeLibrary::try_function($_)) {
101             return $f
102             } else {
103             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatementValue->new( %$_ );
104             }
105             };
106              
107             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatementValue {
108 1     1   3411 use Moose;
  1         10  
  1         6  
109 1     1   6462 use MooseX::StrictConstructor;
  1         4  
  1         6  
110             extends 'Cfn::Value::TypedValue';
111            
112             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
113             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
114             }
115              
116             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement',
117             as 'Cfn::Value';
118              
119             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement',
120             from 'HashRef',
121             via {
122             if (my $f = Cfn::TypeLibrary::try_function($_)) {
123             return $f
124             } else {
125             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatementValue->new( %$_ );
126             }
127             };
128              
129             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatementValue {
130 1     1   3415 use Moose;
  1         5  
  1         7  
131 1     1   6510 use MooseX::StrictConstructor;
  1         3  
  1         5  
132             extends 'Cfn::Value::TypedValue';
133            
134             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
135             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
136             }
137              
138             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement',
139             as 'Cfn::Value';
140              
141             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement',
142             from 'HashRef',
143             via {
144             if (my $f = Cfn::TypeLibrary::try_function($_)) {
145             return $f
146             } else {
147             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatementValue->new( %$_ );
148             }
149             };
150              
151             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatementValue {
152 1     1   3333 use Moose;
  1         2  
  1         7  
153 1     1   6493 use MooseX::StrictConstructor;
  1         5  
  1         6  
154             extends 'Cfn::Value::TypedValue';
155            
156             has ComparisonOperator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
157             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
158             has Size => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
159             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
160             }
161              
162             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement',
163             as 'Cfn::Value';
164              
165             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement',
166             from 'HashRef',
167             via {
168             if (my $f = Cfn::TypeLibrary::try_function($_)) {
169             return $f
170             } else {
171             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatementValue->new( %$_ );
172             }
173             };
174              
175             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatementValue {
176 1     1   3374 use Moose;
  1         3  
  1         6  
177 1     1   6504 use MooseX::StrictConstructor;
  1         5  
  1         6  
178             extends 'Cfn::Value::TypedValue';
179            
180             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
181             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
182             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
183             }
184              
185             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement',
186             as 'Cfn::Value';
187              
188             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement',
189             from 'HashRef',
190             via {
191             if (my $f = Cfn::TypeLibrary::try_function($_)) {
192             return $f
193             } else {
194             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatementValue->new( %$_ );
195             }
196             };
197              
198             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatementValue {
199 1     1   3342 use Moose;
  1         3  
  1         5  
200 1     1   6467 use MooseX::StrictConstructor;
  1         3  
  1         5  
201             extends 'Cfn::Value::TypedValue';
202            
203             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
204             }
205              
206             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement',
207             as 'Cfn::Value';
208              
209             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement',
210             from 'HashRef',
211             via {
212             if (my $f = Cfn::TypeLibrary::try_function($_)) {
213             return $f
214             } else {
215             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatementValue->new( %$_ );
216             }
217             };
218              
219             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatementValue {
220 1     1   3306 use Moose;
  1         2  
  1         9  
221 1     1   6586 use MooseX::StrictConstructor;
  1         3  
  1         6  
222             extends 'Cfn::Value::TypedValue';
223            
224             has CountryCodes => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
225             }
226              
227             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement',
228             as 'Cfn::Value';
229              
230             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement',
231             from 'HashRef',
232             via {
233             if (my $f = Cfn::TypeLibrary::try_function($_)) {
234             return $f
235             } else {
236             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatementValue->new( %$_ );
237             }
238             };
239              
240             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatementValue {
241 1     1   3319 use Moose;
  1         4  
  1         5  
242 1     1   6503 use MooseX::StrictConstructor;
  1         3  
  1         5  
243             extends 'Cfn::Value::TypedValue';
244            
245             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
246             has PositionalConstraint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
247             has SearchString => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             has SearchStringBase64 => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             }
251             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
252             as 'Cfn::Value',
253             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
254             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
255              
256             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
257             from 'HashRef',
258             via {
259             if (my $f = Cfn::TypeLibrary::try_function($_)) {
260             return $f
261             } else {
262             die 'Only accepts functions';
263             }
264             },
265             from 'ArrayRef',
266             via {
267             Cfn::Value::Array->new(Value => [
268             map {
269             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree')->coerce($_)
270             } @$_
271             ]);
272             };
273              
274             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
275             as 'Cfn::Value';
276              
277             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
278             from 'HashRef',
279             via {
280             if (my $f = Cfn::TypeLibrary::try_function($_)) {
281             return $f
282             } else {
283             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThreeValue->new( %$_ );
284             }
285             };
286              
287             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThreeValue {
288 1     1   3588 use Moose;
  1         2  
  1         15  
289 1     1   6522 use MooseX::StrictConstructor;
  1         2  
  1         7  
290             extends 'Cfn::Value::TypedValue';
291            
292             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
293             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
294             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
295             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
298             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
299             }
300              
301             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwo',
302             as 'Cfn::Value';
303              
304             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwo',
305             from 'HashRef',
306             via {
307             if (my $f = Cfn::TypeLibrary::try_function($_)) {
308             return $f
309             } else {
310             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwoValue->new( %$_ );
311             }
312             };
313              
314             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwoValue {
315 1     1   3402 use Moose;
  1         10  
  1         7  
316 1     1   6537 use MooseX::StrictConstructor;
  1         4  
  1         4  
317             extends 'Cfn::Value::TypedValue';
318            
319             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
320             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
321             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
322             }
323              
324             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwo',
325             as 'Cfn::Value';
326              
327             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwo',
328             from 'HashRef',
329             via {
330             if (my $f = Cfn::TypeLibrary::try_function($_)) {
331             return $f
332             } else {
333             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwoValue->new( %$_ );
334             }
335             };
336              
337             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwoValue {
338 1     1   3348 use Moose;
  1         2  
  1         6  
339 1     1   6548 use MooseX::StrictConstructor;
  1         2  
  1         5  
340             extends 'Cfn::Value::TypedValue';
341            
342             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
343             }
344              
345             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwo',
346             as 'Cfn::Value';
347              
348             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwo',
349             from 'HashRef',
350             via {
351             if (my $f = Cfn::TypeLibrary::try_function($_)) {
352             return $f
353             } else {
354             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwoValue->new( %$_ );
355             }
356             };
357              
358             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwoValue {
359 1     1   3702 use Moose;
  1         7  
  1         6  
360 1     1   6501 use MooseX::StrictConstructor;
  1         7  
  1         6  
361             extends 'Cfn::Value::TypedValue';
362            
363             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
364             }
365              
366             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwo',
367             as 'Cfn::Value';
368              
369             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwo',
370             from 'HashRef',
371             via {
372             if (my $f = Cfn::TypeLibrary::try_function($_)) {
373             return $f
374             } else {
375             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwoValue->new( %$_ );
376             }
377             };
378              
379             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwoValue {
380 1     1   3307 use Moose;
  1         3  
  1         5  
381 1     1   6556 use MooseX::StrictConstructor;
  1         2  
  1         5  
382             extends 'Cfn::Value::TypedValue';
383            
384             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
385             }
386             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
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::RuleGroup::StatementTwo',
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::RuleGroup::StatementTwo')->coerce($_)
405             } @$_
406             ]);
407             };
408              
409             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
410             as 'Cfn::Value';
411              
412             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
413             from 'HashRef',
414             via {
415             if (my $f = Cfn::TypeLibrary::try_function($_)) {
416             return $f
417             } else {
418             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwoValue->new( %$_ );
419             }
420             };
421              
422             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwoValue {
423 1     1   3475 use Moose;
  1         4  
  1         5  
424 1     1   6477 use MooseX::StrictConstructor;
  1         3  
  1         5  
425             extends 'Cfn::Value::TypedValue';
426            
427             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
428             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
429             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
430             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
431             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
432             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
433             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
434             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
435             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
436             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
437             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
438             }
439              
440             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOne',
441             as 'Cfn::Value';
442              
443             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOne',
444             from 'HashRef',
445             via {
446             if (my $f = Cfn::TypeLibrary::try_function($_)) {
447             return $f
448             } else {
449             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOneValue->new( %$_ );
450             }
451             };
452              
453             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOneValue {
454 1     1   3433 use Moose;
  1         4  
  1         5  
455 1     1   6576 use MooseX::StrictConstructor;
  1         2  
  1         5  
456             extends 'Cfn::Value::TypedValue';
457            
458             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
459             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
460             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
461             }
462              
463             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOne',
464             as 'Cfn::Value';
465              
466             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOne',
467             from 'HashRef',
468             via {
469             if (my $f = Cfn::TypeLibrary::try_function($_)) {
470             return $f
471             } else {
472             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOneValue->new( %$_ );
473             }
474             };
475              
476             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOneValue {
477 1     1   3321 use Moose;
  1         2  
  1         6  
478 1     1   6499 use MooseX::StrictConstructor;
  1         2  
  1         5  
479             extends 'Cfn::Value::TypedValue';
480            
481             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
482             }
483              
484             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOne',
485             as 'Cfn::Value';
486              
487             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOne',
488             from 'HashRef',
489             via {
490             if (my $f = Cfn::TypeLibrary::try_function($_)) {
491             return $f
492             } else {
493             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOneValue->new( %$_ );
494             }
495             };
496              
497             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOneValue {
498 1     1   3329 use Moose;
  1         3  
  1         5  
499 1     1   6542 use MooseX::StrictConstructor;
  1         3  
  1         5  
500             extends 'Cfn::Value::TypedValue';
501            
502             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
503             }
504              
505             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOne',
506             as 'Cfn::Value';
507              
508             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOne',
509             from 'HashRef',
510             via {
511             if (my $f = Cfn::TypeLibrary::try_function($_)) {
512             return $f
513             } else {
514             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOneValue->new( %$_ );
515             }
516             };
517              
518             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOneValue {
519 1     1   3255 use Moose;
  1         2  
  1         5  
520 1     1   6485 use MooseX::StrictConstructor;
  1         2  
  1         5  
521             extends 'Cfn::Value::TypedValue';
522            
523             has Statements => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
524             }
525              
526             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig',
527             as 'Cfn::Value';
528              
529             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig',
530             from 'HashRef',
531             via {
532             if (my $f = Cfn::TypeLibrary::try_function($_)) {
533             return $f
534             } else {
535             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfigValue->new( %$_ );
536             }
537             };
538              
539             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfigValue {
540 1     1   3345 use Moose;
  1         2  
  1         5  
541 1     1   6494 use MooseX::StrictConstructor;
  1         2  
  1         6  
542             extends 'Cfn::Value::TypedValue';
543            
544             has CloudWatchMetricsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
545             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
546             has SampledRequestsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
547             }
548              
549             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOne',
550             as 'Cfn::Value';
551              
552             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOne',
553             from 'HashRef',
554             via {
555             if (my $f = Cfn::TypeLibrary::try_function($_)) {
556             return $f
557             } else {
558             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOneValue->new( %$_ );
559             }
560             };
561              
562             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOneValue {
563 1     1   3392 use Moose;
  1         2  
  1         5  
564 1     1   6486 use MooseX::StrictConstructor;
  1         2  
  1         5  
565             extends 'Cfn::Value::TypedValue';
566            
567             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
568             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
569             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
570             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
571             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
572             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
573             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
574             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
575             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
576             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
577             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
578             }
579              
580             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleAction',
581             as 'Cfn::Value';
582              
583             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleAction',
584             from 'HashRef',
585             via {
586             if (my $f = Cfn::TypeLibrary::try_function($_)) {
587             return $f
588             } else {
589             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleActionValue->new( %$_ );
590             }
591             };
592              
593             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleActionValue {
594 1     1   3469 use Moose;
  1         2  
  1         6  
595 1     1   6507 use MooseX::StrictConstructor;
  1         3  
  1         5  
596             extends 'Cfn::Value::TypedValue';
597            
598             has Allow => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
599             has Block => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
600             has Count => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
601             }
602             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
603             as 'Cfn::Value',
604             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
605             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
606              
607             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
608             from 'HashRef',
609             via {
610             if (my $f = Cfn::TypeLibrary::try_function($_)) {
611             return $f
612             } else {
613             die 'Only accepts functions';
614             }
615             },
616             from 'ArrayRef',
617             via {
618             Cfn::Value::Array->new(Value => [
619             map {
620             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule')->coerce($_)
621             } @$_
622             ]);
623             };
624              
625             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
626             as 'Cfn::Value';
627              
628             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
629             from 'HashRef',
630             via {
631             if (my $f = Cfn::TypeLibrary::try_function($_)) {
632             return $f
633             } else {
634             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleValue->new( %$_ );
635             }
636             };
637              
638             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleValue {
639 1     1   3519 use Moose;
  1         2  
  1         6  
640 1     1   6461 use MooseX::StrictConstructor;
  1         2  
  1         6  
641             extends 'Cfn::Value::TypedValue';
642            
643             has Action => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
644             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
645             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
646             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOne', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
647             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
648             }
649              
650             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup {
651 1     1   3265 use Moose;
  1         3  
  1         6  
652 1     1   6503 use MooseX::StrictConstructor;
  1         3  
  1         5  
653             extends 'Cfn::Resource::Properties';
654            
655             has Capacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
656             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
657             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
658             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
659             has Scope => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
660             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
661             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
662             }
663              
664             1;