File Coverage

blib/lib/Cfn/Resource/AWS/CloudFront/Distribution.pm
Criterion Covered Total %
statement 104 104 100.0
branch n/a
condition n/a
subroutine 36 36 100.0
pod 0 2 0.0
total 140 142 98.5


line stmt bran cond sub pod time code
1             # AWS::CloudFront::Distribution generated from spec 11.1.0
2 4     4   2667 use Moose::Util::TypeConstraints;
  4         13  
  4         36  
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   8007 use Moose;
  4         12  
  4         27  
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 1116 [ '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::Cookies',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Cookies',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::CookiesValue->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::CookiesValue {
37 4     4   26450 use Moose;
  4         11  
  4         21  
38 4     4   23825 use MooseX::StrictConstructor;
  4         13  
  4         35  
39             extends 'Cfn::Value::TypedValue';
40            
41             has Forward => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             has WhitelistedNames => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
43             }
44              
45             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfig',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfig',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfigValue->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfigValue {
59 4     4   12914 use Moose;
  4         11  
  4         22  
60 4     4   24150 use MooseX::StrictConstructor;
  4         12  
  4         20  
61             extends 'Cfn::Value::TypedValue';
62            
63             has OriginAccessIdentity => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             }
65             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
66             as 'Cfn::Value',
67             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
68             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
69              
70             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             die 'Only accepts functions';
77             }
78             },
79             from 'ArrayRef',
80             via {
81             Cfn::Value::Array->new(Value => [
82             map {
83             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader')->coerce($_)
84             } @$_
85             ]);
86             };
87              
88             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
89             as 'Cfn::Value';
90              
91             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader',
92             from 'HashRef',
93             via {
94             if (my $f = Cfn::TypeLibrary::try_function($_)) {
95             return $f
96             } else {
97             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeaderValue->new( %$_ );
98             }
99             };
100              
101             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeaderValue {
102 4     4   13045 use Moose;
  4         9  
  4         20  
103 4     4   24059 use MooseX::StrictConstructor;
  4         12  
  4         17  
104             extends 'Cfn::Value::TypedValue';
105            
106             has HeaderName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
107             has HeaderValue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
108             }
109             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
110             as 'Cfn::Value',
111             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
112             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
113              
114             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
115             from 'HashRef',
116             via {
117             if (my $f = Cfn::TypeLibrary::try_function($_)) {
118             return $f
119             } else {
120             die 'Only accepts functions';
121             }
122             },
123             from 'ArrayRef',
124             via {
125             Cfn::Value::Array->new(Value => [
126             map {
127             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation')->coerce($_)
128             } @$_
129             ]);
130             };
131              
132             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
133             as 'Cfn::Value';
134              
135             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation',
136             from 'HashRef',
137             via {
138             if (my $f = Cfn::TypeLibrary::try_function($_)) {
139             return $f
140             } else {
141             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociationValue->new( %$_ );
142             }
143             };
144              
145             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociationValue {
146 4     4   12906 use Moose;
  4         10  
  4         27  
147 4     4   23725 use MooseX::StrictConstructor;
  4         19  
  4         18  
148             extends 'Cfn::Value::TypedValue';
149            
150             has EventType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
151             has LambdaFunctionARN => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
152             }
153              
154             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestriction',
155             as 'Cfn::Value';
156              
157             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestriction',
158             from 'HashRef',
159             via {
160             if (my $f = Cfn::TypeLibrary::try_function($_)) {
161             return $f
162             } else {
163             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestrictionValue->new( %$_ );
164             }
165             };
166              
167             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestrictionValue {
168 4     4   12161 use Moose;
  4         9  
  4         22  
169 4     4   24039 use MooseX::StrictConstructor;
  4         12  
  4         20  
170             extends 'Cfn::Value::TypedValue';
171            
172             has Locations => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
173             has RestrictionType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
174             }
175              
176             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues',
177             as 'Cfn::Value';
178              
179             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues',
180             from 'HashRef',
181             via {
182             if (my $f = Cfn::TypeLibrary::try_function($_)) {
183             return $f
184             } else {
185             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValuesValue->new( %$_ );
186             }
187             };
188              
189             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValuesValue {
190 4     4   12258 use Moose;
  4         10  
  4         21  
191 4     4   24220 use MooseX::StrictConstructor;
  4         8  
  4         22  
192             extends 'Cfn::Value::TypedValue';
193            
194             has Cookies => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Cookies', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
195             has Headers => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
196             has QueryString => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
197             has QueryStringCacheKeys => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
198             }
199              
200             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfig',
201             as 'Cfn::Value';
202              
203             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfig',
204             from 'HashRef',
205             via {
206             if (my $f = Cfn::TypeLibrary::try_function($_)) {
207             return $f
208             } else {
209             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfigValue->new( %$_ );
210             }
211             };
212              
213             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfigValue {
214 4     4   12534 use Moose;
  4         11  
  4         21  
215 4     4   23764 use MooseX::StrictConstructor;
  4         8  
  4         20  
216             extends 'Cfn::Value::TypedValue';
217            
218             has HTTPPort => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
219             has HTTPSPort => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
220             has OriginKeepaliveTimeout => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
221             has OriginProtocolPolicy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
222             has OriginReadTimeout => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
223             has OriginSSLProtocols => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
224             }
225              
226             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificate',
227             as 'Cfn::Value';
228              
229             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificate',
230             from 'HashRef',
231             via {
232             if (my $f = Cfn::TypeLibrary::try_function($_)) {
233             return $f
234             } else {
235             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificateValue->new( %$_ );
236             }
237             };
238              
239             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificateValue {
240 4     4   12338 use Moose;
  4         11  
  4         24  
241 4     4   24033 use MooseX::StrictConstructor;
  4         9  
  4         21  
242             extends 'Cfn::Value::TypedValue';
243            
244             has AcmCertificateArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
245             has CloudFrontDefaultCertificate => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
246             has IamCertificateId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
247             has MinimumProtocolVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             has SslSupportMethod => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             }
250              
251             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Restrictions',
252             as 'Cfn::Value';
253              
254             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Restrictions',
255             from 'HashRef',
256             via {
257             if (my $f = Cfn::TypeLibrary::try_function($_)) {
258             return $f
259             } else {
260             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::RestrictionsValue->new( %$_ );
261             }
262             };
263              
264             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::RestrictionsValue {
265 4     4   12440 use Moose;
  4         13  
  4         30  
266 4     4   23892 use MooseX::StrictConstructor;
  4         11  
  4         22  
267             extends 'Cfn::Value::TypedValue';
268            
269             has GeoRestriction => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::GeoRestriction', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
270             }
271             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
272             as 'Cfn::Value',
273             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
274             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
275              
276             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
277             from 'HashRef',
278             via {
279             if (my $f = Cfn::TypeLibrary::try_function($_)) {
280             return $f
281             } else {
282             die 'Only accepts functions';
283             }
284             },
285             from 'ArrayRef',
286             via {
287             Cfn::Value::Array->new(Value => [
288             map {
289             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::Origin')->coerce($_)
290             } @$_
291             ]);
292             };
293              
294             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
295             as 'Cfn::Value';
296              
297             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Origin',
298             from 'HashRef',
299             via {
300             if (my $f = Cfn::TypeLibrary::try_function($_)) {
301             return $f
302             } else {
303             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginValue->new( %$_ );
304             }
305             };
306              
307             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::OriginValue {
308 4     4   12907 use Moose;
  4         10  
  4         22  
309 4     4   23929 use MooseX::StrictConstructor;
  4         14  
  4         26  
310             extends 'Cfn::Value::TypedValue';
311            
312             has CustomOriginConfig => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomOriginConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
313             has DomainName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
314             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
315             has OriginCustomHeaders => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::OriginCustomHeader', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
316             has OriginPath => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
317             has S3OriginConfig => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::S3OriginConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
318             }
319              
320             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Logging',
321             as 'Cfn::Value';
322              
323             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Logging',
324             from 'HashRef',
325             via {
326             if (my $f = Cfn::TypeLibrary::try_function($_)) {
327             return $f
328             } else {
329             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::LoggingValue->new( %$_ );
330             }
331             };
332              
333             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::LoggingValue {
334 4     4   12585 use Moose;
  4         10  
  4         35  
335 4     4   24079 use MooseX::StrictConstructor;
  4         11  
  4         20  
336             extends 'Cfn::Value::TypedValue';
337            
338             has Bucket => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
339             has IncludeCookies => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
340             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
341             }
342              
343             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehavior',
344             as 'Cfn::Value';
345              
346             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehavior',
347             from 'HashRef',
348             via {
349             if (my $f = Cfn::TypeLibrary::try_function($_)) {
350             return $f
351             } else {
352             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehaviorValue->new( %$_ );
353             }
354             };
355              
356             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehaviorValue {
357 4     4   12318 use Moose;
  4         14  
  4         23  
358 4     4   23858 use MooseX::StrictConstructor;
  4         10  
  4         19  
359             extends 'Cfn::Value::TypedValue';
360            
361             has AllowedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
362             has CachedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
363             has Compress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
364             has DefaultTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
365             has FieldLevelEncryptionId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
366             has ForwardedValues => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
367             has LambdaFunctionAssociations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
368             has MaxTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
369             has MinTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
370             has SmoothStreaming => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
371             has TargetOriginId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
372             has TrustedSigners => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
373             has ViewerProtocolPolicy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
374             }
375             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
376             as 'Cfn::Value',
377             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
378             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
379              
380             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
381             from 'HashRef',
382             via {
383             if (my $f = Cfn::TypeLibrary::try_function($_)) {
384             return $f
385             } else {
386             die 'Only accepts functions';
387             }
388             },
389             from 'ArrayRef',
390             via {
391             Cfn::Value::Array->new(Value => [
392             map {
393             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse')->coerce($_)
394             } @$_
395             ]);
396             };
397              
398             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
399             as 'Cfn::Value';
400              
401             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse',
402             from 'HashRef',
403             via {
404             if (my $f = Cfn::TypeLibrary::try_function($_)) {
405             return $f
406             } else {
407             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponseValue->new( %$_ );
408             }
409             };
410              
411             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponseValue {
412 4     4   13663 use Moose;
  4         18  
  4         27  
413 4     4   23748 use MooseX::StrictConstructor;
  4         9  
  4         21  
414             extends 'Cfn::Value::TypedValue';
415            
416             has ErrorCachingMinTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
417             has ErrorCode => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
418             has ResponseCode => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
419             has ResponsePagePath => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
420             }
421             subtype 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
422             as 'Cfn::Value',
423             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
424             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
425              
426             coerce 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
427             from 'HashRef',
428             via {
429             if (my $f = Cfn::TypeLibrary::try_function($_)) {
430             return $f
431             } else {
432             die 'Only accepts functions';
433             }
434             },
435             from 'ArrayRef',
436             via {
437             Cfn::Value::Array->new(Value => [
438             map {
439             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior')->coerce($_)
440             } @$_
441             ]);
442             };
443              
444             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
445             as 'Cfn::Value';
446              
447             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior',
448             from 'HashRef',
449             via {
450             if (my $f = Cfn::TypeLibrary::try_function($_)) {
451             return $f
452             } else {
453             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehaviorValue->new( %$_ );
454             }
455             };
456              
457             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehaviorValue {
458 4     4   13104 use Moose;
  4         12  
  4         22  
459 4     4   24049 use MooseX::StrictConstructor;
  4         10  
  4         22  
460             extends 'Cfn::Value::TypedValue';
461            
462             has AllowedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
463             has CachedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
464             has Compress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
465             has DefaultTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
466             has FieldLevelEncryptionId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
467             has ForwardedValues => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ForwardedValues', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
468             has LambdaFunctionAssociations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::LambdaFunctionAssociation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
469             has MaxTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
470             has MinTTL => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
471             has PathPattern => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
472             has SmoothStreaming => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
473             has TargetOriginId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
474             has TrustedSigners => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
475             has ViewerProtocolPolicy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
476             }
477              
478             subtype 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfig',
479             as 'Cfn::Value';
480              
481             coerce 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfig',
482             from 'HashRef',
483             via {
484             if (my $f = Cfn::TypeLibrary::try_function($_)) {
485             return $f
486             } else {
487             return Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfigValue->new( %$_ );
488             }
489             };
490              
491             package Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfigValue {
492 4     4   12960 use Moose;
  4         10  
  4         19  
493 4     4   26487 use MooseX::StrictConstructor;
  4         18  
  4         20  
494             extends 'Cfn::Value::TypedValue';
495            
496             has Aliases => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
497             has CacheBehaviors => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CacheBehavior', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
498             has Comment => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
499             has CustomErrorResponses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::CustomErrorResponse', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
500             has DefaultCacheBehavior => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DefaultCacheBehavior', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
501             has DefaultRootObject => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
502             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
503             has HttpVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
504             has IPV6Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
505             has Logging => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Logging', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
506             has Origins => (isa => 'ArrayOfCfn::Resource::Properties::AWS::CloudFront::Distribution::Origin', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
507             has PriceClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
508             has Restrictions => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::Restrictions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
509             has ViewerCertificate => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::ViewerCertificate', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
510             has WebACLId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
511             }
512              
513             package Cfn::Resource::Properties::AWS::CloudFront::Distribution {
514 4     4   12654 use Moose;
  4         10  
  4         23  
515 4     4   23922 use MooseX::StrictConstructor;
  4         11  
  4         17  
516             extends 'Cfn::Resource::Properties';
517            
518             has DistributionConfig => (isa => 'Cfn::Resource::Properties::AWS::CloudFront::Distribution::DistributionConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
519             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
520             }
521              
522             1;