File Coverage

blib/lib/Cfn/Resource/AWS/EC2/LaunchTemplate.pm
Criterion Covered Total %
statement 134 134 100.0
branch n/a
condition n/a
subroutine 46 46 100.0
pod 0 2 0.0
total 180 182 98.9


line stmt bran cond sub pod time code
1             # AWS::EC2::LaunchTemplate generated from spec 5.3.0
2 1     1   699 use Moose::Util::TypeConstraints;
  1         3  
  1         10  
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   2149 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 5 [ 'DefaultVersionNumber','LatestVersionNumber' ]
15             }
16             sub supported_regions {
17 1     1 0 1557 [ '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','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   7190 use Moose;
  1         4  
  1         6  
38 1     1   6566 use MooseX::StrictConstructor;
  1         3  
  1         10  
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   3797 use Moose;
  1         4  
  1         7  
85 1     1   6666 use MooseX::StrictConstructor;
  1         3  
  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::AWS::EC2::LaunchTemplate::Ipv6AddValue->new( %$_ );
124             }
125             };
126              
127             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6AddValue {
128 1     1   3576 use Moose;
  1         3  
  1         5  
129 1     1   6599 use MooseX::StrictConstructor;
  1         2  
  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   3323 use Moose;
  1         3  
  1         5  
150 1     1   6618 use MooseX::StrictConstructor;
  1         2  
  1         7  
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   3457 use Moose;
  1         2  
  1         14  
177 1     1   6976 use MooseX::StrictConstructor;
  1         3  
  1         6  
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   3582 use Moose;
  1         3  
  1         5  
220 1     1   6621 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   3412 use Moose;
  1         4  
  1         6  
242 1     1   6633 use MooseX::StrictConstructor;
  1         3  
  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 Tenancy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             }
251             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
252             as 'Cfn::Value',
253             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
254             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
255              
256             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
257             from 'HashRef',
258             via {
259             if (my $f = Cfn::TypeLibrary::try_function($_)) {
260             return $f
261             } else {
262             die 'Only accepts functions';
263             }
264             },
265             from 'ArrayRef',
266             via {
267             Cfn::Value::Array->new(Value => [
268             map {
269             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface')->coerce($_)
270             } @$_
271             ]);
272             };
273              
274             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
275             as 'Cfn::Value';
276              
277             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface',
278             from 'HashRef',
279             via {
280             if (my $f = Cfn::TypeLibrary::try_function($_)) {
281             return $f
282             } else {
283             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterfaceValue->new( %$_ );
284             }
285             };
286              
287             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterfaceValue {
288 1     1   3665 use Moose;
  1         3  
  1         5  
289 1     1   6587 use MooseX::StrictConstructor;
  1         4  
  1         4  
290             extends 'Cfn::Value::TypedValue';
291            
292             has AssociatePublicIpAddress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
293             has DeleteOnTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
294             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
295             has DeviceIndex => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             has Groups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             has InterfaceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
298             has Ipv6AddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
299             has Ipv6Addresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ipv6Add', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
300             has NetworkInterfaceId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
301             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
302             has PrivateIpAddresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::PrivateIpAdd', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
303             has SecondaryPrivateIpAddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
304             has SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
305             }
306              
307             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring',
308             as 'Cfn::Value';
309              
310             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring',
311             from 'HashRef',
312             via {
313             if (my $f = Cfn::TypeLibrary::try_function($_)) {
314             return $f
315             } else {
316             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MonitoringValue->new( %$_ );
317             }
318             };
319              
320             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::MonitoringValue {
321 1     1   3610 use Moose;
  1         3  
  1         6  
322 1     1   6708 use MooseX::StrictConstructor;
  1         3  
  1         6  
323             extends 'Cfn::Value::TypedValue';
324            
325             has Enabled => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
326             }
327             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
328             as 'Cfn::Value',
329             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
330             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
331              
332             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
333             from 'HashRef',
334             via {
335             if (my $f = Cfn::TypeLibrary::try_function($_)) {
336             return $f
337             } else {
338             die 'Only accepts functions';
339             }
340             },
341             from 'ArrayRef',
342             via {
343             Cfn::Value::Array->new(Value => [
344             map {
345             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification')->coerce($_)
346             } @$_
347             ]);
348             };
349              
350             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
351             as 'Cfn::Value';
352              
353             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification',
354             from 'HashRef',
355             via {
356             if (my $f = Cfn::TypeLibrary::try_function($_)) {
357             return $f
358             } else {
359             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecificationValue->new( %$_ );
360             }
361             };
362              
363             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecificationValue {
364 1     1   3587 use Moose;
  1         3  
  1         5  
365 1     1   6605 use MooseX::StrictConstructor;
  1         2  
  1         5  
366             extends 'Cfn::Value::TypedValue';
367            
368             has LicenseConfigurationArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
369             }
370             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
371             as 'Cfn::Value',
372             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
373             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
374              
375             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
376             from 'HashRef',
377             via {
378             if (my $f = Cfn::TypeLibrary::try_function($_)) {
379             return $f
380             } else {
381             die 'Only accepts functions';
382             }
383             },
384             from 'ArrayRef',
385             via {
386             Cfn::Value::Array->new(Value => [
387             map {
388             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator')->coerce($_)
389             } @$_
390             ]);
391             };
392              
393             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
394             as 'Cfn::Value';
395              
396             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator',
397             from 'HashRef',
398             via {
399             if (my $f = Cfn::TypeLibrary::try_function($_)) {
400             return $f
401             } else {
402             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAcceleratorValue->new( %$_ );
403             }
404             };
405              
406             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAcceleratorValue {
407 1     1   3594 use Moose;
  1         3  
  1         5  
408 1     1   6666 use MooseX::StrictConstructor;
  1         4  
  1         5  
409             extends 'Cfn::Value::TypedValue';
410            
411             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
412             }
413              
414             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions',
415             as 'Cfn::Value';
416              
417             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions',
418             from 'HashRef',
419             via {
420             if (my $f = Cfn::TypeLibrary::try_function($_)) {
421             return $f
422             } else {
423             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptionsValue->new( %$_ );
424             }
425             };
426              
427             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptionsValue {
428 1     1   3423 use Moose;
  1         2  
  1         15  
429 1     1   6599 use MooseX::StrictConstructor;
  1         4  
  1         5  
430             extends 'Cfn::Value::TypedValue';
431            
432             has MarketType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
433             has SpotOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::SpotOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
434             }
435              
436             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile',
437             as 'Cfn::Value';
438              
439             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile',
440             from 'HashRef',
441             via {
442             if (my $f = Cfn::TypeLibrary::try_function($_)) {
443             return $f
444             } else {
445             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfileValue->new( %$_ );
446             }
447             };
448              
449             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfileValue {
450 1     1   3329 use Moose;
  1         3  
  1         6  
451 1     1   6613 use MooseX::StrictConstructor;
  1         5  
  1         6  
452             extends 'Cfn::Value::TypedValue';
453            
454             has Arn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
455             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
456             }
457              
458             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions',
459             as 'Cfn::Value';
460              
461             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions',
462             from 'HashRef',
463             via {
464             if (my $f = Cfn::TypeLibrary::try_function($_)) {
465             return $f
466             } else {
467             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptionsValue->new( %$_ );
468             }
469             };
470              
471             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptionsValue {
472 1     1   3386 use Moose;
  1         4  
  1         6  
473 1     1   6557 use MooseX::StrictConstructor;
  1         4  
  1         5  
474             extends 'Cfn::Value::TypedValue';
475            
476             has Configured => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
477             }
478             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
479             as 'Cfn::Value',
480             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
481             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
482              
483             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
484             from 'HashRef',
485             via {
486             if (my $f = Cfn::TypeLibrary::try_function($_)) {
487             return $f
488             } else {
489             die 'Only accepts functions';
490             }
491             },
492             from 'ArrayRef',
493             via {
494             Cfn::Value::Array->new(Value => [
495             map {
496             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification')->coerce($_)
497             } @$_
498             ]);
499             };
500              
501             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
502             as 'Cfn::Value';
503              
504             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification',
505             from 'HashRef',
506             via {
507             if (my $f = Cfn::TypeLibrary::try_function($_)) {
508             return $f
509             } else {
510             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecificationValue->new( %$_ );
511             }
512             };
513              
514             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecificationValue {
515 1     1   3498 use Moose;
  1         3  
  1         7  
516 1     1   6626 use MooseX::StrictConstructor;
  1         4  
  1         6  
517             extends 'Cfn::Value::TypedValue';
518            
519             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
520             }
521              
522             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification',
523             as 'Cfn::Value';
524              
525             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification',
526             from 'HashRef',
527             via {
528             if (my $f = Cfn::TypeLibrary::try_function($_)) {
529             return $f
530             } else {
531             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecificationValue->new( %$_ );
532             }
533             };
534              
535             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecificationValue {
536 1     1   3424 use Moose;
  1         3  
  1         6  
537 1     1   6580 use MooseX::StrictConstructor;
  1         3  
  1         10  
538             extends 'Cfn::Value::TypedValue';
539            
540             has CpuCredits => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
541             }
542              
543             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions',
544             as 'Cfn::Value';
545              
546             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions',
547             from 'HashRef',
548             via {
549             if (my $f = Cfn::TypeLibrary::try_function($_)) {
550             return $f
551             } else {
552             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptionsValue->new( %$_ );
553             }
554             };
555              
556             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptionsValue {
557 1     1   3350 use Moose;
  1         2  
  1         6  
558 1     1   6941 use MooseX::StrictConstructor;
  1         4  
  1         4  
559             extends 'Cfn::Value::TypedValue';
560            
561             has CoreCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
562             has ThreadsPerCore => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
563             }
564              
565             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification',
566             as 'Cfn::Value';
567              
568             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification',
569             from 'HashRef',
570             via {
571             if (my $f = Cfn::TypeLibrary::try_function($_)) {
572             return $f
573             } else {
574             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecificationValue->new( %$_ );
575             }
576             };
577              
578             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecificationValue {
579 1     1   3349 use Moose;
  1         3  
  1         15  
580 1     1   6592 use MooseX::StrictConstructor;
  1         3  
  1         6  
581             extends 'Cfn::Value::TypedValue';
582            
583             has CapacityReservationPreference => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
584             has CapacityReservationTarget => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationTarget', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
585             }
586             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
587             as 'Cfn::Value',
588             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
589             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
590              
591             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
592             from 'HashRef',
593             via {
594             if (my $f = Cfn::TypeLibrary::try_function($_)) {
595             return $f
596             } else {
597             die 'Only accepts functions';
598             }
599             },
600             from 'ArrayRef',
601             via {
602             Cfn::Value::Array->new(Value => [
603             map {
604             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping')->coerce($_)
605             } @$_
606             ]);
607             };
608              
609             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
610             as 'Cfn::Value';
611              
612             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping',
613             from 'HashRef',
614             via {
615             if (my $f = Cfn::TypeLibrary::try_function($_)) {
616             return $f
617             } else {
618             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMappingValue->new( %$_ );
619             }
620             };
621              
622             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMappingValue {
623 1     1   3577 use Moose;
  1         2  
  1         9  
624 1     1   6615 use MooseX::StrictConstructor;
  1         3  
  1         5  
625             extends 'Cfn::Value::TypedValue';
626            
627             has DeviceName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
628             has Ebs => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Ebs', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
629             has NoDevice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
630             has VirtualName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
631             }
632              
633             subtype 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData',
634             as 'Cfn::Value';
635              
636             coerce 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData',
637             from 'HashRef',
638             via {
639             if (my $f = Cfn::TypeLibrary::try_function($_)) {
640             return $f
641             } else {
642             return Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateDataValue->new( %$_ );
643             }
644             };
645              
646             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateDataValue {
647 1     1   3423 use Moose;
  1         5  
  1         14  
648 1     1   6600 use MooseX::StrictConstructor;
  1         3  
  1         5  
649             extends 'Cfn::Value::TypedValue';
650            
651             has BlockDeviceMappings => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::BlockDeviceMapping', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
652             has CapacityReservationSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CapacityReservationSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
653             has CpuOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CpuOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
654             has CreditSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::CreditSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
655             has DisableApiTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
656             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
657             has ElasticGpuSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::ElasticGpuSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
658             has ElasticInferenceAccelerators => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateElasticInferenceAccelerator', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
659             has HibernationOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::HibernationOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
660             has IamInstanceProfile => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::IamInstanceProfile', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
661             has ImageId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
662             has InstanceInitiatedShutdownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
663             has InstanceMarketOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::InstanceMarketOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
664             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
665             has KernelId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
666             has KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
667             has LicenseSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::LicenseSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
668             has Monitoring => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Monitoring', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
669             has NetworkInterfaces => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::NetworkInterface', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
670             has Placement => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::Placement', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
671             has RamDiskId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
672             has SecurityGroupIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
673             has SecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
674             has TagSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::LaunchTemplate::TagSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
675             has UserData => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
676             }
677              
678             package Cfn::Resource::Properties::AWS::EC2::LaunchTemplate {
679 1     1   3600 use Moose;
  1         3  
  1         5  
680 1     1   6566 use MooseX::StrictConstructor;
  1         3  
  1         5  
681             extends 'Cfn::Resource::Properties';
682            
683             has LaunchTemplateData => (isa => 'Cfn::Resource::Properties::AWS::EC2::LaunchTemplate::LaunchTemplateData', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
684             has LaunchTemplateName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
685             }
686              
687             1;