File Coverage

blib/lib/Cfn/Resource/AWS/DLM/LifecyclePolicy.pm
Criterion Covered Total %
statement 98 98 100.0
branch n/a
condition n/a
subroutine 34 34 100.0
pod 0 2 0.0
total 132 134 98.5


line stmt bran cond sub pod time code
1             # AWS::DLM::LifecyclePolicy generated from spec 21.0.0
2 1     1   688 use Moose::Util::TypeConstraints;
  1         5  
  1         10  
3              
4             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::DLM::LifecyclePolicy {
9 1     1   1888 use Moose;
  1         3  
  1         8  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 4 [ 'Arn' ]
15             }
16             sub supported_regions {
17 1     1 0 961 [ 'ap-northeast-1','ap-northeast-2','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','eu-central-1','eu-west-1','eu-west-2','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::DLM::LifecyclePolicy::EncryptionConfiguration',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EncryptionConfiguration',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::EncryptionConfiguration->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::EncryptionConfiguration {
37 1     1   6403 use Moose;
  1         3  
  1         5  
38 1     1   9979 use MooseX::StrictConstructor;
  1         3  
  1         10  
39             extends 'Cfn::Value::TypedValue';
40            
41             has CmkArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             has Encrypted => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
43             }
44              
45             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRetainRule',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRetainRule',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CrossRegionCopyRetainRule->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CrossRegionCopyRetainRule {
59 1     1   3361 use Moose;
  1         3  
  1         6  
60 1     1   5849 use MooseX::StrictConstructor;
  1         4  
  1         4  
61             extends 'Cfn::Value::TypedValue';
62            
63             has Interval => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             has IntervalUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
65             }
66             subtype 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::ShareRule',
67             as 'Cfn::Value',
68             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
69             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
70              
71             coerce 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::ShareRule',
72             from 'HashRef',
73             via {
74             if (my $f = Cfn::TypeLibrary::try_function($_)) {
75             return $f
76             } else {
77             die 'Only accepts functions';
78             }
79             },
80             from 'ArrayRef',
81             via {
82             Cfn::Value::Array->new(Value => [
83             map {
84             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::ShareRule')->coerce($_)
85             } @$_
86             ]);
87             };
88              
89             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::ShareRule',
90             as 'Cfn::Value';
91              
92             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::ShareRule',
93             from 'HashRef',
94             via {
95             if (my $f = Cfn::TypeLibrary::try_function($_)) {
96             return $f
97             } else {
98             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::ShareRule->new( %$_ );
99             }
100             };
101              
102             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::ShareRule {
103 1     1   3261 use Moose;
  1         3  
  1         12  
104 1     1   5819 use MooseX::StrictConstructor;
  1         4  
  1         6  
105             extends 'Cfn::Value::TypedValue';
106            
107             has TargetAccounts => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
108             has UnshareInterval => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
109             has UnshareIntervalUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
110             }
111              
112             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::RetainRule',
113             as 'Cfn::Value';
114              
115             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::RetainRule',
116             from 'HashRef',
117             via {
118             if (my $f = Cfn::TypeLibrary::try_function($_)) {
119             return $f
120             } else {
121             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::RetainRule->new( %$_ );
122             }
123             };
124              
125             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::RetainRule {
126 1     1   3057 use Moose;
  1         4  
  1         5  
127 1     1   5778 use MooseX::StrictConstructor;
  1         3  
  1         5  
128             extends 'Cfn::Value::TypedValue';
129            
130             has Count => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
131             has Interval => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
132             has IntervalUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
133             }
134              
135             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::FastRestoreRule',
136             as 'Cfn::Value';
137              
138             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::FastRestoreRule',
139             from 'HashRef',
140             via {
141             if (my $f = Cfn::TypeLibrary::try_function($_)) {
142             return $f
143             } else {
144             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::FastRestoreRule->new( %$_ );
145             }
146             };
147              
148             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::FastRestoreRule {
149 1     1   3000 use Moose;
  1         2  
  1         6  
150 1     1   5723 use MooseX::StrictConstructor;
  1         3  
  1         5  
151             extends 'Cfn::Value::TypedValue';
152            
153             has AvailabilityZones => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
154             has Count => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
155             has Interval => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
156             has IntervalUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
157             }
158              
159             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EventParameters',
160             as 'Cfn::Value';
161              
162             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EventParameters',
163             from 'HashRef',
164             via {
165             if (my $f = Cfn::TypeLibrary::try_function($_)) {
166             return $f
167             } else {
168             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::EventParameters->new( %$_ );
169             }
170             };
171              
172             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::EventParameters {
173 1     1   2985 use Moose;
  1         3  
  1         6  
174 1     1   5637 use MooseX::StrictConstructor;
  1         2  
  1         5  
175             extends 'Cfn::Value::TypedValue';
176            
177             has DescriptionRegex => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
178             has EventType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
179             has SnapshotOwner => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
180             }
181             subtype 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule',
182             as 'Cfn::Value',
183             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
184             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
185              
186             coerce 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule',
187             from 'HashRef',
188             via {
189             if (my $f = Cfn::TypeLibrary::try_function($_)) {
190             return $f
191             } else {
192             die 'Only accepts functions';
193             }
194             },
195             from 'ArrayRef',
196             via {
197             Cfn::Value::Array->new(Value => [
198             map {
199             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule')->coerce($_)
200             } @$_
201             ]);
202             };
203              
204             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule',
205             as 'Cfn::Value';
206              
207             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule',
208             from 'HashRef',
209             via {
210             if (my $f = Cfn::TypeLibrary::try_function($_)) {
211             return $f
212             } else {
213             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule->new( %$_ );
214             }
215             };
216              
217             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule {
218 1     1   3171 use Moose;
  1         3  
  1         6  
219 1     1   5668 use MooseX::StrictConstructor;
  1         4  
  1         5  
220             extends 'Cfn::Value::TypedValue';
221            
222             has CmkArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
223             has CopyTags => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
224             has Encrypted => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
225             has RetainRule => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRetainRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
226             has TargetRegion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
227             }
228             subtype 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction',
229             as 'Cfn::Value',
230             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
231             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
232              
233             coerce 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction',
234             from 'HashRef',
235             via {
236             if (my $f = Cfn::TypeLibrary::try_function($_)) {
237             return $f
238             } else {
239             die 'Only accepts functions';
240             }
241             },
242             from 'ArrayRef',
243             via {
244             Cfn::Value::Array->new(Value => [
245             map {
246             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction')->coerce($_)
247             } @$_
248             ]);
249             };
250              
251             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction',
252             as 'Cfn::Value';
253              
254             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction',
255             from 'HashRef',
256             via {
257             if (my $f = Cfn::TypeLibrary::try_function($_)) {
258             return $f
259             } else {
260             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction->new( %$_ );
261             }
262             };
263              
264             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction {
265 1     1   3056 use Moose;
  1         2  
  1         5  
266 1     1   5540 use MooseX::StrictConstructor;
  1         4  
  1         5  
267             extends 'Cfn::Value::TypedValue';
268            
269             has EncryptionConfiguration => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EncryptionConfiguration', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
270             has RetainRule => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRetainRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
271             has Target => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
272             }
273              
274             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CreateRule',
275             as 'Cfn::Value';
276              
277             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CreateRule',
278             from 'HashRef',
279             via {
280             if (my $f = Cfn::TypeLibrary::try_function($_)) {
281             return $f
282             } else {
283             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CreateRule->new( %$_ );
284             }
285             };
286              
287             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::CreateRule {
288 1     1   2874 use Moose;
  1         4  
  1         4  
289 1     1   5960 use MooseX::StrictConstructor;
  1         3  
  1         5  
290             extends 'Cfn::Value::TypedValue';
291            
292             has CronExpression => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
293             has Interval => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
294             has IntervalUnit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
295             has Times => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             }
297             subtype 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Schedule',
298             as 'Cfn::Value',
299             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
300             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
301              
302             coerce 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Schedule',
303             from 'HashRef',
304             via {
305             if (my $f = Cfn::TypeLibrary::try_function($_)) {
306             return $f
307             } else {
308             die 'Only accepts functions';
309             }
310             },
311             from 'ArrayRef',
312             via {
313             Cfn::Value::Array->new(Value => [
314             map {
315             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Schedule')->coerce($_)
316             } @$_
317             ]);
318             };
319              
320             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Schedule',
321             as 'Cfn::Value';
322              
323             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Schedule',
324             from 'HashRef',
325             via {
326             if (my $f = Cfn::TypeLibrary::try_function($_)) {
327             return $f
328             } else {
329             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::Schedule->new( %$_ );
330             }
331             };
332              
333             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::Schedule {
334 1     1   3119 use Moose;
  1         3  
  1         6  
335 1     1   5654 use MooseX::StrictConstructor;
  1         2  
  1         7  
336             extends 'Cfn::Value::TypedValue';
337            
338             has CopyTags => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
339             has CreateRule => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CreateRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
340             has CrossRegionCopyRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
341             has FastRestoreRule => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::FastRestoreRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
342             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
343             has RetainRule => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::RetainRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
344             has ShareRules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::ShareRule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
345             has TagsToAdd => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
346             has VariableTags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
347             }
348              
349             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Parameters',
350             as 'Cfn::Value';
351              
352             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Parameters',
353             from 'HashRef',
354             via {
355             if (my $f = Cfn::TypeLibrary::try_function($_)) {
356             return $f
357             } else {
358             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::Parameters->new( %$_ );
359             }
360             };
361              
362             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::Parameters {
363 1     1   3050 use Moose;
  1         3  
  1         6  
364 1     1   5608 use MooseX::StrictConstructor;
  1         2  
  1         6  
365             extends 'Cfn::Value::TypedValue';
366            
367             has ExcludeBootVolume => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
368             has NoReboot => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
369             }
370              
371             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EventSource',
372             as 'Cfn::Value';
373              
374             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EventSource',
375             from 'HashRef',
376             via {
377             if (my $f = Cfn::TypeLibrary::try_function($_)) {
378             return $f
379             } else {
380             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::EventSource->new( %$_ );
381             }
382             };
383              
384             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::EventSource {
385 1     1   2951 use Moose;
  1         2  
  1         5  
386 1     1   5635 use MooseX::StrictConstructor;
  1         3  
  1         5  
387             extends 'Cfn::Value::TypedValue';
388            
389             has Parameters => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EventParameters', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
390             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
391             }
392             subtype 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Action',
393             as 'Cfn::Value',
394             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
395             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
396              
397             coerce 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Action',
398             from 'HashRef',
399             via {
400             if (my $f = Cfn::TypeLibrary::try_function($_)) {
401             return $f
402             } else {
403             die 'Only accepts functions';
404             }
405             },
406             from 'ArrayRef',
407             via {
408             Cfn::Value::Array->new(Value => [
409             map {
410             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Action')->coerce($_)
411             } @$_
412             ]);
413             };
414              
415             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Action',
416             as 'Cfn::Value';
417              
418             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Action',
419             from 'HashRef',
420             via {
421             if (my $f = Cfn::TypeLibrary::try_function($_)) {
422             return $f
423             } else {
424             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::Action->new( %$_ );
425             }
426             };
427              
428             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::Action {
429 1     1   3129 use Moose;
  1         3  
  1         5  
430 1     1   5762 use MooseX::StrictConstructor;
  1         3  
  1         6  
431             extends 'Cfn::Value::TypedValue';
432            
433             has CrossRegionCopy => (isa => 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::CrossRegionCopyAction', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
434             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
435             }
436              
437             subtype 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::PolicyDetails',
438             as 'Cfn::Value';
439              
440             coerce 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::PolicyDetails',
441             from 'HashRef',
442             via {
443             if (my $f = Cfn::TypeLibrary::try_function($_)) {
444             return $f
445             } else {
446             return Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::PolicyDetails->new( %$_ );
447             }
448             };
449              
450             package Cfn::Resource::Properties::Object::AWS::DLM::LifecyclePolicy::PolicyDetails {
451 1     1   3093 use Moose;
  1         3  
  1         6  
452 1     1   5959 use MooseX::StrictConstructor;
  1         3  
  1         6  
453             extends 'Cfn::Value::TypedValue';
454            
455             has Actions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
456             has EventSource => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::EventSource', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
457             has Parameters => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Parameters', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
458             has PolicyType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
459             has ResourceTypes => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
460             has Schedules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::DLM::LifecyclePolicy::Schedule', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
461             has TargetTags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
462             }
463              
464             package Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy {
465 1     1   3073 use Moose;
  1         2  
  1         6  
466 1     1   5850 use MooseX::StrictConstructor;
  1         3  
  1         6  
467             extends 'Cfn::Resource::Properties';
468            
469             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
470             has ExecutionRoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
471             has PolicyDetails => (isa => 'Cfn::Resource::Properties::AWS::DLM::LifecyclePolicy::PolicyDetails', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
472             has State => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
473             }
474              
475             1;
476             ### main pod documentation begin ###
477              
478             =encoding UTF-8
479              
480             =head1 NAME
481              
482             Cfn::Resource::AWS::DLM::LifecyclePolicy - Cfn resource for AWS::DLM::LifecyclePolicy
483              
484             =head1 DESCRIPTION
485              
486             This module implements a Perl module that represents the CloudFormation object AWS::DLM::LifecyclePolicy.
487              
488             See L<Cfn> for more information on how to use it.
489              
490             =head1 AUTHOR
491              
492             Jose Luis Martinez
493             CAPSiDE
494             jlmartinez@capside.com
495              
496             =head1 COPYRIGHT and LICENSE
497              
498             Copyright (c) 2013 by CAPSiDE
499             This code is distributed under the Apache 2 License. The full text of the
500             license can be found in the LICENSE file included with this module.
501              
502             =cut