File Coverage

blib/lib/Cfn/Resource/AWS/EC2/LaunchTemplate.pm
Criterion Covered Total %
statement 140 140 100.0
branch n/a
condition n/a
subroutine 48 48 100.0
pod 0 2 0.0
total 188 190 98.9


line stmt bran cond sub pod time code
1             # AWS::EC2::LaunchTemplate generated from spec 11.1.0
2 1     1   816 use Moose::Util::TypeConstraints;
  1         3  
  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   2169 use Moose;
  1         3  
  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 7 [ 'DefaultVersionNumber','LatestVersionNumber' ]
15             }
16             sub supported_regions {
17 1     1 0 1207 [ '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::AWS::EC2::LaunchTemplate::SpotOptionsValue->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::SpotOptionsValue {
37 1     1   7416 use Moose;
  1         3  
  1         7  
38 1     1   6706 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::AWS::EC2::LaunchTemplate::PrivateIpAddValue->new( %$_ );
80             }
81             };
82              
83             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAddValue {
84 1     1   4048 use Moose;
  1         3  
  1         7  
85 1     1   7068 use MooseX::StrictConstructor;
  1         3  
  1         6  
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::AWS::EC2::LaunchTemplate::Ipv6AddValue->new( %$_ );
124             }
125             };
126              
127             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6AddValue {
128 1     1   3789 use Moose;
  1         3  
  1         8  
129 1     1   7182 use MooseX::StrictConstructor;
  1         3  
  1         6  
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::AWS::EC2::LaunchTemplate::EbsValue->new( %$_ );
145             }
146             };
147              
148             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::EbsValue {
149 1     1   3467 use Moose;
  1         4  
  1         8  
150 1     1   6694 use MooseX::StrictConstructor;
  1         4  
  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::AWS::EC2::LaunchTemplate::CapacityReservationTargetValue->new( %$_ );
172             }
173             };
174              
175             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationTargetValue {
176 1     1   3532 use Moose;
  1         3  
  1         13  
177 1     1   6656 use MooseX::StrictConstructor;
  1         2  
  1         8  
178             extends 'Cfn::Value::TypedValue';
179            
180             has CapacityReservationId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
181             }
182             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
183             as 'Cfn::Value',
184             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
185             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
186              
187             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
188             from 'HashRef',
189             via {
190             if (my $f = Cfn::TypeLibrary::try_function($_)) {
191             return $f
192             } else {
193             die 'Only accepts functions';
194             }
195             },
196             from 'ArrayRef',
197             via {
198             Cfn::Value::Array->new(Value => [
199             map {
200             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification')->coerce($_)
201             } @$_
202             ]);
203             };
204              
205             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
206             as 'Cfn::Value';
207              
208             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification',
209             from 'HashRef',
210             via {
211             if (my $f = Cfn::TypeLibrary::try_function($_)) {
212             return $f
213             } else {
214             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecificationValue->new( %$_ );
215             }
216             };
217              
218             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecificationValue {
219 1     1   3662 use Moose;
  1         4  
  1         8  
220 1     1   6899 use MooseX::StrictConstructor;
  1         4  
  1         5  
221             extends 'Cfn::Value::TypedValue';
222            
223             has ResourceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
224             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
225             }
226              
227             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement',
228             as 'Cfn::Value';
229              
230             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement',
231             from 'HashRef',
232             via {
233             if (my $f = Cfn::TypeLibrary::try_function($_)) {
234             return $f
235             } else {
236             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::PlacementValue->new( %$_ );
237             }
238             };
239              
240             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::PlacementValue {
241 1     1   3435 use Moose;
  1         4  
  1         8  
242 1     1   6641 use MooseX::StrictConstructor;
  1         5  
  1         6  
243             extends 'Cfn::Value::TypedValue';
244            
245             has Affinity => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
246             has AvailabilityZone => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
247             has GroupName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             has HostId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             has HostResourceGroupArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             has PartitionNumber => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
251             has SpreadDomain => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
252             has Tenancy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
253             }
254             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
255             as 'Cfn::Value',
256             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
257             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
258              
259             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
260             from 'HashRef',
261             via {
262             if (my $f = Cfn::TypeLibrary::try_function($_)) {
263             return $f
264             } else {
265             die 'Only accepts functions';
266             }
267             },
268             from 'ArrayRef',
269             via {
270             Cfn::Value::Array->new(Value => [
271             map {
272             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface')->coerce($_)
273             } @$_
274             ]);
275             };
276              
277             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
278             as 'Cfn::Value';
279              
280             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
281             from 'HashRef',
282             via {
283             if (my $f = Cfn::TypeLibrary::try_function($_)) {
284             return $f
285             } else {
286             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterfaceValue->new( %$_ );
287             }
288             };
289              
290             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterfaceValue {
291 1     1   3719 use Moose;
  1         2  
  1         7  
292 1     1   6560 use MooseX::StrictConstructor;
  1         2  
  1         8  
293             extends 'Cfn::Value::TypedValue';
294            
295             has AssociatePublicIpAddress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             has DeleteOnTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
298             has DeviceIndex => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
299             has Groups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
300             has InterfaceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
301             has Ipv6AddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
302             has Ipv6Addresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
303             has NetworkInterfaceId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
304             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
305             has PrivateIpAddresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
306             has SecondaryPrivateIpAddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
307             has SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
308             }
309              
310             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring',
311             as 'Cfn::Value';
312              
313             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring',
314             from 'HashRef',
315             via {
316             if (my $f = Cfn::TypeLibrary::try_function($_)) {
317             return $f
318             } else {
319             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MonitoringValue->new( %$_ );
320             }
321             };
322              
323             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MonitoringValue {
324 1     1   3574 use Moose;
  1         2  
  1         9  
325 1     1   6581 use MooseX::StrictConstructor;
  1         3  
  1         7  
326             extends 'Cfn::Value::TypedValue';
327            
328             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
329             }
330              
331             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptions',
332             as 'Cfn::Value';
333              
334             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptions',
335             from 'HashRef',
336             via {
337             if (my $f = Cfn::TypeLibrary::try_function($_)) {
338             return $f
339             } else {
340             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptionsValue->new( %$_ );
341             }
342             };
343              
344             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptionsValue {
345 1     1   3352 use Moose;
  1         2  
  1         6  
346 1     1   6568 use MooseX::StrictConstructor;
  1         5  
  1         7  
347             extends 'Cfn::Value::TypedValue';
348            
349             has HttpEndpoint => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
350             has HttpPutResponseHopLimit => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
351             has HttpTokens => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
352             }
353             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
354             as 'Cfn::Value',
355             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
356             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
357              
358             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
359             from 'HashRef',
360             via {
361             if (my $f = Cfn::TypeLibrary::try_function($_)) {
362             return $f
363             } else {
364             die 'Only accepts functions';
365             }
366             },
367             from 'ArrayRef',
368             via {
369             Cfn::Value::Array->new(Value => [
370             map {
371             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification')->coerce($_)
372             } @$_
373             ]);
374             };
375              
376             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
377             as 'Cfn::Value';
378              
379             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
380             from 'HashRef',
381             via {
382             if (my $f = Cfn::TypeLibrary::try_function($_)) {
383             return $f
384             } else {
385             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecificationValue->new( %$_ );
386             }
387             };
388              
389             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecificationValue {
390 1     1   3648 use Moose;
  1         5  
  1         6  
391 1     1   6550 use MooseX::StrictConstructor;
  1         3  
  1         6  
392             extends 'Cfn::Value::TypedValue';
393            
394             has LicenseConfigurationArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
395             }
396             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
397             as 'Cfn::Value',
398             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
399             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
400              
401             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
402             from 'HashRef',
403             via {
404             if (my $f = Cfn::TypeLibrary::try_function($_)) {
405             return $f
406             } else {
407             die 'Only accepts functions';
408             }
409             },
410             from 'ArrayRef',
411             via {
412             Cfn::Value::Array->new(Value => [
413             map {
414             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator')->coerce($_)
415             } @$_
416             ]);
417             };
418              
419             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
420             as 'Cfn::Value';
421              
422             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
423             from 'HashRef',
424             via {
425             if (my $f = Cfn::TypeLibrary::try_function($_)) {
426             return $f
427             } else {
428             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAcceleratorValue->new( %$_ );
429             }
430             };
431              
432             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAcceleratorValue {
433 1     1   3613 use Moose;
  1         3  
  1         6  
434 1     1   6637 use MooseX::StrictConstructor;
  1         2  
  1         5  
435             extends 'Cfn::Value::TypedValue';
436            
437             has Count => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
438             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
439             }
440              
441             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions',
442             as 'Cfn::Value';
443              
444             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions',
445             from 'HashRef',
446             via {
447             if (my $f = Cfn::TypeLibrary::try_function($_)) {
448             return $f
449             } else {
450             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptionsValue->new( %$_ );
451             }
452             };
453              
454             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptionsValue {
455 1     1   3450 use Moose;
  1         2  
  1         5  
456 1     1   6729 use MooseX::StrictConstructor;
  1         3  
  1         4  
457             extends 'Cfn::Value::TypedValue';
458            
459             has MarketType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
460             has SpotOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::SpotOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
461             }
462              
463             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile',
464             as 'Cfn::Value';
465              
466             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile',
467             from 'HashRef',
468             via {
469             if (my $f = Cfn::TypeLibrary::try_function($_)) {
470             return $f
471             } else {
472             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfileValue->new( %$_ );
473             }
474             };
475              
476             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfileValue {
477 1     1   3407 use Moose;
  1         3  
  1         8  
478 1     1   6561 use MooseX::StrictConstructor;
  1         4  
  1         6  
479             extends 'Cfn::Value::TypedValue';
480            
481             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
482             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
483             }
484              
485             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions',
486             as 'Cfn::Value';
487              
488             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions',
489             from 'HashRef',
490             via {
491             if (my $f = Cfn::TypeLibrary::try_function($_)) {
492             return $f
493             } else {
494             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptionsValue->new( %$_ );
495             }
496             };
497              
498             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptionsValue {
499 1     1   3382 use Moose;
  1         2  
  1         9  
500 1     1   6706 use MooseX::StrictConstructor;
  1         3  
  1         6  
501             extends 'Cfn::Value::TypedValue';
502            
503             has Configured => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
504             }
505             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
506             as 'Cfn::Value',
507             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
508             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
509              
510             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
511             from 'HashRef',
512             via {
513             if (my $f = Cfn::TypeLibrary::try_function($_)) {
514             return $f
515             } else {
516             die 'Only accepts functions';
517             }
518             },
519             from 'ArrayRef',
520             via {
521             Cfn::Value::Array->new(Value => [
522             map {
523             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification')->coerce($_)
524             } @$_
525             ]);
526             };
527              
528             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
529             as 'Cfn::Value';
530              
531             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
532             from 'HashRef',
533             via {
534             if (my $f = Cfn::TypeLibrary::try_function($_)) {
535             return $f
536             } else {
537             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecificationValue->new( %$_ );
538             }
539             };
540              
541             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecificationValue {
542 1     1   3977 use Moose;
  1         3  
  1         5  
543 1     1   6624 use MooseX::StrictConstructor;
  1         3  
  1         6  
544             extends 'Cfn::Value::TypedValue';
545            
546             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
547             }
548              
549             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification',
550             as 'Cfn::Value';
551              
552             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification',
553             from 'HashRef',
554             via {
555             if (my $f = Cfn::TypeLibrary::try_function($_)) {
556             return $f
557             } else {
558             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecificationValue->new( %$_ );
559             }
560             };
561              
562             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecificationValue {
563 1     1   3436 use Moose;
  1         3  
  1         8  
564 1     1   6717 use MooseX::StrictConstructor;
  1         4  
  1         6  
565             extends 'Cfn::Value::TypedValue';
566            
567             has CpuCredits => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
568             }
569              
570             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions',
571             as 'Cfn::Value';
572              
573             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions',
574             from 'HashRef',
575             via {
576             if (my $f = Cfn::TypeLibrary::try_function($_)) {
577             return $f
578             } else {
579             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptionsValue->new( %$_ );
580             }
581             };
582              
583             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptionsValue {
584 1     1   3429 use Moose;
  1         3  
  1         8  
585 1     1   6688 use MooseX::StrictConstructor;
  1         2  
  1         10  
586             extends 'Cfn::Value::TypedValue';
587            
588             has CoreCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
589             has ThreadsPerCore => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
590             }
591              
592             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification',
593             as 'Cfn::Value';
594              
595             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification',
596             from 'HashRef',
597             via {
598             if (my $f = Cfn::TypeLibrary::try_function($_)) {
599             return $f
600             } else {
601             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecificationValue->new( %$_ );
602             }
603             };
604              
605             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecificationValue {
606 1     1   3378 use Moose;
  1         3  
  1         6  
607 1     1   6545 use MooseX::StrictConstructor;
  1         4  
  1         6  
608             extends 'Cfn::Value::TypedValue';
609            
610             has CapacityReservationPreference => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
611             has CapacityReservationTarget => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationTarget', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
612             }
613             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
614             as 'Cfn::Value',
615             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
616             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
617              
618             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
619             from 'HashRef',
620             via {
621             if (my $f = Cfn::TypeLibrary::try_function($_)) {
622             return $f
623             } else {
624             die 'Only accepts functions';
625             }
626             },
627             from 'ArrayRef',
628             via {
629             Cfn::Value::Array->new(Value => [
630             map {
631             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping')->coerce($_)
632             } @$_
633             ]);
634             };
635              
636             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
637             as 'Cfn::Value';
638              
639             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
640             from 'HashRef',
641             via {
642             if (my $f = Cfn::TypeLibrary::try_function($_)) {
643             return $f
644             } else {
645             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMappingValue->new( %$_ );
646             }
647             };
648              
649             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMappingValue {
650 1     1   3623 use Moose;
  1         3  
  1         7  
651 1     1   6568 use MooseX::StrictConstructor;
  1         3  
  1         8  
652             extends 'Cfn::Value::TypedValue';
653            
654             has DeviceName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
655             has Ebs => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ebs', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
656             has NoDevice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
657             has VirtualName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
658             }
659              
660             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData',
661             as 'Cfn::Value';
662              
663             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData',
664             from 'HashRef',
665             via {
666             if (my $f = Cfn::TypeLibrary::try_function($_)) {
667             return $f
668             } else {
669             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateDataValue->new( %$_ );
670             }
671             };
672              
673             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateDataValue {
674 1     1   3357 use Moose;
  1         3  
  1         5  
675 1     1   6578 use MooseX::StrictConstructor;
  1         2  
  1         6  
676             extends 'Cfn::Value::TypedValue';
677            
678             has BlockDeviceMappings => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
679             has CapacityReservationSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
680             has CpuOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
681             has CreditSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
682             has DisableApiTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
683             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
684             has ElasticGpuSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
685             has ElasticInferenceAccelerators => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
686             has HibernationOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
687             has IamInstanceProfile => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
688             has ImageId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
689             has InstanceInitiatedShutdownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
690             has InstanceMarketOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
691             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
692             has KernelId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
693             has KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
694             has LicenseSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
695             has MetadataOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MetadataOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
696             has Monitoring => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
697             has NetworkInterfaces => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
698             has Placement => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
699             has RamDiskId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
700             has SecurityGroupIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
701             has SecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
702             has TagSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
703             has UserData => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
704             }
705              
706             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate {
707 1     1   3703 use Moose;
  1         4  
  1         7  
708 1     1   6540 use MooseX::StrictConstructor;
  1         3  
  1         7  
709             extends 'Cfn::Resource::Properties';
710            
711             has LaunchTemplateData => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
712             has LaunchTemplateName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
713             }
714              
715             1;