File Coverage

blib/lib/Cfn/Resource/AWS/CloudFront/Distribution.pm
Criterion Covered Total %
statement 146 146 100.0
branch n/a
condition n/a
subroutine 50 50 100.0
pod 0 2 0.0
total 196 198 98.9


line stmt bran cond sub pod time code
1             # AWS::CloudFront::Distribution generated from spec 21.0.0
2 4     4   3408 use Moose::Util::TypeConstraints;
  4         12  
  4         48  
3              
4             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::CloudFront::Distribution->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::CloudFront::Distribution {
9 4     4   9252 use Moose;
  4         17  
  4         36  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 5 [ 'DomainName' ]
15             }
16             sub supported_regions {
17 1     1 0 1181 [ '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-west-1','us-west-2' ]
18             }
19             }
20              
21              
22              
23             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::StatusCodes',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::StatusCodes',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::StatusCodes->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::StatusCodes {
37 4     4   30460 use Moose;
  4         14  
  4         22  
38 4     4   26907 use MooseX::StrictConstructor;
  4         14  
  4         44  
39             extends 'Cfn::Value::TypedValue';
40            
41             has Items => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             has Quantity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
43             }
44             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMember',
45             as 'Cfn::Value',
46             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
47             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
48              
49             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMember',
50             from 'HashRef',
51             via {
52             if (my $f = Cfn::TypeLibrary::try_function($_)) {
53             return $f
54             } else {
55             die 'Only accepts functions';
56             }
57             },
58             from 'ArrayRef',
59             via {
60             Cfn::Value::Array->new(Value => [
61             map {
62             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMember')->coerce($_)
63             } @$_
64             ]);
65             };
66              
67             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMember',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMember',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroupMember->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroupMember {
81 4     4   15908 use Moose;
  4         11  
  4         22  
82 4     4   26697 use MooseX::StrictConstructor;
  4         14  
  4         20  
83             extends 'Cfn::Value::TypedValue';
84            
85             has OriginId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             }
87              
88             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMembers',
89             as 'Cfn::Value';
90              
91             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMembers',
92             from 'HashRef',
93             via {
94             if (my $f = Cfn::TypeLibrary::try_function($_)) {
95             return $f
96             } else {
97             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroupMembers->new( %$_ );
98             }
99             };
100              
101             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroupMembers {
102 4     4   13432 use Moose;
  4         12  
  4         37  
103 4     4   26517 use MooseX::StrictConstructor;
  4         14  
  4         23  
104             extends 'Cfn::Value::TypedValue';
105            
106             has Items => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMember', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
107             has Quantity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
108             }
109              
110             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupFailoverCriteria',
111             as 'Cfn::Value';
112              
113             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupFailoverCriteria',
114             from 'HashRef',
115             via {
116             if (my $f = Cfn::TypeLibrary::try_function($_)) {
117             return $f
118             } else {
119             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroupFailoverCriteria->new( %$_ );
120             }
121             };
122              
123             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroupFailoverCriteria {
124 4     4   13918 use Moose;
  4         13  
  4         23  
125 4     4   26401 use MooseX::StrictConstructor;
  4         12  
  4         20  
126             extends 'Cfn::Value::TypedValue';
127            
128             has StatusCodes => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::StatusCodes', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
129             }
130              
131             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Cookies',
132             as 'Cfn::Value';
133              
134             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Cookies',
135             from 'HashRef',
136             via {
137             if (my $f = Cfn::TypeLibrary::try_function($_)) {
138             return $f
139             } else {
140             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Cookies->new( %$_ );
141             }
142             };
143              
144             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Cookies {
145 4     4   13486 use Moose;
  4         14  
  4         20  
146 4     4   27504 use MooseX::StrictConstructor;
  4         10  
  4         32  
147             extends 'Cfn::Value::TypedValue';
148            
149             has Forward => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
150             has WhitelistedNames => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
151             }
152              
153             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfig',
154             as 'Cfn::Value';
155              
156             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfig',
157             from 'HashRef',
158             via {
159             if (my $f = Cfn::TypeLibrary::try_function($_)) {
160             return $f
161             } else {
162             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::S3OriginConfig->new( %$_ );
163             }
164             };
165              
166             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::S3OriginConfig {
167 4     4   13695 use Moose;
  4         11  
  4         20  
168 4     4   27222 use MooseX::StrictConstructor;
  4         21  
  4         26  
169             extends 'Cfn::Value::TypedValue';
170            
171             has OriginAccessIdentity => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
172             }
173              
174             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginShield',
175             as 'Cfn::Value';
176              
177             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginShield',
178             from 'HashRef',
179             via {
180             if (my $f = Cfn::TypeLibrary::try_function($_)) {
181             return $f
182             } else {
183             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginShield->new( %$_ );
184             }
185             };
186              
187             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginShield {
188 4     4   14449 use Moose;
  4         21  
  4         27  
189 4     4   27589 use MooseX::StrictConstructor;
  4         9  
  4         26  
190             extends 'Cfn::Value::TypedValue';
191            
192             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
193             has OriginShieldRegion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
194             }
195             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroup',
196             as 'Cfn::Value',
197             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
198             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
199              
200             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroup',
201             from 'HashRef',
202             via {
203             if (my $f = Cfn::TypeLibrary::try_function($_)) {
204             return $f
205             } else {
206             die 'Only accepts functions';
207             }
208             },
209             from 'ArrayRef',
210             via {
211             Cfn::Value::Array->new(Value => [
212             map {
213             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroup')->coerce($_)
214             } @$_
215             ]);
216             };
217              
218             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroup',
219             as 'Cfn::Value';
220              
221             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroup',
222             from 'HashRef',
223             via {
224             if (my $f = Cfn::TypeLibrary::try_function($_)) {
225             return $f
226             } else {
227             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroup->new( %$_ );
228             }
229             };
230              
231             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroup {
232 4     4   14834 use Moose;
  4         11  
  4         23  
233 4     4   27399 use MooseX::StrictConstructor;
  4         10  
  4         24  
234             extends 'Cfn::Value::TypedValue';
235            
236             has FailoverCriteria => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupFailoverCriteria', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
237             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
238             has Members => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroupMembers', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
239             }
240             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
241             as 'Cfn::Value',
242             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
243             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
244              
245             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
246             from 'HashRef',
247             via {
248             if (my $f = Cfn::TypeLibrary::try_function($_)) {
249             return $f
250             } else {
251             die 'Only accepts functions';
252             }
253             },
254             from 'ArrayRef',
255             via {
256             Cfn::Value::Array->new(Value => [
257             map {
258             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader')->coerce($_)
259             } @$_
260             ]);
261             };
262              
263             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
264             as 'Cfn::Value';
265              
266             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
267             from 'HashRef',
268             via {
269             if (my $f = Cfn::TypeLibrary::try_function($_)) {
270             return $f
271             } else {
272             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginCustomHeader->new( %$_ );
273             }
274             };
275              
276             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginCustomHeader {
277 4     4   14606 use Moose;
  4         13  
  4         32  
278 4     4   26794 use MooseX::StrictConstructor;
  4         12  
  4         25  
279             extends 'Cfn::Value::TypedValue';
280            
281             has HeaderName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
282             has HeaderValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
283             }
284             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
285             as 'Cfn::Value',
286             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
287             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
288              
289             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
290             from 'HashRef',
291             via {
292             if (my $f = Cfn::TypeLibrary::try_function($_)) {
293             return $f
294             } else {
295             die 'Only accepts functions';
296             }
297             },
298             from 'ArrayRef',
299             via {
300             Cfn::Value::Array->new(Value => [
301             map {
302             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation')->coerce($_)
303             } @$_
304             ]);
305             };
306              
307             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
308             as 'Cfn::Value';
309              
310             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
311             from 'HashRef',
312             via {
313             if (my $f = Cfn::TypeLibrary::try_function($_)) {
314             return $f
315             } else {
316             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::LambdaFunctionAssociation->new( %$_ );
317             }
318             };
319              
320             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::LambdaFunctionAssociation {
321 4     4   14582 use Moose;
  4         14  
  4         30  
322 4     4   26732 use MooseX::StrictConstructor;
  4         13  
  4         21  
323             extends 'Cfn::Value::TypedValue';
324            
325             has EventType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
326             has IncludeBody => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
327             has LambdaFunctionARN => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
328             }
329              
330             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestriction',
331             as 'Cfn::Value';
332              
333             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestriction',
334             from 'HashRef',
335             via {
336             if (my $f = Cfn::TypeLibrary::try_function($_)) {
337             return $f
338             } else {
339             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::GeoRestriction->new( %$_ );
340             }
341             };
342              
343             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::GeoRestriction {
344 4     4   14130 use Moose;
  4         13  
  4         21  
345 4     4   26814 use MooseX::StrictConstructor;
  4         10  
  4         23  
346             extends 'Cfn::Value::TypedValue';
347            
348             has Locations => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
349             has RestrictionType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
350             }
351              
352             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues',
353             as 'Cfn::Value';
354              
355             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues',
356             from 'HashRef',
357             via {
358             if (my $f = Cfn::TypeLibrary::try_function($_)) {
359             return $f
360             } else {
361             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::ForwardedValues->new( %$_ );
362             }
363             };
364              
365             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::ForwardedValues {
366 4     4   13961 use Moose;
  4         12  
  4         23  
367 4     4   27050 use MooseX::StrictConstructor;
  4         13  
  4         24  
368             extends 'Cfn::Value::TypedValue';
369            
370             has Cookies => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Cookies', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
371             has Headers => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
372             has QueryString => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
373             has QueryStringCacheKeys => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
374             }
375              
376             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfig',
377             as 'Cfn::Value';
378              
379             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfig',
380             from 'HashRef',
381             via {
382             if (my $f = Cfn::TypeLibrary::try_function($_)) {
383             return $f
384             } else {
385             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::CustomOriginConfig->new( %$_ );
386             }
387             };
388              
389             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::CustomOriginConfig {
390 4     4   14588 use Moose;
  4         12  
  4         25  
391 4     4   27170 use MooseX::StrictConstructor;
  4         15  
  4         23  
392             extends 'Cfn::Value::TypedValue';
393            
394             has HTTPPort => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
395             has HTTPSPort => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
396             has OriginKeepaliveTimeout => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
397             has OriginProtocolPolicy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
398             has OriginReadTimeout => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
399             has OriginSSLProtocols => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
400             }
401              
402             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificate',
403             as 'Cfn::Value';
404              
405             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificate',
406             from 'HashRef',
407             via {
408             if (my $f = Cfn::TypeLibrary::try_function($_)) {
409             return $f
410             } else {
411             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::ViewerCertificate->new( %$_ );
412             }
413             };
414              
415             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::ViewerCertificate {
416 4     4   14422 use Moose;
  4         15  
  4         21  
417 4     4   26615 use MooseX::StrictConstructor;
  4         14  
  4         24  
418             extends 'Cfn::Value::TypedValue';
419            
420             has AcmCertificateArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
421             has CloudFrontDefaultCertificate => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
422             has IamCertificateId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
423             has MinimumProtocolVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
424             has SslSupportMethod => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
425             }
426              
427             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Restrictions',
428             as 'Cfn::Value';
429              
430             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Restrictions',
431             from 'HashRef',
432             via {
433             if (my $f = Cfn::TypeLibrary::try_function($_)) {
434             return $f
435             } else {
436             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Restrictions->new( %$_ );
437             }
438             };
439              
440             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Restrictions {
441 4     4   13997 use Moose;
  4         20  
  4         33  
442 4     4   26918 use MooseX::StrictConstructor;
  4         12  
  4         24  
443             extends 'Cfn::Value::TypedValue';
444            
445             has GeoRestriction => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestriction', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
446             }
447              
448             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroups',
449             as 'Cfn::Value';
450              
451             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroups',
452             from 'HashRef',
453             via {
454             if (my $f = Cfn::TypeLibrary::try_function($_)) {
455             return $f
456             } else {
457             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroups->new( %$_ );
458             }
459             };
460              
461             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::OriginGroups {
462 4     4   14223 use Moose;
  4         11  
  4         27  
463 4     4   27827 use MooseX::StrictConstructor;
  4         13  
  4         24  
464             extends 'Cfn::Value::TypedValue';
465            
466             has Items => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroup', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
467             has Quantity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
468             }
469             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
470             as 'Cfn::Value',
471             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
472             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
473              
474             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
475             from 'HashRef',
476             via {
477             if (my $f = Cfn::TypeLibrary::try_function($_)) {
478             return $f
479             } else {
480             die 'Only accepts functions';
481             }
482             },
483             from 'ArrayRef',
484             via {
485             Cfn::Value::Array->new(Value => [
486             map {
487             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::Origin')->coerce($_)
488             } @$_
489             ]);
490             };
491              
492             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
493             as 'Cfn::Value';
494              
495             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
496             from 'HashRef',
497             via {
498             if (my $f = Cfn::TypeLibrary::try_function($_)) {
499             return $f
500             } else {
501             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Origin->new( %$_ );
502             }
503             };
504              
505             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Origin {
506 4     4   15102 use Moose;
  4         13  
  4         22  
507 4     4   27941 use MooseX::StrictConstructor;
  4         11  
  4         24  
508             extends 'Cfn::Value::TypedValue';
509            
510             has ConnectionAttempts => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
511             has ConnectionTimeout => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
512             has CustomOriginConfig => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
513             has DomainName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
514             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
515             has OriginCustomHeaders => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
516             has OriginPath => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
517             has OriginShield => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginShield', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
518             has S3OriginConfig => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
519             }
520              
521             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Logging',
522             as 'Cfn::Value';
523              
524             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Logging',
525             from 'HashRef',
526             via {
527             if (my $f = Cfn::TypeLibrary::try_function($_)) {
528             return $f
529             } else {
530             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Logging->new( %$_ );
531             }
532             };
533              
534             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::Logging {
535 4     4   14111 use Moose;
  4         12  
  4         30  
536 4     4   27093 use MooseX::StrictConstructor;
  4         15  
  4         24  
537             extends 'Cfn::Value::TypedValue';
538            
539             has Bucket => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
540             has IncludeCookies => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
541             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
542             }
543              
544             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehavior',
545             as 'Cfn::Value';
546              
547             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehavior',
548             from 'HashRef',
549             via {
550             if (my $f = Cfn::TypeLibrary::try_function($_)) {
551             return $f
552             } else {
553             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::DefaultCacheBehavior->new( %$_ );
554             }
555             };
556              
557             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::DefaultCacheBehavior {
558 4     4   13963 use Moose;
  4         21  
  4         23  
559 4     4   26763 use MooseX::StrictConstructor;
  4         13  
  4         22  
560             extends 'Cfn::Value::TypedValue';
561            
562             has AllowedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
563             has CachedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
564             has CachePolicyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
565             has Compress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
566             has DefaultTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
567             has FieldLevelEncryptionId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
568             has ForwardedValues => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
569             has LambdaFunctionAssociations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
570             has MaxTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
571             has MinTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
572             has OriginRequestPolicyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
573             has RealtimeLogConfigArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
574             has SmoothStreaming => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
575             has TargetOriginId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
576             has TrustedKeyGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
577             has TrustedSigners => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
578             has ViewerProtocolPolicy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
579             }
580             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
581             as 'Cfn::Value',
582             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
583             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
584              
585             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
586             from 'HashRef',
587             via {
588             if (my $f = Cfn::TypeLibrary::try_function($_)) {
589             return $f
590             } else {
591             die 'Only accepts functions';
592             }
593             },
594             from 'ArrayRef',
595             via {
596             Cfn::Value::Array->new(Value => [
597             map {
598             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse')->coerce($_)
599             } @$_
600             ]);
601             };
602              
603             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
604             as 'Cfn::Value';
605              
606             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
607             from 'HashRef',
608             via {
609             if (my $f = Cfn::TypeLibrary::try_function($_)) {
610             return $f
611             } else {
612             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::CustomErrorResponse->new( %$_ );
613             }
614             };
615              
616             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::CustomErrorResponse {
617 4     4   15659 use Moose;
  4         11  
  4         25  
618 4     4   26910 use MooseX::StrictConstructor;
  4         12  
  4         27  
619             extends 'Cfn::Value::TypedValue';
620            
621             has ErrorCachingMinTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
622             has ErrorCode => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
623             has ResponseCode => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
624             has ResponsePagePath => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
625             }
626             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
627             as 'Cfn::Value',
628             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
629             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
630              
631             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
632             from 'HashRef',
633             via {
634             if (my $f = Cfn::TypeLibrary::try_function($_)) {
635             return $f
636             } else {
637             die 'Only accepts functions';
638             }
639             },
640             from 'ArrayRef',
641             via {
642             Cfn::Value::Array->new(Value => [
643             map {
644             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior')->coerce($_)
645             } @$_
646             ]);
647             };
648              
649             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
650             as 'Cfn::Value';
651              
652             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
653             from 'HashRef',
654             via {
655             if (my $f = Cfn::TypeLibrary::try_function($_)) {
656             return $f
657             } else {
658             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::CacheBehavior->new( %$_ );
659             }
660             };
661              
662             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::CacheBehavior {
663 4     4   14748 use Moose;
  4         23  
  4         24  
664 4     4   27013 use MooseX::StrictConstructor;
  4         27  
  4         25  
665             extends 'Cfn::Value::TypedValue';
666            
667             has AllowedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
668             has CachedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
669             has CachePolicyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
670             has Compress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
671             has DefaultTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
672             has FieldLevelEncryptionId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
673             has ForwardedValues => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
674             has LambdaFunctionAssociations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
675             has MaxTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
676             has MinTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
677             has OriginRequestPolicyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
678             has PathPattern => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
679             has RealtimeLogConfigArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
680             has SmoothStreaming => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
681             has TargetOriginId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
682             has TrustedKeyGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
683             has TrustedSigners => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
684             has ViewerProtocolPolicy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
685             }
686              
687             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfig',
688             as 'Cfn::Value';
689              
690             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfig',
691             from 'HashRef',
692             via {
693             if (my $f = Cfn::TypeLibrary::try_function($_)) {
694             return $f
695             } else {
696             return Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::DistributionConfig->new( %$_ );
697             }
698             };
699              
700             package Cfn::Resource::Properties::Object::AWS::CloudFront::Distribution::DistributionConfig {
701 4     4   14954 use Moose;
  4         14  
  4         25  
702 4     4   27188 use MooseX::StrictConstructor;
  4         13  
  4         22  
703             extends 'Cfn::Value::TypedValue';
704            
705             has Aliases => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
706             has CacheBehaviors => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
707             has Comment => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
708             has CustomErrorResponses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
709             has DefaultCacheBehavior => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehavior', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
710             has DefaultRootObject => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
711             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
712             has HttpVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
713             has IPV6Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
714             has Logging => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Logging', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
715             has OriginGroups => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginGroups', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
716             has Origins => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::Origin', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
717             has PriceClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
718             has Restrictions => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Restrictions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
719             has ViewerCertificate => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificate', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
720             has WebACLId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
721             }
722              
723             package Cfn::Resource::Properties::AWS::CloudFront::Distribution {
724 4     4   14540 use Moose;
  4         23  
  4         25  
725 4     4   26525 use MooseX::StrictConstructor;
  4         11  
  4         25  
726             extends 'Cfn::Resource::Properties';
727            
728             has DistributionConfig => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
729             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
730             }
731              
732             1;
733             ### main pod documentation begin ###
734              
735             =encoding UTF-8
736              
737             =head1 NAME
738              
739             Cfn::Resource::AWS::CloudFront::Distribution - Cfn resource for AWS::CloudFront::Distribution
740              
741             =head1 DESCRIPTION
742              
743             This module implements a Perl module that represents the CloudFormation object AWS::CloudFront::Distribution.
744              
745             See L<Cfn> for more information on how to use it.
746              
747             =head1 AUTHOR
748              
749             Jose Luis Martinez
750             CAPSiDE
751             jlmartinez@capside.com
752              
753             =head1 COPYRIGHT and LICENSE
754              
755             Copyright (c) 2013 by CAPSiDE
756             This code is distributed under the Apache 2 License. The full text of the
757             license can be found in the LICENSE file included with this module.
758              
759             =cut