File Coverage

blib/lib/Cfn/Resource/AWS/WAFv2/RuleGroup.pm
Criterion Covered Total %
statement 248 248 100.0
branch n/a
condition n/a
subroutine 84 84 100.0
pod 0 2 0.0
total 332 334 99.4


line stmt bran cond sub pod time code
1             # AWS::WAFv2::RuleGroup generated from spec 10.0.0
2 1     1   813 use Moose::Util::TypeConstraints;
  1         3  
  1         12  
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   2220 use Moose;
  1         2  
  1         9  
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 5 [ 'Arn','Id' ]
15             }
16             sub supported_regions {
17 1     1 0 1129 [ 'ap-northeast-1','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','eu-central-1','eu-west-1','eu-west-2','eu-west-3','sa-east-1','us-east-1','us-east-2','us-west-1','us-west-2' ]
18             }
19             }
20              
21              
22              
23             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::UriPath',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::UriPath',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::UriPathValue->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::UriPathValue {
37 1     1   7064 use Moose;
  1         3  
  1         14  
38 1     1   6643 use MooseX::StrictConstructor;
  1         2  
  1         9  
39             extends 'Cfn::Value::TypedValue';
40            
41             }
42             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation',
43             as 'Cfn::Value',
44             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
45             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
46              
47             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation',
48             from 'HashRef',
49             via {
50             if (my $f = Cfn::TypeLibrary::try_function($_)) {
51             return $f
52             } else {
53             die 'Only accepts functions';
54             }
55             },
56             from 'ArrayRef',
57             via {
58             Cfn::Value::Array->new(Value => [
59             map {
60             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation')->coerce($_)
61             } @$_
62             ]);
63             };
64              
65             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation',
66             as 'Cfn::Value';
67              
68             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation',
69             from 'HashRef',
70             via {
71             if (my $f = Cfn::TypeLibrary::try_function($_)) {
72             return $f
73             } else {
74             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformationValue->new( %$_ );
75             }
76             };
77              
78             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformationValue {
79 1     1   3755 use Moose;
  1         3  
  1         8  
80 1     1   6604 use MooseX::StrictConstructor;
  1         3  
  1         5  
81             extends 'Cfn::Value::TypedValue';
82            
83             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
84             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
85             }
86              
87             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleQueryArgument',
88             as 'Cfn::Value';
89              
90             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleQueryArgument',
91             from 'HashRef',
92             via {
93             if (my $f = Cfn::TypeLibrary::try_function($_)) {
94             return $f
95             } else {
96             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleQueryArgumentValue->new( %$_ );
97             }
98             };
99              
100             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleQueryArgumentValue {
101 1     1   3383 use Moose;
  1         3  
  1         5  
102 1     1   6519 use MooseX::StrictConstructor;
  1         3  
  1         7  
103             extends 'Cfn::Value::TypedValue';
104            
105             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
106             }
107              
108             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleHeader',
109             as 'Cfn::Value';
110              
111             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleHeader',
112             from 'HashRef',
113             via {
114             if (my $f = Cfn::TypeLibrary::try_function($_)) {
115             return $f
116             } else {
117             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleHeaderValue->new( %$_ );
118             }
119             };
120              
121             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleHeaderValue {
122 1     1   3341 use Moose;
  1         3  
  1         6  
123 1     1   6629 use MooseX::StrictConstructor;
  1         3  
  1         5  
124             extends 'Cfn::Value::TypedValue';
125            
126             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
127             }
128              
129             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::QueryString',
130             as 'Cfn::Value';
131              
132             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::QueryString',
133             from 'HashRef',
134             via {
135             if (my $f = Cfn::TypeLibrary::try_function($_)) {
136             return $f
137             } else {
138             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::QueryStringValue->new( %$_ );
139             }
140             };
141              
142             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::QueryStringValue {
143 1     1   3362 use Moose;
  1         2  
  1         6  
144 1     1   6555 use MooseX::StrictConstructor;
  1         3  
  1         6  
145             extends 'Cfn::Value::TypedValue';
146            
147             }
148              
149             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Method',
150             as 'Cfn::Value';
151              
152             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Method',
153             from 'HashRef',
154             via {
155             if (my $f = Cfn::TypeLibrary::try_function($_)) {
156             return $f
157             } else {
158             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::MethodValue->new( %$_ );
159             }
160             };
161              
162             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::MethodValue {
163 1     1   3329 use Moose;
  1         2  
  1         5  
164 1     1   6526 use MooseX::StrictConstructor;
  1         3  
  1         6  
165             extends 'Cfn::Value::TypedValue';
166            
167             }
168              
169             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Body',
170             as 'Cfn::Value';
171              
172             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Body',
173             from 'HashRef',
174             via {
175             if (my $f = Cfn::TypeLibrary::try_function($_)) {
176             return $f
177             } else {
178             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BodyValue->new( %$_ );
179             }
180             };
181              
182             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BodyValue {
183 1     1   3323 use Moose;
  1         3  
  1         5  
184 1     1   6543 use MooseX::StrictConstructor;
  1         3  
  1         5  
185             extends 'Cfn::Value::TypedValue';
186            
187             }
188              
189             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllQueryArguments',
190             as 'Cfn::Value';
191              
192             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllQueryArguments',
193             from 'HashRef',
194             via {
195             if (my $f = Cfn::TypeLibrary::try_function($_)) {
196             return $f
197             } else {
198             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllQueryArgumentsValue->new( %$_ );
199             }
200             };
201              
202             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllQueryArgumentsValue {
203 1     1   3301 use Moose;
  1         3  
  1         6  
204 1     1   6597 use MooseX::StrictConstructor;
  1         2  
  1         6  
205             extends 'Cfn::Value::TypedValue';
206            
207             }
208              
209             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations',
210             as 'Cfn::Value';
211              
212             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations',
213             from 'HashRef',
214             via {
215             if (my $f = Cfn::TypeLibrary::try_function($_)) {
216             return $f
217             } else {
218             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformationsValue->new( %$_ );
219             }
220             };
221              
222             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformationsValue {
223 1     1   3302 use Moose;
  1         4  
  1         7  
224 1     1   6557 use MooseX::StrictConstructor;
  1         2  
  1         6  
225             extends 'Cfn::Value::TypedValue';
226            
227             has TextTransformations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
228             }
229              
230             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch',
231             as 'Cfn::Value';
232              
233             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch',
234             from 'HashRef',
235             via {
236             if (my $f = Cfn::TypeLibrary::try_function($_)) {
237             return $f
238             } else {
239             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatchValue->new( %$_ );
240             }
241             };
242              
243             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatchValue {
244 1     1   3374 use Moose;
  1         3  
  1         7  
245 1     1   6655 use MooseX::StrictConstructor;
  1         2  
  1         6  
246             extends 'Cfn::Value::TypedValue';
247            
248             has AllQueryArguments => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllQueryArguments', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             has Body => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Body', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             has Method => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Method', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
251             has QueryString => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::QueryString', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
252             has SingleHeader => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleHeader', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
253             has SingleQueryArgument => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SingleQueryArgument', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
254             has UriPath => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::UriPath', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
255             }
256              
257             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountryCodes',
258             as 'Cfn::Value';
259              
260             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountryCodes',
261             from 'HashRef',
262             via {
263             if (my $f = Cfn::TypeLibrary::try_function($_)) {
264             return $f
265             } else {
266             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountryCodesValue->new( %$_ );
267             }
268             };
269              
270             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountryCodesValue {
271 1     1   3529 use Moose;
  1         2  
  1         5  
272 1     1   6949 use MooseX::StrictConstructor;
  1         2  
  1         5  
273             extends 'Cfn::Value::TypedValue';
274            
275             has CountryCodes => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
276             }
277              
278             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement',
279             as 'Cfn::Value';
280              
281             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement',
282             from 'HashRef',
283             via {
284             if (my $f = Cfn::TypeLibrary::try_function($_)) {
285             return $f
286             } else {
287             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatementValue->new( %$_ );
288             }
289             };
290              
291             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatementValue {
292 1     1   3380 use Moose;
  1         3  
  1         8  
293 1     1   6608 use MooseX::StrictConstructor;
  1         4  
  1         7  
294             extends 'Cfn::Value::TypedValue';
295            
296             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
298             }
299              
300             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement',
301             as 'Cfn::Value';
302              
303             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement',
304             from 'HashRef',
305             via {
306             if (my $f = Cfn::TypeLibrary::try_function($_)) {
307             return $f
308             } else {
309             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatementValue->new( %$_ );
310             }
311             };
312              
313             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatementValue {
314 1     1   3372 use Moose;
  1         2  
  1         9  
315 1     1   6566 use MooseX::StrictConstructor;
  1         2  
  1         7  
316             extends 'Cfn::Value::TypedValue';
317            
318             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
319             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
320             }
321              
322             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement',
323             as 'Cfn::Value';
324              
325             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement',
326             from 'HashRef',
327             via {
328             if (my $f = Cfn::TypeLibrary::try_function($_)) {
329             return $f
330             } else {
331             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatementValue->new( %$_ );
332             }
333             };
334              
335             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatementValue {
336 1     1   3346 use Moose;
  1         4  
  1         6  
337 1     1   6617 use MooseX::StrictConstructor;
  1         2  
  1         6  
338             extends 'Cfn::Value::TypedValue';
339            
340             has ComparisonOperator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
341             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
342             has Size => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
343             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
344             }
345              
346             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement',
347             as 'Cfn::Value';
348              
349             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement',
350             from 'HashRef',
351             via {
352             if (my $f = Cfn::TypeLibrary::try_function($_)) {
353             return $f
354             } else {
355             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatementValue->new( %$_ );
356             }
357             };
358              
359             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatementValue {
360 1     1   3400 use Moose;
  1         2  
  1         7  
361 1     1   6530 use MooseX::StrictConstructor;
  1         3  
  1         5  
362             extends 'Cfn::Value::TypedValue';
363            
364             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
365             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
366             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
367             }
368              
369             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement',
370             as 'Cfn::Value';
371              
372             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement',
373             from 'HashRef',
374             via {
375             if (my $f = Cfn::TypeLibrary::try_function($_)) {
376             return $f
377             } else {
378             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatementValue->new( %$_ );
379             }
380             };
381              
382             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatementValue {
383 1     1   3395 use Moose;
  1         4  
  1         6  
384 1     1   6697 use MooseX::StrictConstructor;
  1         3  
  1         4  
385             extends 'Cfn::Value::TypedValue';
386            
387             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
388             }
389              
390             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement',
391             as 'Cfn::Value';
392              
393             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement',
394             from 'HashRef',
395             via {
396             if (my $f = Cfn::TypeLibrary::try_function($_)) {
397             return $f
398             } else {
399             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatementValue->new( %$_ );
400             }
401             };
402              
403             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatementValue {
404 1     1   3339 use Moose;
  1         3  
  1         5  
405 1     1   6523 use MooseX::StrictConstructor;
  1         3  
  1         6  
406             extends 'Cfn::Value::TypedValue';
407            
408             has CountryCodes => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountryCodes', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
409             }
410              
411             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement',
412             as 'Cfn::Value';
413              
414             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement',
415             from 'HashRef',
416             via {
417             if (my $f = Cfn::TypeLibrary::try_function($_)) {
418             return $f
419             } else {
420             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatementValue->new( %$_ );
421             }
422             };
423              
424             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatementValue {
425 1     1   3462 use Moose;
  1         3  
  1         6  
426 1     1   6674 use MooseX::StrictConstructor;
  1         3  
  1         5  
427             extends 'Cfn::Value::TypedValue';
428            
429             has FieldToMatch => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::FieldToMatch', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
430             has PositionalConstraint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
431             has SearchString => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
432             has SearchStringBase64 => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
433             has TextTransformations => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TextTransformations', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
434             }
435             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
436             as 'Cfn::Value',
437             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
438             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
439              
440             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
441             from 'HashRef',
442             via {
443             if (my $f = Cfn::TypeLibrary::try_function($_)) {
444             return $f
445             } else {
446             die 'Only accepts functions';
447             }
448             },
449             from 'ArrayRef',
450             via {
451             Cfn::Value::Array->new(Value => [
452             map {
453             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree')->coerce($_)
454             } @$_
455             ]);
456             };
457              
458             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
459             as 'Cfn::Value';
460              
461             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree',
462             from 'HashRef',
463             via {
464             if (my $f = Cfn::TypeLibrary::try_function($_)) {
465             return $f
466             } else {
467             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThreeValue->new( %$_ );
468             }
469             };
470              
471             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThreeValue {
472 1     1   3845 use Moose;
  1         4  
  1         7  
473 1     1   6598 use MooseX::StrictConstructor;
  1         4  
  1         5  
474             extends 'Cfn::Value::TypedValue';
475            
476             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
477             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
478             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
479             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
480             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
481             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
482             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
483             }
484              
485             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThrees',
486             as 'Cfn::Value';
487              
488             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThrees',
489             from 'HashRef',
490             via {
491             if (my $f = Cfn::TypeLibrary::try_function($_)) {
492             return $f
493             } else {
494             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThreesValue->new( %$_ );
495             }
496             };
497              
498             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThreesValue {
499 1     1   3496 use Moose;
  1         3  
  1         6  
500 1     1   6555 use MooseX::StrictConstructor;
  1         2  
  1         6  
501             extends 'Cfn::Value::TypedValue';
502            
503             has StatementThrees => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
504             }
505              
506             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwo',
507             as 'Cfn::Value';
508              
509             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwo',
510             from 'HashRef',
511             via {
512             if (my $f = Cfn::TypeLibrary::try_function($_)) {
513             return $f
514             } else {
515             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwoValue->new( %$_ );
516             }
517             };
518              
519             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwoValue {
520 1     1   3382 use Moose;
  1         2  
  1         5  
521 1     1   6547 use MooseX::StrictConstructor;
  1         3  
  1         5  
522             extends 'Cfn::Value::TypedValue';
523            
524             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
525             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
526             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
527             }
528              
529             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwo',
530             as 'Cfn::Value';
531              
532             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwo',
533             from 'HashRef',
534             via {
535             if (my $f = Cfn::TypeLibrary::try_function($_)) {
536             return $f
537             } else {
538             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwoValue->new( %$_ );
539             }
540             };
541              
542             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwoValue {
543 1     1   3392 use Moose;
  1         2  
  1         6  
544 1     1   6652 use MooseX::StrictConstructor;
  1         3  
  1         7  
545             extends 'Cfn::Value::TypedValue';
546            
547             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThrees', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
548             }
549              
550             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwo',
551             as 'Cfn::Value';
552              
553             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwo',
554             from 'HashRef',
555             via {
556             if (my $f = Cfn::TypeLibrary::try_function($_)) {
557             return $f
558             } else {
559             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwoValue->new( %$_ );
560             }
561             };
562              
563             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwoValue {
564 1     1   3407 use Moose;
  1         2  
  1         5  
565 1     1   6526 use MooseX::StrictConstructor;
  1         2  
  1         5  
566             extends 'Cfn::Value::TypedValue';
567            
568             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThree', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
569             }
570              
571             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwo',
572             as 'Cfn::Value';
573              
574             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwo',
575             from 'HashRef',
576             via {
577             if (my $f = Cfn::TypeLibrary::try_function($_)) {
578             return $f
579             } else {
580             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwoValue->new( %$_ );
581             }
582             };
583              
584             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwoValue {
585 1     1   3754 use Moose;
  1         2  
  1         8  
586 1     1   6582 use MooseX::StrictConstructor;
  1         2  
  1         8  
587             extends 'Cfn::Value::TypedValue';
588            
589             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementThrees', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
590             }
591             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
592             as 'Cfn::Value',
593             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
594             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
595              
596             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
597             from 'HashRef',
598             via {
599             if (my $f = Cfn::TypeLibrary::try_function($_)) {
600             return $f
601             } else {
602             die 'Only accepts functions';
603             }
604             },
605             from 'ArrayRef',
606             via {
607             Cfn::Value::Array->new(Value => [
608             map {
609             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo')->coerce($_)
610             } @$_
611             ]);
612             };
613              
614             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
615             as 'Cfn::Value';
616              
617             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo',
618             from 'HashRef',
619             via {
620             if (my $f = Cfn::TypeLibrary::try_function($_)) {
621             return $f
622             } else {
623             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwoValue->new( %$_ );
624             }
625             };
626              
627             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwoValue {
628 1     1   3573 use Moose;
  1         4  
  1         6  
629 1     1   6538 use MooseX::StrictConstructor;
  1         3  
  1         5  
630             extends 'Cfn::Value::TypedValue';
631            
632             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
633             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
634             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
635             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
636             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
637             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
638             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
639             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
640             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
641             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
642             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
643             }
644              
645             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwos',
646             as 'Cfn::Value';
647              
648             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwos',
649             from 'HashRef',
650             via {
651             if (my $f = Cfn::TypeLibrary::try_function($_)) {
652             return $f
653             } else {
654             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwosValue->new( %$_ );
655             }
656             };
657              
658             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwosValue {
659 1     1   3552 use Moose;
  1         2  
  1         6  
660 1     1   6776 use MooseX::StrictConstructor;
  1         2  
  1         6  
661             extends 'Cfn::Value::TypedValue';
662            
663             has StatementTwos => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
664             }
665              
666             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOne',
667             as 'Cfn::Value';
668              
669             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOne',
670             from 'HashRef',
671             via {
672             if (my $f = Cfn::TypeLibrary::try_function($_)) {
673             return $f
674             } else {
675             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOneValue->new( %$_ );
676             }
677             };
678              
679             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOneValue {
680 1     1   3539 use Moose;
  1         2  
  1         5  
681 1     1   6704 use MooseX::StrictConstructor;
  1         3  
  1         6  
682             extends 'Cfn::Value::TypedValue';
683            
684             has AggregateKeyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
685             has Limit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
686             has ScopeDownStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
687             }
688              
689             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOne',
690             as 'Cfn::Value';
691              
692             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOne',
693             from 'HashRef',
694             via {
695             if (my $f = Cfn::TypeLibrary::try_function($_)) {
696             return $f
697             } else {
698             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOneValue->new( %$_ );
699             }
700             };
701              
702             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOneValue {
703 1     1   3361 use Moose;
  1         3  
  1         6  
704 1     1   6811 use MooseX::StrictConstructor;
  1         2  
  1         7  
705             extends 'Cfn::Value::TypedValue';
706            
707             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwos', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
708             }
709              
710             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOne',
711             as 'Cfn::Value';
712              
713             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOne',
714             from 'HashRef',
715             via {
716             if (my $f = Cfn::TypeLibrary::try_function($_)) {
717             return $f
718             } else {
719             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOneValue->new( %$_ );
720             }
721             };
722              
723             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOneValue {
724 1     1   3540 use Moose;
  1         3  
  1         15  
725 1     1   6726 use MooseX::StrictConstructor;
  1         3  
  1         4  
726             extends 'Cfn::Value::TypedValue';
727            
728             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
729             }
730              
731             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountAction',
732             as 'Cfn::Value';
733              
734             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountAction',
735             from 'HashRef',
736             via {
737             if (my $f = Cfn::TypeLibrary::try_function($_)) {
738             return $f
739             } else {
740             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountActionValue->new( %$_ );
741             }
742             };
743              
744             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountActionValue {
745 1     1   3467 use Moose;
  1         3  
  1         5  
746 1     1   6667 use MooseX::StrictConstructor;
  1         4  
  1         6  
747             extends 'Cfn::Value::TypedValue';
748            
749             }
750              
751             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BlockAction',
752             as 'Cfn::Value';
753              
754             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BlockAction',
755             from 'HashRef',
756             via {
757             if (my $f = Cfn::TypeLibrary::try_function($_)) {
758             return $f
759             } else {
760             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BlockActionValue->new( %$_ );
761             }
762             };
763              
764             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BlockActionValue {
765 1     1   3364 use Moose;
  1         3  
  1         9  
766 1     1   6618 use MooseX::StrictConstructor;
  1         2  
  1         4  
767             extends 'Cfn::Value::TypedValue';
768            
769             }
770              
771             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOne',
772             as 'Cfn::Value';
773              
774             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOne',
775             from 'HashRef',
776             via {
777             if (my $f = Cfn::TypeLibrary::try_function($_)) {
778             return $f
779             } else {
780             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOneValue->new( %$_ );
781             }
782             };
783              
784             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOneValue {
785 1     1   3331 use Moose;
  1         7  
  1         6  
786 1     1   6575 use MooseX::StrictConstructor;
  1         3  
  1         5  
787             extends 'Cfn::Value::TypedValue';
788            
789             has Statements => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementTwos', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
790             }
791              
792             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllowAction',
793             as 'Cfn::Value';
794              
795             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllowAction',
796             from 'HashRef',
797             via {
798             if (my $f = Cfn::TypeLibrary::try_function($_)) {
799             return $f
800             } else {
801             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllowActionValue->new( %$_ );
802             }
803             };
804              
805             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllowActionValue {
806 1     1   3336 use Moose;
  1         4  
  1         7  
807 1     1   6646 use MooseX::StrictConstructor;
  1         2  
  1         7  
808             extends 'Cfn::Value::TypedValue';
809            
810             }
811              
812             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig',
813             as 'Cfn::Value';
814              
815             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig',
816             from 'HashRef',
817             via {
818             if (my $f = Cfn::TypeLibrary::try_function($_)) {
819             return $f
820             } else {
821             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfigValue->new( %$_ );
822             }
823             };
824              
825             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfigValue {
826 1     1   3385 use Moose;
  1         2  
  1         6  
827 1     1   6529 use MooseX::StrictConstructor;
  1         3  
  1         6  
828             extends 'Cfn::Value::TypedValue';
829            
830             has CloudWatchMetricsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
831             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
832             has SampledRequestsEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
833             }
834              
835             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOne',
836             as 'Cfn::Value';
837              
838             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOne',
839             from 'HashRef',
840             via {
841             if (my $f = Cfn::TypeLibrary::try_function($_)) {
842             return $f
843             } else {
844             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOneValue->new( %$_ );
845             }
846             };
847              
848             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOneValue {
849 1     1   3412 use Moose;
  1         3  
  1         6  
850 1     1   6603 use MooseX::StrictConstructor;
  1         6  
  1         7  
851             extends 'Cfn::Value::TypedValue';
852            
853             has AndStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AndStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
854             has ByteMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::ByteMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
855             has GeoMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::GeoMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
856             has IPSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::IPSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
857             has NotStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::NotStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
858             has OrStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::OrStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
859             has RateBasedStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RateBasedStatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
860             has RegexPatternSetReferenceStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RegexPatternSetReferenceStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
861             has SizeConstraintStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SizeConstraintStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
862             has SqliMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::SqliMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
863             has XssMatchStatement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::XssMatchStatement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
864             }
865              
866             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleAction',
867             as 'Cfn::Value';
868              
869             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleAction',
870             from 'HashRef',
871             via {
872             if (my $f = Cfn::TypeLibrary::try_function($_)) {
873             return $f
874             } else {
875             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleActionValue->new( %$_ );
876             }
877             };
878              
879             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleActionValue {
880 1     1   3545 use Moose;
  1         6  
  1         6  
881 1     1   7015 use MooseX::StrictConstructor;
  1         3  
  1         5  
882             extends 'Cfn::Value::TypedValue';
883            
884             has Allow => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::AllowAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
885             has Block => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::BlockAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
886             has Count => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::CountAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
887             }
888             subtype 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
889             as 'Cfn::Value',
890             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
891             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
892              
893             coerce 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
894             from 'HashRef',
895             via {
896             if (my $f = Cfn::TypeLibrary::try_function($_)) {
897             return $f
898             } else {
899             die 'Only accepts functions';
900             }
901             },
902             from 'ArrayRef',
903             via {
904             Cfn::Value::Array->new(Value => [
905             map {
906             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule')->coerce($_)
907             } @$_
908             ]);
909             };
910              
911             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
912             as 'Cfn::Value';
913              
914             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule',
915             from 'HashRef',
916             via {
917             if (my $f = Cfn::TypeLibrary::try_function($_)) {
918             return $f
919             } else {
920             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleValue->new( %$_ );
921             }
922             };
923              
924             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleValue {
925 1     1   3639 use Moose;
  1         4  
  1         6  
926 1     1   6627 use MooseX::StrictConstructor;
  1         3  
  1         5  
927             extends 'Cfn::Value::TypedValue';
928            
929             has Action => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RuleAction', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
930             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
931             has Priority => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
932             has Statement => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::StatementOne', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
933             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
934             }
935              
936             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TagList',
937             as 'Cfn::Value';
938              
939             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TagList',
940             from 'HashRef',
941             via {
942             if (my $f = Cfn::TypeLibrary::try_function($_)) {
943             return $f
944             } else {
945             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TagListValue->new( %$_ );
946             }
947             };
948              
949             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TagListValue {
950 1     1   3420 use Moose;
  1         3  
  1         10  
951 1     1   6582 use MooseX::StrictConstructor;
  1         3  
  1         5  
952             extends 'Cfn::Value::TypedValue';
953            
954             has TagList => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
955             }
956              
957             subtype 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rules',
958             as 'Cfn::Value';
959              
960             coerce 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rules',
961             from 'HashRef',
962             via {
963             if (my $f = Cfn::TypeLibrary::try_function($_)) {
964             return $f
965             } else {
966             return Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RulesValue->new( %$_ );
967             }
968             };
969              
970             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::RulesValue {
971 1     1   3374 use Moose;
  1         2  
  1         5  
972 1     1   6575 use MooseX::StrictConstructor;
  1         5  
  1         6  
973             extends 'Cfn::Value::TypedValue';
974            
975             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
976             }
977              
978             package Cfn::Resource::Properties::AWS::WAFv2::RuleGroup {
979 1     1   3558 use Moose;
  1         3  
  1         7  
980 1     1   6562 use MooseX::StrictConstructor;
  1         3  
  1         6  
981             extends 'Cfn::Resource::Properties';
982            
983             has Capacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
984             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
985             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
986             has Rules => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::Rules', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
987             has Scope => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
988             has Tags => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::TagList', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
989             has VisibilityConfig => (isa => 'Cfn::Resource::Properties::AWS::WAFv2::RuleGroup::VisibilityConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
990             }
991              
992             1;