File Coverage

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


line stmt bran cond sub pod time code
1             # AWS::EC2::LaunchTemplate generated from spec 21.0.0
2 1     1   774 use Moose::Util::TypeConstraints;
  1         6  
  1         11  
3              
4             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::EC2::LaunchTemplate->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::EC2::LaunchTemplate {
9 1     1   2099 use Moose;
  1         5  
  1         7  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 4 [ 'DefaultVersionNumber','LatestVersionNumber' ]
15             }
16             sub supported_regions {
17 1     1 0 1164 [ '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              
23             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::SpotOptions',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::SpotOptions',
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::EC2::LaunchTemplate::SpotOptions->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::SpotOptions {
37 1     1   7221 use Moose;
  1         2  
  1         6  
38 1     1   6638 use MooseX::StrictConstructor;
  1         2  
  1         12  
39             extends 'Cfn::Value::TypedValue';
40            
41             has BlockDurationMinutes => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             has InstanceInterruptionBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
43             has MaxPrice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
44             has SpotInstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
45             has ValidUntil => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
46             }
47             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd',
48             as 'Cfn::Value',
49             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
50             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
51              
52             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd',
53             from 'HashRef',
54             via {
55             if (my $f = Cfn::TypeLibrary::try_function($_)) {
56             return $f
57             } else {
58             die 'Only accepts functions';
59             }
60             },
61             from 'ArrayRef',
62             via {
63             Cfn::Value::Array->new(Value => [
64             map {
65             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd')->coerce($_)
66             } @$_
67             ]);
68             };
69              
70             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd',
71             as 'Cfn::Value';
72              
73             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd',
74             from 'HashRef',
75             via {
76             if (my $f = Cfn::TypeLibrary::try_function($_)) {
77             return $f
78             } else {
79             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::PrivateIpAdd->new( %$_ );
80             }
81             };
82              
83             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::PrivateIpAdd {
84 1     1   3874 use Moose;
  1         3  
  1         6  
85 1     1   6955 use MooseX::StrictConstructor;
  1         2  
  1         5  
86             extends 'Cfn::Value::TypedValue';
87            
88             has Primary => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
89             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
90             }
91             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add',
92             as 'Cfn::Value',
93             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
94             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
95              
96             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add',
97             from 'HashRef',
98             via {
99             if (my $f = Cfn::TypeLibrary::try_function($_)) {
100             return $f
101             } else {
102             die 'Only accepts functions';
103             }
104             },
105             from 'ArrayRef',
106             via {
107             Cfn::Value::Array->new(Value => [
108             map {
109             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add')->coerce($_)
110             } @$_
111             ]);
112             };
113              
114             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add',
115             as 'Cfn::Value';
116              
117             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add',
118             from 'HashRef',
119             via {
120             if (my $f = Cfn::TypeLibrary::try_function($_)) {
121             return $f
122             } else {
123             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Ipv6Add->new( %$_ );
124             }
125             };
126              
127             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Ipv6Add {
128 1     1   3578 use Moose;
  1         3  
  1         6  
129 1     1   6696 use MooseX::StrictConstructor;
  1         4  
  1         5  
130             extends 'Cfn::Value::TypedValue';
131            
132             has Ipv6Address => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
133             }
134              
135             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ebs',
136             as 'Cfn::Value';
137              
138             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ebs',
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::EC2::LaunchTemplate::Ebs->new( %$_ );
145             }
146             };
147              
148             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Ebs {
149 1     1   3384 use Moose;
  1         2  
  1         6  
150 1     1   6705 use MooseX::StrictConstructor;
  1         3  
  1         6  
151             extends 'Cfn::Value::TypedValue';
152            
153             has DeleteOnTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
154             has Encrypted => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
155             has Iops => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
156             has KmsKeyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
157             has SnapshotId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
158             has VolumeSize => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
159             has VolumeType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
160             }
161              
162             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationTarget',
163             as 'Cfn::Value';
164              
165             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationTarget',
166             from 'HashRef',
167             via {
168             if (my $f = Cfn::TypeLibrary::try_function($_)) {
169             return $f
170             } else {
171             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CapacityReservationTarget->new( %$_ );
172             }
173             };
174              
175             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CapacityReservationTarget {
176 1     1   3532 use Moose;
  1         4  
  1         5  
177 1     1   6653 use MooseX::StrictConstructor;
  1         5  
  1         8  
178             extends 'Cfn::Value::TypedValue';
179            
180             has CapacityReservationId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
181             has CapacityReservationResourceGroupArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
182             }
183             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
184             as 'Cfn::Value',
185             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
186             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
187              
188             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
189             from 'HashRef',
190             via {
191             if (my $f = Cfn::TypeLibrary::try_function($_)) {
192             return $f
193             } else {
194             die 'Only accepts functions';
195             }
196             },
197             from 'ArrayRef',
198             via {
199             Cfn::Value::Array->new(Value => [
200             map {
201             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification')->coerce($_)
202             } @$_
203             ]);
204             };
205              
206             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
207             as 'Cfn::Value';
208              
209             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
210             from 'HashRef',
211             via {
212             if (my $f = Cfn::TypeLibrary::try_function($_)) {
213             return $f
214             } else {
215             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::TagSpecification->new( %$_ );
216             }
217             };
218              
219             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::TagSpecification {
220 1     1   3609 use Moose;
  1         3  
  1         7  
221 1     1   6611 use MooseX::StrictConstructor;
  1         2  
  1         7  
222             extends 'Cfn::Value::TypedValue';
223            
224             has ResourceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
225             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
226             }
227              
228             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement',
229             as 'Cfn::Value';
230              
231             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement',
232             from 'HashRef',
233             via {
234             if (my $f = Cfn::TypeLibrary::try_function($_)) {
235             return $f
236             } else {
237             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Placement->new( %$_ );
238             }
239             };
240              
241             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Placement {
242 1     1   3390 use Moose;
  1         5  
  1         6  
243 1     1   6638 use MooseX::StrictConstructor;
  1         3  
  1         8  
244             extends 'Cfn::Value::TypedValue';
245            
246             has Affinity => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
247             has AvailabilityZone => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             has GroupName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             has HostId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             has HostResourceGroupArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
251             has PartitionNumber => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
252             has SpreadDomain => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
253             has Tenancy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
254             }
255             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
256             as 'Cfn::Value',
257             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
258             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
259              
260             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
261             from 'HashRef',
262             via {
263             if (my $f = Cfn::TypeLibrary::try_function($_)) {
264             return $f
265             } else {
266             die 'Only accepts functions';
267             }
268             },
269             from 'ArrayRef',
270             via {
271             Cfn::Value::Array->new(Value => [
272             map {
273             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface')->coerce($_)
274             } @$_
275             ]);
276             };
277              
278             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
279             as 'Cfn::Value';
280              
281             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
282             from 'HashRef',
283             via {
284             if (my $f = Cfn::TypeLibrary::try_function($_)) {
285             return $f
286             } else {
287             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::NetworkInterface->new( %$_ );
288             }
289             };
290              
291             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::NetworkInterface {
292 1     1   3795 use Moose;
  1         3  
  1         6  
293 1     1   6691 use MooseX::StrictConstructor;
  1         2  
  1         6  
294             extends 'Cfn::Value::TypedValue';
295            
296             has AssociateCarrierIpAddress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             has AssociatePublicIpAddress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
298             has DeleteOnTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
299             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
300             has DeviceIndex => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
301             has Groups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
302             has InterfaceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
303             has Ipv6AddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
304             has Ipv6Addresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
305             has NetworkCardIndex => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
306             has NetworkInterfaceId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
307             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
308             has PrivateIpAddresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
309             has SecondaryPrivateIpAddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
310             has SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
311             }
312              
313             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring',
314             as 'Cfn::Value';
315              
316             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring',
317             from 'HashRef',
318             via {
319             if (my $f = Cfn::TypeLibrary::try_function($_)) {
320             return $f
321             } else {
322             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Monitoring->new( %$_ );
323             }
324             };
325              
326             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::Monitoring {
327 1     1   3597 use Moose;
  1         3  
  1         6  
328 1     1   6624 use MooseX::StrictConstructor;
  1         3  
  1         6  
329             extends 'Cfn::Value::TypedValue';
330            
331             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
332             }
333              
334             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptions',
335             as 'Cfn::Value';
336              
337             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptions',
338             from 'HashRef',
339             via {
340             if (my $f = Cfn::TypeLibrary::try_function($_)) {
341             return $f
342             } else {
343             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::MetadataOptions->new( %$_ );
344             }
345             };
346              
347             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::MetadataOptions {
348 1     1   3371 use Moose;
  1         2  
  1         6  
349 1     1   6597 use MooseX::StrictConstructor;
  1         2  
  1         5  
350             extends 'Cfn::Value::TypedValue';
351            
352             has HttpEndpoint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
353             has HttpPutResponseHopLimit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
354             has HttpTokens => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
355             }
356             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
357             as 'Cfn::Value',
358             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
359             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
360              
361             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
362             from 'HashRef',
363             via {
364             if (my $f = Cfn::TypeLibrary::try_function($_)) {
365             return $f
366             } else {
367             die 'Only accepts functions';
368             }
369             },
370             from 'ArrayRef',
371             via {
372             Cfn::Value::Array->new(Value => [
373             map {
374             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification')->coerce($_)
375             } @$_
376             ]);
377             };
378              
379             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
380             as 'Cfn::Value';
381              
382             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
383             from 'HashRef',
384             via {
385             if (my $f = Cfn::TypeLibrary::try_function($_)) {
386             return $f
387             } else {
388             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::LicenseSpecification->new( %$_ );
389             }
390             };
391              
392             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::LicenseSpecification {
393 1     1   3642 use Moose;
  1         3  
  1         5  
394 1     1   6728 use MooseX::StrictConstructor;
  1         4  
  1         7  
395             extends 'Cfn::Value::TypedValue';
396            
397             has LicenseConfigurationArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
398             }
399             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
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::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
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::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator')->coerce($_)
418             } @$_
419             ]);
420             };
421              
422             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
423             as 'Cfn::Value';
424              
425             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
426             from 'HashRef',
427             via {
428             if (my $f = Cfn::TypeLibrary::try_function($_)) {
429             return $f
430             } else {
431             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator->new( %$_ );
432             }
433             };
434              
435             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator {
436 1     1   3676 use Moose;
  1         4  
  1         6  
437 1     1   6877 use MooseX::StrictConstructor;
  1         5  
  1         5  
438             extends 'Cfn::Value::TypedValue';
439            
440             has Count => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
441             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
442             }
443              
444             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions',
445             as 'Cfn::Value';
446              
447             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions',
448             from 'HashRef',
449             via {
450             if (my $f = Cfn::TypeLibrary::try_function($_)) {
451             return $f
452             } else {
453             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::InstanceMarketOptions->new( %$_ );
454             }
455             };
456              
457             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::InstanceMarketOptions {
458 1     1   3403 use Moose;
  1         5  
  1         6  
459 1     1   6597 use MooseX::StrictConstructor;
  1         3  
  1         6  
460             extends 'Cfn::Value::TypedValue';
461            
462             has MarketType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
463             has SpotOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::SpotOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
464             }
465              
466             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile',
467             as 'Cfn::Value';
468              
469             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile',
470             from 'HashRef',
471             via {
472             if (my $f = Cfn::TypeLibrary::try_function($_)) {
473             return $f
474             } else {
475             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::IamInstanceProfile->new( %$_ );
476             }
477             };
478              
479             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::IamInstanceProfile {
480 1     1   3418 use Moose;
  1         2  
  1         8  
481 1     1   6972 use MooseX::StrictConstructor;
  1         2  
  1         5  
482             extends 'Cfn::Value::TypedValue';
483            
484             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
485             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
486             }
487              
488             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions',
489             as 'Cfn::Value';
490              
491             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions',
492             from 'HashRef',
493             via {
494             if (my $f = Cfn::TypeLibrary::try_function($_)) {
495             return $f
496             } else {
497             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::HibernationOptions->new( %$_ );
498             }
499             };
500              
501             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::HibernationOptions {
502 1     1   3466 use Moose;
  1         2  
  1         6  
503 1     1   6610 use MooseX::StrictConstructor;
  1         3  
  1         6  
504             extends 'Cfn::Value::TypedValue';
505            
506             has Configured => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
507             }
508              
509             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::EnclaveOptions',
510             as 'Cfn::Value';
511              
512             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::EnclaveOptions',
513             from 'HashRef',
514             via {
515             if (my $f = Cfn::TypeLibrary::try_function($_)) {
516             return $f
517             } else {
518             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::EnclaveOptions->new( %$_ );
519             }
520             };
521              
522             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::EnclaveOptions {
523 1     1   3409 use Moose;
  1         3  
  1         6  
524 1     1   6591 use MooseX::StrictConstructor;
  1         2  
  1         5  
525             extends 'Cfn::Value::TypedValue';
526            
527             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
528             }
529             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
530             as 'Cfn::Value',
531             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
532             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
533              
534             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
535             from 'HashRef',
536             via {
537             if (my $f = Cfn::TypeLibrary::try_function($_)) {
538             return $f
539             } else {
540             die 'Only accepts functions';
541             }
542             },
543             from 'ArrayRef',
544             via {
545             Cfn::Value::Array->new(Value => [
546             map {
547             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification')->coerce($_)
548             } @$_
549             ]);
550             };
551              
552             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
553             as 'Cfn::Value';
554              
555             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
556             from 'HashRef',
557             via {
558             if (my $f = Cfn::TypeLibrary::try_function($_)) {
559             return $f
560             } else {
561             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::ElasticGpuSpecification->new( %$_ );
562             }
563             };
564              
565             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::ElasticGpuSpecification {
566 1     1   3618 use Moose;
  1         3  
  1         5  
567 1     1   6604 use MooseX::StrictConstructor;
  1         3  
  1         6  
568             extends 'Cfn::Value::TypedValue';
569            
570             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
571             }
572              
573             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification',
574             as 'Cfn::Value';
575              
576             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification',
577             from 'HashRef',
578             via {
579             if (my $f = Cfn::TypeLibrary::try_function($_)) {
580             return $f
581             } else {
582             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CreditSpecification->new( %$_ );
583             }
584             };
585              
586             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CreditSpecification {
587 1     1   3427 use Moose;
  1         4  
  1         6  
588 1     1   6591 use MooseX::StrictConstructor;
  1         2  
  1         5  
589             extends 'Cfn::Value::TypedValue';
590            
591             has CpuCredits => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
592             }
593              
594             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions',
595             as 'Cfn::Value';
596              
597             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions',
598             from 'HashRef',
599             via {
600             if (my $f = Cfn::TypeLibrary::try_function($_)) {
601             return $f
602             } else {
603             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CpuOptions->new( %$_ );
604             }
605             };
606              
607             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CpuOptions {
608 1     1   3437 use Moose;
  1         2  
  1         8  
609 1     1   6677 use MooseX::StrictConstructor;
  1         4  
  1         8  
610             extends 'Cfn::Value::TypedValue';
611            
612             has CoreCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
613             has ThreadsPerCore => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
614             }
615              
616             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification',
617             as 'Cfn::Value';
618              
619             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification',
620             from 'HashRef',
621             via {
622             if (my $f = Cfn::TypeLibrary::try_function($_)) {
623             return $f
624             } else {
625             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CapacityReservationSpecification->new( %$_ );
626             }
627             };
628              
629             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::CapacityReservationSpecification {
630 1     1   3653 use Moose;
  1         5  
  1         7  
631 1     1   7190 use MooseX::StrictConstructor;
  1         3  
  1         6  
632             extends 'Cfn::Value::TypedValue';
633            
634             has CapacityReservationPreference => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
635             has CapacityReservationTarget => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationTarget', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
636             }
637             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
638             as 'Cfn::Value',
639             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
640             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
641              
642             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
643             from 'HashRef',
644             via {
645             if (my $f = Cfn::TypeLibrary::try_function($_)) {
646             return $f
647             } else {
648             die 'Only accepts functions';
649             }
650             },
651             from 'ArrayRef',
652             via {
653             Cfn::Value::Array->new(Value => [
654             map {
655             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping')->coerce($_)
656             } @$_
657             ]);
658             };
659              
660             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
661             as 'Cfn::Value';
662              
663             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
664             from 'HashRef',
665             via {
666             if (my $f = Cfn::TypeLibrary::try_function($_)) {
667             return $f
668             } else {
669             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::BlockDeviceMapping->new( %$_ );
670             }
671             };
672              
673             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::BlockDeviceMapping {
674 1     1   3934 use Moose;
  1         3  
  1         7  
675 1     1   7193 use MooseX::StrictConstructor;
  1         5  
  1         8  
676             extends 'Cfn::Value::TypedValue';
677            
678             has DeviceName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
679             has Ebs => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ebs', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
680             has NoDevice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
681             has VirtualName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
682             }
683              
684             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData',
685             as 'Cfn::Value';
686              
687             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData',
688             from 'HashRef',
689             via {
690             if (my $f = Cfn::TypeLibrary::try_function($_)) {
691             return $f
692             } else {
693             return Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::LaunchTemplateData->new( %$_ );
694             }
695             };
696              
697             package Cfn::Resource::Properties::Object::AWS::EC2::LaunchTemplate::LaunchTemplateData {
698 1     1   3870 use Moose;
  1         3  
  1         6  
699 1     1   7064 use MooseX::StrictConstructor;
  1         3  
  1         8  
700             extends 'Cfn::Value::TypedValue';
701            
702             has BlockDeviceMappings => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
703             has CapacityReservationSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
704             has CpuOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
705             has CreditSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
706             has DisableApiTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
707             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
708             has ElasticGpuSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
709             has ElasticInferenceAccelerators => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
710             has EnclaveOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::EnclaveOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
711             has HibernationOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
712             has IamInstanceProfile => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
713             has ImageId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
714             has InstanceInitiatedShutdownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
715             has InstanceMarketOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
716             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
717             has KernelId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
718             has KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
719             has LicenseSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
720             has MetadataOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
721             has Monitoring => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
722             has NetworkInterfaces => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
723             has Placement => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
724             has RamDiskId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
725             has SecurityGroupIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
726             has SecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
727             has TagSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
728             has UserData => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
729             }
730              
731             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate {
732 1     1   3968 use Moose;
  1         3  
  1         6  
733 1     1   6803 use MooseX::StrictConstructor;
  1         4  
  1         5  
734             extends 'Cfn::Resource::Properties';
735            
736             has LaunchTemplateData => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
737             has LaunchTemplateName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
738             }
739              
740             1;
741             ### main pod documentation begin ###
742              
743             =encoding UTF-8
744              
745             =head1 NAME
746              
747             Cfn::Resource::AWS::EC2::LaunchTemplate - Cfn resource for AWS::EC2::LaunchTemplate
748              
749             =head1 DESCRIPTION
750              
751             This module implements a Perl module that represents the CloudFormation object AWS::EC2::LaunchTemplate.
752              
753             See L<Cfn> for more information on how to use it.
754              
755             =head1 AUTHOR
756              
757             Jose Luis Martinez
758             CAPSiDE
759             jlmartinez@capside.com
760              
761             =head1 COPYRIGHT and LICENSE
762              
763             Copyright (c) 2013 by CAPSiDE
764             This code is distributed under the Apache 2 License. The full text of the
765             license can be found in the LICENSE file included with this module.
766              
767             =cut