File Coverage

blib/lib/Cfn/Resource/AWS/S3/Bucket.pm
Criterion Covered Total %
statement 272 272 100.0
branch n/a
condition n/a
subroutine 92 92 100.0
pod 0 2 0.0
total 364 366 99.4


line stmt bran cond sub pod time code
1             # AWS::S3::Bucket generated from spec 5.3.0
2 5     5   4334 use Moose::Util::TypeConstraints;
  5         17  
  5         55  
3              
4             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::S3::Bucket->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::S3::Bucket {
9 5     5   11167 use Moose;
  5         17  
  5         38  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 5 [ 'Arn','DomainName','DualStackDomainName','RegionalDomainName','WebsiteURL' ]
15             }
16             sub supported_regions {
17 1     1 0 1157 [ 'ap-east-1','ap-northeast-1','ap-northeast-2','ap-northeast-3','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','cn-north-1','cn-northwest-1','eu-central-1','eu-north-1','eu-west-1','eu-west-2','eu-west-3','me-south-1','sa-east-1','us-east-1','us-east-2','us-gov-east-1','us-gov-west-1','us-west-1','us-west-2' ]
18             }
19             }
20              
21              
22             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::FilterRule',
23             as 'Cfn::Value',
24             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
25             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
26              
27             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::FilterRule',
28             from 'HashRef',
29             via {
30             if (my $f = Cfn::TypeLibrary::try_function($_)) {
31             return $f
32             } else {
33             die 'Only accepts functions';
34             }
35             },
36             from 'ArrayRef',
37             via {
38             Cfn::Value::Array->new(Value => [
39             map {
40             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::FilterRule')->coerce($_)
41             } @$_
42             ]);
43             };
44              
45             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::FilterRule',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::FilterRule',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::AWS::S3::Bucket::FilterRuleValue->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::AWS::S3::Bucket::FilterRuleValue {
59 5     5   38771 use Moose;
  5         15  
  5         41  
60 5     5   34386 use MooseX::StrictConstructor;
  5         28378  
  5         45  
61             extends 'Cfn::Value::TypedValue';
62            
63             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
65             }
66              
67             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::SseKmsEncryptedObjects',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::SseKmsEncryptedObjects',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::AWS::S3::Bucket::SseKmsEncryptedObjectsValue->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::AWS::S3::Bucket::SseKmsEncryptedObjectsValue {
81 5     5   25186 use Moose;
  5         13  
  5         29  
82 5     5   33475 use MooseX::StrictConstructor;
  5         13  
  5         25  
83             extends 'Cfn::Value::TypedValue';
84            
85             has Status => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             }
87              
88             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::S3KeyFilter',
89             as 'Cfn::Value';
90              
91             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::S3KeyFilter',
92             from 'HashRef',
93             via {
94             if (my $f = Cfn::TypeLibrary::try_function($_)) {
95             return $f
96             } else {
97             return Cfn::Resource::Properties::AWS::S3::Bucket::S3KeyFilterValue->new( %$_ );
98             }
99             };
100              
101             package Cfn::Resource::Properties::AWS::S3::Bucket::S3KeyFilterValue {
102 5     5   16644 use Moose;
  5         15  
  5         27  
103 5     5   34777 use MooseX::StrictConstructor;
  5         15  
  5         24  
104             extends 'Cfn::Value::TypedValue';
105            
106             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::FilterRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
107             }
108              
109             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::EncryptionConfiguration',
110             as 'Cfn::Value';
111              
112             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::EncryptionConfiguration',
113             from 'HashRef',
114             via {
115             if (my $f = Cfn::TypeLibrary::try_function($_)) {
116             return $f
117             } else {
118             return Cfn::Resource::Properties::AWS::S3::Bucket::EncryptionConfigurationValue->new( %$_ );
119             }
120             };
121              
122             package Cfn::Resource::Properties::AWS::S3::Bucket::EncryptionConfigurationValue {
123 5     5   16870 use Moose;
  5         13  
  5         29  
124 5     5   33095 use MooseX::StrictConstructor;
  5         12  
  5         28  
125             extends 'Cfn::Value::TypedValue';
126            
127             has ReplicaKmsKeyID => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
128             }
129              
130             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::Destination',
131             as 'Cfn::Value';
132              
133             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::Destination',
134             from 'HashRef',
135             via {
136             if (my $f = Cfn::TypeLibrary::try_function($_)) {
137             return $f
138             } else {
139             return Cfn::Resource::Properties::AWS::S3::Bucket::DestinationValue->new( %$_ );
140             }
141             };
142              
143             package Cfn::Resource::Properties::AWS::S3::Bucket::DestinationValue {
144 5     5   16781 use Moose;
  5         15  
  5         28  
145 5     5   33030 use MooseX::StrictConstructor;
  5         13  
  5         27  
146             extends 'Cfn::Value::TypedValue';
147            
148             has BucketAccountId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
149             has BucketArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
150             has Format => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
151             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
152             }
153              
154             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::AccessControlTranslation',
155             as 'Cfn::Value';
156              
157             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::AccessControlTranslation',
158             from 'HashRef',
159             via {
160             if (my $f = Cfn::TypeLibrary::try_function($_)) {
161             return $f
162             } else {
163             return Cfn::Resource::Properties::AWS::S3::Bucket::AccessControlTranslationValue->new( %$_ );
164             }
165             };
166              
167             package Cfn::Resource::Properties::AWS::S3::Bucket::AccessControlTranslationValue {
168 5     5   17167 use Moose;
  5         14  
  5         37  
169 5     5   33453 use MooseX::StrictConstructor;
  5         20  
  5         27  
170             extends 'Cfn::Value::TypedValue';
171            
172             has Owner => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
173             }
174             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::Transition',
175             as 'Cfn::Value',
176             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
177             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
178              
179             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::Transition',
180             from 'HashRef',
181             via {
182             if (my $f = Cfn::TypeLibrary::try_function($_)) {
183             return $f
184             } else {
185             die 'Only accepts functions';
186             }
187             },
188             from 'ArrayRef',
189             via {
190             Cfn::Value::Array->new(Value => [
191             map {
192             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::Transition')->coerce($_)
193             } @$_
194             ]);
195             };
196              
197             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::Transition',
198             as 'Cfn::Value';
199              
200             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::Transition',
201             from 'HashRef',
202             via {
203             if (my $f = Cfn::TypeLibrary::try_function($_)) {
204             return $f
205             } else {
206             return Cfn::Resource::Properties::AWS::S3::Bucket::TransitionValue->new( %$_ );
207             }
208             };
209              
210             package Cfn::Resource::Properties::AWS::S3::Bucket::TransitionValue {
211 5     5   17903 use Moose;
  5         15  
  5         29  
212 5     5   33601 use MooseX::StrictConstructor;
  5         11  
  5         29  
213             extends 'Cfn::Value::TypedValue';
214            
215             has StorageClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
216             has TransitionDate => (isa => 'Cfn::Value::Timestamp', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
217             has TransitionInDays => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
218             }
219             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TagFilter',
220             as 'Cfn::Value',
221             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
222             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
223              
224             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TagFilter',
225             from 'HashRef',
226             via {
227             if (my $f = Cfn::TypeLibrary::try_function($_)) {
228             return $f
229             } else {
230             die 'Only accepts functions';
231             }
232             },
233             from 'ArrayRef',
234             via {
235             Cfn::Value::Array->new(Value => [
236             map {
237             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::TagFilter')->coerce($_)
238             } @$_
239             ]);
240             };
241              
242             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::TagFilter',
243             as 'Cfn::Value';
244              
245             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::TagFilter',
246             from 'HashRef',
247             via {
248             if (my $f = Cfn::TypeLibrary::try_function($_)) {
249             return $f
250             } else {
251             return Cfn::Resource::Properties::AWS::S3::Bucket::TagFilterValue->new( %$_ );
252             }
253             };
254              
255             package Cfn::Resource::Properties::AWS::S3::Bucket::TagFilterValue {
256 5     5   18207 use Moose;
  5         12  
  5         27  
257 5     5   33492 use MooseX::StrictConstructor;
  5         13  
  5         33  
258             extends 'Cfn::Value::TypedValue';
259            
260             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
261             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
262             }
263              
264             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::SourceSelectionCriteria',
265             as 'Cfn::Value';
266              
267             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::SourceSelectionCriteria',
268             from 'HashRef',
269             via {
270             if (my $f = Cfn::TypeLibrary::try_function($_)) {
271             return $f
272             } else {
273             return Cfn::Resource::Properties::AWS::S3::Bucket::SourceSelectionCriteriaValue->new( %$_ );
274             }
275             };
276              
277             package Cfn::Resource::Properties::AWS::S3::Bucket::SourceSelectionCriteriaValue {
278 5     5   17386 use Moose;
  5         14  
  5         28  
279 5     5   33603 use MooseX::StrictConstructor;
  5         16  
  5         30  
280             extends 'Cfn::Value::TypedValue';
281            
282             has SseKmsEncryptedObjects => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::SseKmsEncryptedObjects', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
283             }
284              
285             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionByDefault',
286             as 'Cfn::Value';
287              
288             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionByDefault',
289             from 'HashRef',
290             via {
291             if (my $f = Cfn::TypeLibrary::try_function($_)) {
292             return $f
293             } else {
294             return Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionByDefaultValue->new( %$_ );
295             }
296             };
297              
298             package Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionByDefaultValue {
299 5     5   16690 use Moose;
  5         13  
  5         59  
300 5     5   32505 use MooseX::StrictConstructor;
  5         47  
  5         28  
301             extends 'Cfn::Value::TypedValue';
302            
303             has KMSMasterKeyID => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
304             has SSEAlgorithm => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
305             }
306              
307             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleCondition',
308             as 'Cfn::Value';
309              
310             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleCondition',
311             from 'HashRef',
312             via {
313             if (my $f = Cfn::TypeLibrary::try_function($_)) {
314             return $f
315             } else {
316             return Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleConditionValue->new( %$_ );
317             }
318             };
319              
320             package Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleConditionValue {
321 5     5   16728 use Moose;
  5         20  
  5         27  
322 5     5   32974 use MooseX::StrictConstructor;
  5         13  
  5         25  
323             extends 'Cfn::Value::TypedValue';
324            
325             has HttpErrorCodeReturnedEquals => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
326             has KeyPrefixEquals => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
327             }
328              
329             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationDestination',
330             as 'Cfn::Value';
331              
332             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationDestination',
333             from 'HashRef',
334             via {
335             if (my $f = Cfn::TypeLibrary::try_function($_)) {
336             return $f
337             } else {
338             return Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationDestinationValue->new( %$_ );
339             }
340             };
341              
342             package Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationDestinationValue {
343 5     5   16821 use Moose;
  5         18  
  5         33  
344 5     5   32582 use MooseX::StrictConstructor;
  5         15  
  5         22  
345             extends 'Cfn::Value::TypedValue';
346            
347             has AccessControlTranslation => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::AccessControlTranslation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
348             has Account => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
349             has Bucket => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
350             has EncryptionConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::EncryptionConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
351             has StorageClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
352             }
353              
354             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::RedirectRule',
355             as 'Cfn::Value';
356              
357             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::RedirectRule',
358             from 'HashRef',
359             via {
360             if (my $f = Cfn::TypeLibrary::try_function($_)) {
361             return $f
362             } else {
363             return Cfn::Resource::Properties::AWS::S3::Bucket::RedirectRuleValue->new( %$_ );
364             }
365             };
366              
367             package Cfn::Resource::Properties::AWS::S3::Bucket::RedirectRuleValue {
368 5     5   16984 use Moose;
  5         18  
  5         28  
369 5     5   33311 use MooseX::StrictConstructor;
  5         16  
  5         25  
370             extends 'Cfn::Value::TypedValue';
371            
372             has HostName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
373             has HttpRedirectCode => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
374             has Protocol => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
375             has ReplaceKeyPrefixWith => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
376             has ReplaceKeyWith => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
377             }
378              
379             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilter',
380             as 'Cfn::Value';
381              
382             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilter',
383             from 'HashRef',
384             via {
385             if (my $f = Cfn::TypeLibrary::try_function($_)) {
386             return $f
387             } else {
388             return Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilterValue->new( %$_ );
389             }
390             };
391              
392             package Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilterValue {
393 5     5   17130 use Moose;
  5         13  
  5         27  
394 5     5   33638 use MooseX::StrictConstructor;
  5         16  
  5         27  
395             extends 'Cfn::Value::TypedValue';
396            
397             has S3Key => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::S3KeyFilter', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
398             }
399             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition',
400             as 'Cfn::Value',
401             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
402             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
403              
404             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition',
405             from 'HashRef',
406             via {
407             if (my $f = Cfn::TypeLibrary::try_function($_)) {
408             return $f
409             } else {
410             die 'Only accepts functions';
411             }
412             },
413             from 'ArrayRef',
414             via {
415             Cfn::Value::Array->new(Value => [
416             map {
417             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition')->coerce($_)
418             } @$_
419             ]);
420             };
421              
422             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition',
423             as 'Cfn::Value';
424              
425             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition',
426             from 'HashRef',
427             via {
428             if (my $f = Cfn::TypeLibrary::try_function($_)) {
429             return $f
430             } else {
431             return Cfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransitionValue->new( %$_ );
432             }
433             };
434              
435             package Cfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransitionValue {
436 5     5   18243 use Moose;
  5         18  
  5         28  
437 5     5   33460 use MooseX::StrictConstructor;
  5         14  
  5         29  
438             extends 'Cfn::Value::TypedValue';
439            
440             has StorageClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
441             has TransitionInDays => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
442             }
443              
444             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::DefaultRetention',
445             as 'Cfn::Value';
446              
447             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::DefaultRetention',
448             from 'HashRef',
449             via {
450             if (my $f = Cfn::TypeLibrary::try_function($_)) {
451             return $f
452             } else {
453             return Cfn::Resource::Properties::AWS::S3::Bucket::DefaultRetentionValue->new( %$_ );
454             }
455             };
456              
457             package Cfn::Resource::Properties::AWS::S3::Bucket::DefaultRetentionValue {
458 5     5   17352 use Moose;
  5         18  
  5         34  
459 5     5   34473 use MooseX::StrictConstructor;
  5         12  
  5         33  
460             extends 'Cfn::Value::TypedValue';
461            
462             has Days => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
463             has Mode => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
464             has Years => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
465             }
466              
467             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::DataExport',
468             as 'Cfn::Value';
469              
470             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::DataExport',
471             from 'HashRef',
472             via {
473             if (my $f = Cfn::TypeLibrary::try_function($_)) {
474             return $f
475             } else {
476             return Cfn::Resource::Properties::AWS::S3::Bucket::DataExportValue->new( %$_ );
477             }
478             };
479              
480             package Cfn::Resource::Properties::AWS::S3::Bucket::DataExportValue {
481 5     5   17388 use Moose;
  5         355  
  5         35  
482 5     5   33124 use MooseX::StrictConstructor;
  5         14  
  5         27  
483             extends 'Cfn::Value::TypedValue';
484            
485             has Destination => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::Destination', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
486             has OutputSchemaVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
487             }
488              
489             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::AbortIncompleteMultipartUpload',
490             as 'Cfn::Value';
491              
492             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::AbortIncompleteMultipartUpload',
493             from 'HashRef',
494             via {
495             if (my $f = Cfn::TypeLibrary::try_function($_)) {
496             return $f
497             } else {
498             return Cfn::Resource::Properties::AWS::S3::Bucket::AbortIncompleteMultipartUploadValue->new( %$_ );
499             }
500             };
501              
502             package Cfn::Resource::Properties::AWS::S3::Bucket::AbortIncompleteMultipartUploadValue {
503 5     5   16761 use Moose;
  5         282  
  5         52  
504 5     5   32853 use MooseX::StrictConstructor;
  5         13  
  5         25  
505             extends 'Cfn::Value::TypedValue';
506            
507             has DaysAfterInitiation => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
508             }
509             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TopicConfiguration',
510             as 'Cfn::Value',
511             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
512             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
513              
514             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TopicConfiguration',
515             from 'HashRef',
516             via {
517             if (my $f = Cfn::TypeLibrary::try_function($_)) {
518             return $f
519             } else {
520             die 'Only accepts functions';
521             }
522             },
523             from 'ArrayRef',
524             via {
525             Cfn::Value::Array->new(Value => [
526             map {
527             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::TopicConfiguration')->coerce($_)
528             } @$_
529             ]);
530             };
531              
532             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::TopicConfiguration',
533             as 'Cfn::Value';
534              
535             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::TopicConfiguration',
536             from 'HashRef',
537             via {
538             if (my $f = Cfn::TypeLibrary::try_function($_)) {
539             return $f
540             } else {
541             return Cfn::Resource::Properties::AWS::S3::Bucket::TopicConfigurationValue->new( %$_ );
542             }
543             };
544              
545             package Cfn::Resource::Properties::AWS::S3::Bucket::TopicConfigurationValue {
546 5     5   17616 use Moose;
  5         13  
  5         26  
547 5     5   32970 use MooseX::StrictConstructor;
  5         16  
  5         26  
548             extends 'Cfn::Value::TypedValue';
549            
550             has Event => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
551             has Filter => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
552             has Topic => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
553             }
554              
555             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::StorageClassAnalysis',
556             as 'Cfn::Value';
557              
558             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::StorageClassAnalysis',
559             from 'HashRef',
560             via {
561             if (my $f = Cfn::TypeLibrary::try_function($_)) {
562             return $f
563             } else {
564             return Cfn::Resource::Properties::AWS::S3::Bucket::StorageClassAnalysisValue->new( %$_ );
565             }
566             };
567              
568             package Cfn::Resource::Properties::AWS::S3::Bucket::StorageClassAnalysisValue {
569 5     5   17355 use Moose;
  5         15  
  5         36  
570 5     5   32785 use MooseX::StrictConstructor;
  5         21  
  5         29  
571             extends 'Cfn::Value::TypedValue';
572            
573             has DataExport => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::DataExport', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
574             }
575             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRule',
576             as 'Cfn::Value',
577             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
578             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
579              
580             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRule',
581             from 'HashRef',
582             via {
583             if (my $f = Cfn::TypeLibrary::try_function($_)) {
584             return $f
585             } else {
586             die 'Only accepts functions';
587             }
588             },
589             from 'ArrayRef',
590             via {
591             Cfn::Value::Array->new(Value => [
592             map {
593             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRule')->coerce($_)
594             } @$_
595             ]);
596             };
597              
598             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRule',
599             as 'Cfn::Value';
600              
601             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRule',
602             from 'HashRef',
603             via {
604             if (my $f = Cfn::TypeLibrary::try_function($_)) {
605             return $f
606             } else {
607             return Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRuleValue->new( %$_ );
608             }
609             };
610              
611             package Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRuleValue {
612 5     5   17645 use Moose;
  5         22  
  5         28  
613 5     5   32622 use MooseX::StrictConstructor;
  5         14  
  5         24  
614             extends 'Cfn::Value::TypedValue';
615            
616             has ServerSideEncryptionByDefault => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionByDefault', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
617             }
618             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::Rule',
619             as 'Cfn::Value',
620             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
621             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
622              
623             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::Rule',
624             from 'HashRef',
625             via {
626             if (my $f = Cfn::TypeLibrary::try_function($_)) {
627             return $f
628             } else {
629             die 'Only accepts functions';
630             }
631             },
632             from 'ArrayRef',
633             via {
634             Cfn::Value::Array->new(Value => [
635             map {
636             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::Rule')->coerce($_)
637             } @$_
638             ]);
639             };
640              
641             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::Rule',
642             as 'Cfn::Value';
643              
644             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::Rule',
645             from 'HashRef',
646             via {
647             if (my $f = Cfn::TypeLibrary::try_function($_)) {
648             return $f
649             } else {
650             return Cfn::Resource::Properties::AWS::S3::Bucket::RuleValue->new( %$_ );
651             }
652             };
653              
654             package Cfn::Resource::Properties::AWS::S3::Bucket::RuleValue {
655 5     5   18507 use Moose;
  5         14  
  5         27  
656 5     5   33073 use MooseX::StrictConstructor;
  5         15  
  5         28  
657             extends 'Cfn::Value::TypedValue';
658            
659             has AbortIncompleteMultipartUpload => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::AbortIncompleteMultipartUpload', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
660             has ExpirationDate => (isa => 'Cfn::Value::Timestamp', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
661             has ExpirationInDays => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
662             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
663             has NoncurrentVersionExpirationInDays => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
664             has NoncurrentVersionTransition => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
665             has NoncurrentVersionTransitions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::NoncurrentVersionTransition', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
666             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
667             has Status => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
668             has TagFilters => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TagFilter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
669             has Transition => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::Transition', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
670             has Transitions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::Transition', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
671             }
672             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::RoutingRule',
673             as 'Cfn::Value',
674             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
675             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
676              
677             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::RoutingRule',
678             from 'HashRef',
679             via {
680             if (my $f = Cfn::TypeLibrary::try_function($_)) {
681             return $f
682             } else {
683             die 'Only accepts functions';
684             }
685             },
686             from 'ArrayRef',
687             via {
688             Cfn::Value::Array->new(Value => [
689             map {
690             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRule')->coerce($_)
691             } @$_
692             ]);
693             };
694              
695             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRule',
696             as 'Cfn::Value';
697              
698             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRule',
699             from 'HashRef',
700             via {
701             if (my $f = Cfn::TypeLibrary::try_function($_)) {
702             return $f
703             } else {
704             return Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleValue->new( %$_ );
705             }
706             };
707              
708             package Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleValue {
709 5     5   18394 use Moose;
  5         24  
  5         28  
710 5     5   33058 use MooseX::StrictConstructor;
  5         14  
  5         23  
711             extends 'Cfn::Value::TypedValue';
712            
713             has RedirectRule => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::RedirectRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
714             has RoutingRuleCondition => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::RoutingRuleCondition', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
715             }
716             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::ReplicationRule',
717             as 'Cfn::Value',
718             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
719             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
720              
721             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::ReplicationRule',
722             from 'HashRef',
723             via {
724             if (my $f = Cfn::TypeLibrary::try_function($_)) {
725             return $f
726             } else {
727             die 'Only accepts functions';
728             }
729             },
730             from 'ArrayRef',
731             via {
732             Cfn::Value::Array->new(Value => [
733             map {
734             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationRule')->coerce($_)
735             } @$_
736             ]);
737             };
738              
739             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationRule',
740             as 'Cfn::Value';
741              
742             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationRule',
743             from 'HashRef',
744             via {
745             if (my $f = Cfn::TypeLibrary::try_function($_)) {
746             return $f
747             } else {
748             return Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationRuleValue->new( %$_ );
749             }
750             };
751              
752             package Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationRuleValue {
753 5     5   18289 use Moose;
  5         14  
  5         26  
754 5     5   32841 use MooseX::StrictConstructor;
  5         12  
  5         28  
755             extends 'Cfn::Value::TypedValue';
756            
757             has Destination => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationDestination', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
758             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
759             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
760             has SourceSelectionCriteria => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::SourceSelectionCriteria', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
761             has Status => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
762             }
763              
764             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::RedirectAllRequestsTo',
765             as 'Cfn::Value';
766              
767             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::RedirectAllRequestsTo',
768             from 'HashRef',
769             via {
770             if (my $f = Cfn::TypeLibrary::try_function($_)) {
771             return $f
772             } else {
773             return Cfn::Resource::Properties::AWS::S3::Bucket::RedirectAllRequestsToValue->new( %$_ );
774             }
775             };
776              
777             package Cfn::Resource::Properties::AWS::S3::Bucket::RedirectAllRequestsToValue {
778 5     5   17062 use Moose;
  5         18  
  5         32  
779 5     5   33158 use MooseX::StrictConstructor;
  5         14  
  5         23  
780             extends 'Cfn::Value::TypedValue';
781            
782             has HostName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
783             has Protocol => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
784             }
785             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::QueueConfiguration',
786             as 'Cfn::Value',
787             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
788             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
789              
790             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::QueueConfiguration',
791             from 'HashRef',
792             via {
793             if (my $f = Cfn::TypeLibrary::try_function($_)) {
794             return $f
795             } else {
796             die 'Only accepts functions';
797             }
798             },
799             from 'ArrayRef',
800             via {
801             Cfn::Value::Array->new(Value => [
802             map {
803             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::QueueConfiguration')->coerce($_)
804             } @$_
805             ]);
806             };
807              
808             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::QueueConfiguration',
809             as 'Cfn::Value';
810              
811             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::QueueConfiguration',
812             from 'HashRef',
813             via {
814             if (my $f = Cfn::TypeLibrary::try_function($_)) {
815             return $f
816             } else {
817             return Cfn::Resource::Properties::AWS::S3::Bucket::QueueConfigurationValue->new( %$_ );
818             }
819             };
820              
821             package Cfn::Resource::Properties::AWS::S3::Bucket::QueueConfigurationValue {
822 5     5   17815 use Moose;
  5         16  
  5         28  
823 5     5   33094 use MooseX::StrictConstructor;
  5         16  
  5         25  
824             extends 'Cfn::Value::TypedValue';
825            
826             has Event => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
827             has Filter => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
828             has Queue => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
829             }
830              
831             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockRule',
832             as 'Cfn::Value';
833              
834             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockRule',
835             from 'HashRef',
836             via {
837             if (my $f = Cfn::TypeLibrary::try_function($_)) {
838             return $f
839             } else {
840             return Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockRuleValue->new( %$_ );
841             }
842             };
843              
844             package Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockRuleValue {
845 5     5   17543 use Moose;
  5         15  
  5         27  
846 5     5   32709 use MooseX::StrictConstructor;
  5         10  
  5         31  
847             extends 'Cfn::Value::TypedValue';
848            
849             has DefaultRetention => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::DefaultRetention', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
850             }
851             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::LambdaConfiguration',
852             as 'Cfn::Value',
853             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
854             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
855              
856             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::LambdaConfiguration',
857             from 'HashRef',
858             via {
859             if (my $f = Cfn::TypeLibrary::try_function($_)) {
860             return $f
861             } else {
862             die 'Only accepts functions';
863             }
864             },
865             from 'ArrayRef',
866             via {
867             Cfn::Value::Array->new(Value => [
868             map {
869             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::LambdaConfiguration')->coerce($_)
870             } @$_
871             ]);
872             };
873              
874             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::LambdaConfiguration',
875             as 'Cfn::Value';
876              
877             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::LambdaConfiguration',
878             from 'HashRef',
879             via {
880             if (my $f = Cfn::TypeLibrary::try_function($_)) {
881             return $f
882             } else {
883             return Cfn::Resource::Properties::AWS::S3::Bucket::LambdaConfigurationValue->new( %$_ );
884             }
885             };
886              
887             package Cfn::Resource::Properties::AWS::S3::Bucket::LambdaConfigurationValue {
888 5     5   17659 use Moose;
  5         22  
  5         38  
889 5     5   32946 use MooseX::StrictConstructor;
  5         18  
  5         26  
890             extends 'Cfn::Value::TypedValue';
891            
892             has Event => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
893             has Filter => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationFilter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
894             has Function => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
895             }
896             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::CorsRule',
897             as 'Cfn::Value',
898             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
899             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
900              
901             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::CorsRule',
902             from 'HashRef',
903             via {
904             if (my $f = Cfn::TypeLibrary::try_function($_)) {
905             return $f
906             } else {
907             die 'Only accepts functions';
908             }
909             },
910             from 'ArrayRef',
911             via {
912             Cfn::Value::Array->new(Value => [
913             map {
914             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::CorsRule')->coerce($_)
915             } @$_
916             ]);
917             };
918              
919             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::CorsRule',
920             as 'Cfn::Value';
921              
922             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::CorsRule',
923             from 'HashRef',
924             via {
925             if (my $f = Cfn::TypeLibrary::try_function($_)) {
926             return $f
927             } else {
928             return Cfn::Resource::Properties::AWS::S3::Bucket::CorsRuleValue->new( %$_ );
929             }
930             };
931              
932             package Cfn::Resource::Properties::AWS::S3::Bucket::CorsRuleValue {
933 5     5   17957 use Moose;
  5         20  
  5         49  
934 5     5   32920 use MooseX::StrictConstructor;
  5         16  
  5         29  
935             extends 'Cfn::Value::TypedValue';
936            
937             has AllowedHeaders => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
938             has AllowedMethods => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
939             has AllowedOrigins => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
940             has ExposedHeaders => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
941             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
942             has MaxAge => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
943             }
944              
945             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::WebsiteConfiguration',
946             as 'Cfn::Value';
947              
948             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::WebsiteConfiguration',
949             from 'HashRef',
950             via {
951             if (my $f = Cfn::TypeLibrary::try_function($_)) {
952             return $f
953             } else {
954             return Cfn::Resource::Properties::AWS::S3::Bucket::WebsiteConfigurationValue->new( %$_ );
955             }
956             };
957              
958             package Cfn::Resource::Properties::AWS::S3::Bucket::WebsiteConfigurationValue {
959 5     5   17138 use Moose;
  5         14  
  5         38  
960 5     5   33984 use MooseX::StrictConstructor;
  5         18  
  5         31  
961             extends 'Cfn::Value::TypedValue';
962            
963             has ErrorDocument => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
964             has IndexDocument => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
965             has RedirectAllRequestsTo => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::RedirectAllRequestsTo', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
966             has RoutingRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::RoutingRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
967             }
968              
969             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::VersioningConfiguration',
970             as 'Cfn::Value';
971              
972             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::VersioningConfiguration',
973             from 'HashRef',
974             via {
975             if (my $f = Cfn::TypeLibrary::try_function($_)) {
976             return $f
977             } else {
978             return Cfn::Resource::Properties::AWS::S3::Bucket::VersioningConfigurationValue->new( %$_ );
979             }
980             };
981              
982             package Cfn::Resource::Properties::AWS::S3::Bucket::VersioningConfigurationValue {
983 5     5   17325 use Moose;
  5         17  
  5         28  
984 5     5   33080 use MooseX::StrictConstructor;
  5         13  
  5         30  
985             extends 'Cfn::Value::TypedValue';
986            
987             has Status => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
988             }
989              
990             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationConfiguration',
991             as 'Cfn::Value';
992              
993             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationConfiguration',
994             from 'HashRef',
995             via {
996             if (my $f = Cfn::TypeLibrary::try_function($_)) {
997             return $f
998             } else {
999             return Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationConfigurationValue->new( %$_ );
1000             }
1001             };
1002              
1003             package Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationConfigurationValue {
1004 5     5   16994 use Moose;
  5         19  
  5         26  
1005 5     5   33013 use MooseX::StrictConstructor;
  5         15  
  5         27  
1006             extends 'Cfn::Value::TypedValue';
1007            
1008             has Role => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1009             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::ReplicationRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1010             }
1011              
1012             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::PublicAccessBlockConfiguration',
1013             as 'Cfn::Value';
1014              
1015             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::PublicAccessBlockConfiguration',
1016             from 'HashRef',
1017             via {
1018             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1019             return $f
1020             } else {
1021             return Cfn::Resource::Properties::AWS::S3::Bucket::PublicAccessBlockConfigurationValue->new( %$_ );
1022             }
1023             };
1024              
1025             package Cfn::Resource::Properties::AWS::S3::Bucket::PublicAccessBlockConfigurationValue {
1026 5     5   17174 use Moose;
  5         14  
  5         49  
1027 5     5   33290 use MooseX::StrictConstructor;
  5         15  
  5         27  
1028             extends 'Cfn::Value::TypedValue';
1029            
1030             has BlockPublicAcls => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1031             has BlockPublicPolicy => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1032             has IgnorePublicAcls => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1033             has RestrictPublicBuckets => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1034             }
1035              
1036             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockConfiguration',
1037             as 'Cfn::Value';
1038              
1039             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockConfiguration',
1040             from 'HashRef',
1041             via {
1042             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1043             return $f
1044             } else {
1045             return Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockConfigurationValue->new( %$_ );
1046             }
1047             };
1048              
1049             package Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockConfigurationValue {
1050 5     5   17194 use Moose;
  5         16  
  5         27  
1051 5     5   33466 use MooseX::StrictConstructor;
  5         53  
  5         30  
1052             extends 'Cfn::Value::TypedValue';
1053            
1054             has ObjectLockEnabled => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1055             has Rule => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1056             }
1057              
1058             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationConfiguration',
1059             as 'Cfn::Value';
1060              
1061             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationConfiguration',
1062             from 'HashRef',
1063             via {
1064             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1065             return $f
1066             } else {
1067             return Cfn::Resource::Properties::AWS::S3::Bucket::NotificationConfigurationValue->new( %$_ );
1068             }
1069             };
1070              
1071             package Cfn::Resource::Properties::AWS::S3::Bucket::NotificationConfigurationValue {
1072 5     5   16918 use Moose;
  5         15  
  5         26  
1073 5     5   32656 use MooseX::StrictConstructor;
  5         13  
  5         27  
1074             extends 'Cfn::Value::TypedValue';
1075            
1076             has LambdaConfigurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::LambdaConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1077             has QueueConfigurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::QueueConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1078             has TopicConfigurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TopicConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1079             }
1080             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::MetricsConfiguration',
1081             as 'Cfn::Value',
1082             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
1083             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
1084              
1085             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::MetricsConfiguration',
1086             from 'HashRef',
1087             via {
1088             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1089             return $f
1090             } else {
1091             die 'Only accepts functions';
1092             }
1093             },
1094             from 'ArrayRef',
1095             via {
1096             Cfn::Value::Array->new(Value => [
1097             map {
1098             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::MetricsConfiguration')->coerce($_)
1099             } @$_
1100             ]);
1101             };
1102              
1103             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::MetricsConfiguration',
1104             as 'Cfn::Value';
1105              
1106             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::MetricsConfiguration',
1107             from 'HashRef',
1108             via {
1109             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1110             return $f
1111             } else {
1112             return Cfn::Resource::Properties::AWS::S3::Bucket::MetricsConfigurationValue->new( %$_ );
1113             }
1114             };
1115              
1116             package Cfn::Resource::Properties::AWS::S3::Bucket::MetricsConfigurationValue {
1117 5     5   17964 use Moose;
  5         15  
  5         28  
1118 5     5   33143 use MooseX::StrictConstructor;
  5         16  
  5         28  
1119             extends 'Cfn::Value::TypedValue';
1120            
1121             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1122             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1123             has TagFilters => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TagFilter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1124             }
1125              
1126             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::LoggingConfiguration',
1127             as 'Cfn::Value';
1128              
1129             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::LoggingConfiguration',
1130             from 'HashRef',
1131             via {
1132             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1133             return $f
1134             } else {
1135             return Cfn::Resource::Properties::AWS::S3::Bucket::LoggingConfigurationValue->new( %$_ );
1136             }
1137             };
1138              
1139             package Cfn::Resource::Properties::AWS::S3::Bucket::LoggingConfigurationValue {
1140 5     5   17161 use Moose;
  5         15  
  5         27  
1141 5     5   32988 use MooseX::StrictConstructor;
  5         12  
  5         28  
1142             extends 'Cfn::Value::TypedValue';
1143            
1144             has DestinationBucketName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1145             has LogFilePrefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1146             }
1147              
1148             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::LifecycleConfiguration',
1149             as 'Cfn::Value';
1150              
1151             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::LifecycleConfiguration',
1152             from 'HashRef',
1153             via {
1154             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1155             return $f
1156             } else {
1157             return Cfn::Resource::Properties::AWS::S3::Bucket::LifecycleConfigurationValue->new( %$_ );
1158             }
1159             };
1160              
1161             package Cfn::Resource::Properties::AWS::S3::Bucket::LifecycleConfigurationValue {
1162 5     5   16620 use Moose;
  5         14  
  5         27  
1163 5     5   32858 use MooseX::StrictConstructor;
  5         14  
  5         41  
1164             extends 'Cfn::Value::TypedValue';
1165            
1166             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::Rule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1167             }
1168             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::InventoryConfiguration',
1169             as 'Cfn::Value',
1170             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
1171             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
1172              
1173             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::InventoryConfiguration',
1174             from 'HashRef',
1175             via {
1176             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1177             return $f
1178             } else {
1179             die 'Only accepts functions';
1180             }
1181             },
1182             from 'ArrayRef',
1183             via {
1184             Cfn::Value::Array->new(Value => [
1185             map {
1186             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::InventoryConfiguration')->coerce($_)
1187             } @$_
1188             ]);
1189             };
1190              
1191             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::InventoryConfiguration',
1192             as 'Cfn::Value';
1193              
1194             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::InventoryConfiguration',
1195             from 'HashRef',
1196             via {
1197             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1198             return $f
1199             } else {
1200             return Cfn::Resource::Properties::AWS::S3::Bucket::InventoryConfigurationValue->new( %$_ );
1201             }
1202             };
1203              
1204             package Cfn::Resource::Properties::AWS::S3::Bucket::InventoryConfigurationValue {
1205 5     5   17913 use Moose;
  5         18  
  5         30  
1206 5     5   33770 use MooseX::StrictConstructor;
  5         15  
  5         28  
1207             extends 'Cfn::Value::TypedValue';
1208            
1209             has Destination => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::Destination', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1210             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1211             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1212             has IncludedObjectVersions => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1213             has OptionalFields => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1214             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1215             has ScheduleFrequency => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1216             }
1217              
1218             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::CorsConfiguration',
1219             as 'Cfn::Value';
1220              
1221             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::CorsConfiguration',
1222             from 'HashRef',
1223             via {
1224             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1225             return $f
1226             } else {
1227             return Cfn::Resource::Properties::AWS::S3::Bucket::CorsConfigurationValue->new( %$_ );
1228             }
1229             };
1230              
1231             package Cfn::Resource::Properties::AWS::S3::Bucket::CorsConfigurationValue {
1232 5     5   17721 use Moose;
  5         16  
  5         25  
1233 5     5   33055 use MooseX::StrictConstructor;
  5         14  
  5         27  
1234             extends 'Cfn::Value::TypedValue';
1235            
1236             has CorsRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::CorsRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1237             }
1238              
1239             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::BucketEncryption',
1240             as 'Cfn::Value';
1241              
1242             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::BucketEncryption',
1243             from 'HashRef',
1244             via {
1245             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1246             return $f
1247             } else {
1248             return Cfn::Resource::Properties::AWS::S3::Bucket::BucketEncryptionValue->new( %$_ );
1249             }
1250             };
1251              
1252             package Cfn::Resource::Properties::AWS::S3::Bucket::BucketEncryptionValue {
1253 5     5   16623 use Moose;
  5         12  
  5         26  
1254 5     5   32968 use MooseX::StrictConstructor;
  5         14  
  5         29  
1255             extends 'Cfn::Value::TypedValue';
1256            
1257             has ServerSideEncryptionConfiguration => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::ServerSideEncryptionRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1258             }
1259             subtype 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfiguration',
1260             as 'Cfn::Value',
1261             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
1262             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
1263              
1264             coerce 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfiguration',
1265             from 'HashRef',
1266             via {
1267             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1268             return $f
1269             } else {
1270             die 'Only accepts functions';
1271             }
1272             },
1273             from 'ArrayRef',
1274             via {
1275             Cfn::Value::Array->new(Value => [
1276             map {
1277             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfiguration')->coerce($_)
1278             } @$_
1279             ]);
1280             };
1281              
1282             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfiguration',
1283             as 'Cfn::Value';
1284              
1285             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfiguration',
1286             from 'HashRef',
1287             via {
1288             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1289             return $f
1290             } else {
1291             return Cfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfigurationValue->new( %$_ );
1292             }
1293             };
1294              
1295             package Cfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfigurationValue {
1296 5     5   17906 use Moose;
  5         18  
  5         36  
1297 5     5   33331 use MooseX::StrictConstructor;
  5         16  
  5         27  
1298             extends 'Cfn::Value::TypedValue';
1299            
1300             has Id => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1301             has Prefix => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1302             has StorageClassAnalysis => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::StorageClassAnalysis', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1303             has TagFilters => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::TagFilter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1304             }
1305              
1306             subtype 'Cfn::Resource::Properties::AWS::S3::Bucket::AccelerateConfiguration',
1307             as 'Cfn::Value';
1308              
1309             coerce 'Cfn::Resource::Properties::AWS::S3::Bucket::AccelerateConfiguration',
1310             from 'HashRef',
1311             via {
1312             if (my $f = Cfn::TypeLibrary::try_function($_)) {
1313             return $f
1314             } else {
1315             return Cfn::Resource::Properties::AWS::S3::Bucket::AccelerateConfigurationValue->new( %$_ );
1316             }
1317             };
1318              
1319             package Cfn::Resource::Properties::AWS::S3::Bucket::AccelerateConfigurationValue {
1320 5     5   17328 use Moose;
  5         15  
  5         26  
1321 5     5   33147 use MooseX::StrictConstructor;
  5         19  
  5         64  
1322             extends 'Cfn::Value::TypedValue';
1323            
1324             has AccelerationStatus => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1325             }
1326              
1327             package Cfn::Resource::Properties::AWS::S3::Bucket {
1328 5     5   16501 use Moose;
  5         17  
  5         26  
1329 5     5   33115 use MooseX::StrictConstructor;
  5         14  
  5         30  
1330             extends 'Cfn::Resource::Properties';
1331            
1332             has AccelerateConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::AccelerateConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1333             has AccessControl => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1334             has AnalyticsConfigurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::AnalyticsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1335             has BucketEncryption => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::BucketEncryption', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1336             has BucketName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
1337             has CorsConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::CorsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1338             has InventoryConfigurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::InventoryConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1339             has LifecycleConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::LifecycleConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1340             has LoggingConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::LoggingConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1341             has MetricsConfigurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::S3::Bucket::MetricsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1342             has NotificationConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::NotificationConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1343             has ObjectLockConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::ObjectLockConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1344             has ObjectLockEnabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
1345             has PublicAccessBlockConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::PublicAccessBlockConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1346             has ReplicationConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::ReplicationConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1347             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1348             has VersioningConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::VersioningConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1349             has WebsiteConfiguration => (isa => 'Cfn::Resource::Properties::AWS::S3::Bucket::WebsiteConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
1350             }
1351              
1352             1;