File Coverage

blib/lib/Cfn/Resource/AWS/EC2/Instance.pm
Criterion Covered Total %
statement 104 104 100.0
branch n/a
condition n/a
subroutine 36 36 100.0
pod 0 2 0.0
total 140 142 98.5


line stmt bran cond sub pod time code
1             # AWS::EC2::Instance generated from spec 9.1.0
2 7     7   5376 use Moose::Util::TypeConstraints;
  7         20  
  7         75  
3              
4             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::EC2::Instance->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::EC2::Instance {
9 7     7   14752 use Moose;
  7         16  
  7         54  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 7 [ 'AvailabilityZone','PrivateDnsName','PrivateIp','PublicDnsName','PublicIp' ]
15             }
16             sub supported_regions {
17 1     1 0 1510 [ 'ap-east-1','ap-northeast-1','ap-northeast-2','ap-northeast-3','ap-south-1','ap-southeast-1','ap-southeast-2','ca-central-1','cn-north-1','cn-northwest-1','eu-central-1','eu-north-1','eu-west-1','eu-west-2','eu-west-3','me-south-1','sa-east-1','us-east-1','us-east-2','us-gov-east-1','us-gov-west-1','us-west-1','us-west-2' ]
18             }
19             }
20              
21              
22             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecification',
23             as 'Cfn::Value',
24             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
25             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
26              
27             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecification',
28             from 'HashRef',
29             via {
30             if (my $f = Cfn::TypeLibrary::try_function($_)) {
31             return $f
32             } else {
33             die 'Only accepts functions';
34             }
35             },
36             from 'ArrayRef',
37             via {
38             Cfn::Value::Array->new(Value => [
39             map {
40             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecification')->coerce($_)
41             } @$_
42             ]);
43             };
44              
45             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecification',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecification',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecificationValue->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecificationValue {
59 7     7   50848 use Moose;
  7         16  
  7         38  
60 7     7   44785 use MooseX::StrictConstructor;
  7         46539  
  7         57  
61             extends 'Cfn::Value::TypedValue';
62            
63             has Primary => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
65             }
66              
67             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::NoDevice',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::NoDevice',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::AWS::EC2::Instance::NoDeviceValue->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::AWS::EC2::Instance::NoDeviceValue {
81 7     7   36562 use Moose;
  7         18  
  7         37  
82 7     7   44331 use MooseX::StrictConstructor;
  7         19  
  7         36  
83             extends 'Cfn::Value::TypedValue';
84            
85             }
86             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address',
87             as 'Cfn::Value',
88             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
89             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
90              
91             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address',
92             from 'HashRef',
93             via {
94             if (my $f = Cfn::TypeLibrary::try_function($_)) {
95             return $f
96             } else {
97             die 'Only accepts functions';
98             }
99             },
100             from 'ArrayRef',
101             via {
102             Cfn::Value::Array->new(Value => [
103             map {
104             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address')->coerce($_)
105             } @$_
106             ]);
107             };
108              
109             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address',
110             as 'Cfn::Value';
111              
112             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address',
113             from 'HashRef',
114             via {
115             if (my $f = Cfn::TypeLibrary::try_function($_)) {
116             return $f
117             } else {
118             return Cfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6AddressValue->new( %$_ );
119             }
120             };
121              
122             package Cfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6AddressValue {
123 7     7   23518 use Moose;
  7         29  
  7         38  
124 7     7   44739 use MooseX::StrictConstructor;
  7         20  
  7         39  
125             extends 'Cfn::Value::TypedValue';
126            
127             has Ipv6Address => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
128             }
129              
130             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::Ebs',
131             as 'Cfn::Value';
132              
133             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::Ebs',
134             from 'HashRef',
135             via {
136             if (my $f = Cfn::TypeLibrary::try_function($_)) {
137             return $f
138             } else {
139             return Cfn::Resource::Properties::AWS::EC2::Instance::EbsValue->new( %$_ );
140             }
141             };
142              
143             package Cfn::Resource::Properties::AWS::EC2::Instance::EbsValue {
144 7     7   23002 use Moose;
  7         19  
  7         42  
145 7     7   43326 use MooseX::StrictConstructor;
  7         20  
  7         36  
146             extends 'Cfn::Value::TypedValue';
147            
148             has DeleteOnTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
149             has Encrypted => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
150             has Iops => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
151             has KmsKeyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
152             has SnapshotId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
153             has VolumeSize => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
154             has VolumeType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
155             }
156             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::AssociationParameter',
157             as 'Cfn::Value',
158             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
159             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
160              
161             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::AssociationParameter',
162             from 'HashRef',
163             via {
164             if (my $f = Cfn::TypeLibrary::try_function($_)) {
165             return $f
166             } else {
167             die 'Only accepts functions';
168             }
169             },
170             from 'ArrayRef',
171             via {
172             Cfn::Value::Array->new(Value => [
173             map {
174             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::AssociationParameter')->coerce($_)
175             } @$_
176             ]);
177             };
178              
179             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::AssociationParameter',
180             as 'Cfn::Value';
181              
182             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::AssociationParameter',
183             from 'HashRef',
184             via {
185             if (my $f = Cfn::TypeLibrary::try_function($_)) {
186             return $f
187             } else {
188             return Cfn::Resource::Properties::AWS::EC2::Instance::AssociationParameterValue->new( %$_ );
189             }
190             };
191              
192             package Cfn::Resource::Properties::AWS::EC2::Instance::AssociationParameterValue {
193 7     7   24156 use Moose;
  7         27  
  7         36  
194 7     7   44418 use MooseX::StrictConstructor;
  7         17  
  7         38  
195             extends 'Cfn::Value::TypedValue';
196            
197             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
198             has Value => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
199             }
200             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::Volume',
201             as 'Cfn::Value',
202             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
203             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
204              
205             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::Volume',
206             from 'HashRef',
207             via {
208             if (my $f = Cfn::TypeLibrary::try_function($_)) {
209             return $f
210             } else {
211             die 'Only accepts functions';
212             }
213             },
214             from 'ArrayRef',
215             via {
216             Cfn::Value::Array->new(Value => [
217             map {
218             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::Volume')->coerce($_)
219             } @$_
220             ]);
221             };
222              
223             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::Volume',
224             as 'Cfn::Value';
225              
226             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::Volume',
227             from 'HashRef',
228             via {
229             if (my $f = Cfn::TypeLibrary::try_function($_)) {
230             return $f
231             } else {
232             return Cfn::Resource::Properties::AWS::EC2::Instance::VolumeValue->new( %$_ );
233             }
234             };
235              
236             package Cfn::Resource::Properties::AWS::EC2::Instance::VolumeValue {
237 7     7   23858 use Moose;
  7         25  
  7         38  
238 7     7   44166 use MooseX::StrictConstructor;
  7         19  
  7         38  
239             extends 'Cfn::Value::TypedValue';
240            
241             has Device => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
242             has VolumeId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
243             }
244             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation',
245             as 'Cfn::Value',
246             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
247             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
248              
249             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation',
250             from 'HashRef',
251             via {
252             if (my $f = Cfn::TypeLibrary::try_function($_)) {
253             return $f
254             } else {
255             die 'Only accepts functions';
256             }
257             },
258             from 'ArrayRef',
259             via {
260             Cfn::Value::Array->new(Value => [
261             map {
262             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation')->coerce($_)
263             } @$_
264             ]);
265             };
266              
267             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation',
268             as 'Cfn::Value';
269              
270             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation',
271             from 'HashRef',
272             via {
273             if (my $f = Cfn::TypeLibrary::try_function($_)) {
274             return $f
275             } else {
276             return Cfn::Resource::Properties::AWS::EC2::Instance::SsmAssociationValue->new( %$_ );
277             }
278             };
279              
280             package Cfn::Resource::Properties::AWS::EC2::Instance::SsmAssociationValue {
281 7     7   23656 use Moose;
  7         20  
  7         82  
282 7     7   44097 use MooseX::StrictConstructor;
  7         21  
  7         34  
283             extends 'Cfn::Value::TypedValue';
284            
285             has AssociationParameters => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::AssociationParameter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
286             has DocumentName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
287             }
288             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface',
289             as 'Cfn::Value',
290             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
291             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
292              
293             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface',
294             from 'HashRef',
295             via {
296             if (my $f = Cfn::TypeLibrary::try_function($_)) {
297             return $f
298             } else {
299             die 'Only accepts functions';
300             }
301             },
302             from 'ArrayRef',
303             via {
304             Cfn::Value::Array->new(Value => [
305             map {
306             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface')->coerce($_)
307             } @$_
308             ]);
309             };
310              
311             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface',
312             as 'Cfn::Value';
313              
314             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface',
315             from 'HashRef',
316             via {
317             if (my $f = Cfn::TypeLibrary::try_function($_)) {
318             return $f
319             } else {
320             return Cfn::Resource::Properties::AWS::EC2::Instance::NetworkInterfaceValue->new( %$_ );
321             }
322             };
323              
324             package Cfn::Resource::Properties::AWS::EC2::Instance::NetworkInterfaceValue {
325 7     7   23135 use Moose;
  7         18  
  7         44  
326 7     7   43258 use MooseX::StrictConstructor;
  7         15  
  7         40  
327             extends 'Cfn::Value::TypedValue';
328            
329             has AssociatePublicIpAddress => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
330             has DeleteOnTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
331             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
332             has DeviceIndex => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
333             has GroupSet => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
334             has Ipv6AddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
335             has Ipv6Addresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
336             has NetworkInterfaceId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
337             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
338             has PrivateIpAddresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::PrivateIpAddressSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
339             has SecondaryPrivateIpAddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
340             has SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
341             }
342             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification',
343             as 'Cfn::Value',
344             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
345             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
346              
347             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification',
348             from 'HashRef',
349             via {
350             if (my $f = Cfn::TypeLibrary::try_function($_)) {
351             return $f
352             } else {
353             die 'Only accepts functions';
354             }
355             },
356             from 'ArrayRef',
357             via {
358             Cfn::Value::Array->new(Value => [
359             map {
360             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification')->coerce($_)
361             } @$_
362             ]);
363             };
364              
365             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification',
366             as 'Cfn::Value';
367              
368             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification',
369             from 'HashRef',
370             via {
371             if (my $f = Cfn::TypeLibrary::try_function($_)) {
372             return $f
373             } else {
374             return Cfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecificationValue->new( %$_ );
375             }
376             };
377              
378             package Cfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecificationValue {
379 7     7   24266 use Moose;
  7         19  
  7         55  
380 7     7   43604 use MooseX::StrictConstructor;
  7         16  
  7         41  
381             extends 'Cfn::Value::TypedValue';
382            
383             has LicenseConfigurationArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
384             }
385              
386             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::LaunchTemplateSpecification',
387             as 'Cfn::Value';
388              
389             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::LaunchTemplateSpecification',
390             from 'HashRef',
391             via {
392             if (my $f = Cfn::TypeLibrary::try_function($_)) {
393             return $f
394             } else {
395             return Cfn::Resource::Properties::AWS::EC2::Instance::LaunchTemplateSpecificationValue->new( %$_ );
396             }
397             };
398              
399             package Cfn::Resource::Properties::AWS::EC2::Instance::LaunchTemplateSpecificationValue {
400 7     7   22138 use Moose;
  7         17  
  7         36  
401 7     7   43819 use MooseX::StrictConstructor;
  7         20  
  7         37  
402             extends 'Cfn::Value::TypedValue';
403            
404             has LaunchTemplateId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
405             has LaunchTemplateName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
406             has Version => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
407             }
408             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
409             as 'Cfn::Value',
410             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
411             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
412              
413             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
414             from 'HashRef',
415             via {
416             if (my $f = Cfn::TypeLibrary::try_function($_)) {
417             return $f
418             } else {
419             die 'Only accepts functions';
420             }
421             },
422             from 'ArrayRef',
423             via {
424             Cfn::Value::Array->new(Value => [
425             map {
426             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator')->coerce($_)
427             } @$_
428             ]);
429             };
430              
431             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
432             as 'Cfn::Value';
433              
434             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
435             from 'HashRef',
436             via {
437             if (my $f = Cfn::TypeLibrary::try_function($_)) {
438             return $f
439             } else {
440             return Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAcceleratorValue->new( %$_ );
441             }
442             };
443              
444             package Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAcceleratorValue {
445 7     7   23915 use Moose;
  7         25  
  7         39  
446 7     7   43726 use MooseX::StrictConstructor;
  7         23  
  7         36  
447             extends 'Cfn::Value::TypedValue';
448            
449             has Count => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
450             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
451             }
452             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
453             as 'Cfn::Value',
454             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
455             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
456              
457             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
458             from 'HashRef',
459             via {
460             if (my $f = Cfn::TypeLibrary::try_function($_)) {
461             return $f
462             } else {
463             die 'Only accepts functions';
464             }
465             },
466             from 'ArrayRef',
467             via {
468             Cfn::Value::Array->new(Value => [
469             map {
470             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification')->coerce($_)
471             } @$_
472             ]);
473             };
474              
475             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
476             as 'Cfn::Value';
477              
478             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
479             from 'HashRef',
480             via {
481             if (my $f = Cfn::TypeLibrary::try_function($_)) {
482             return $f
483             } else {
484             return Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecificationValue->new( %$_ );
485             }
486             };
487              
488             package Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecificationValue {
489 7     7   23596 use Moose;
  7         20  
  7         35  
490 7     7   43590 use MooseX::StrictConstructor;
  7         18  
  7         37  
491             extends 'Cfn::Value::TypedValue';
492            
493             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
494             }
495              
496             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecification',
497             as 'Cfn::Value';
498              
499             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecification',
500             from 'HashRef',
501             via {
502             if (my $f = Cfn::TypeLibrary::try_function($_)) {
503             return $f
504             } else {
505             return Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecificationValue->new( %$_ );
506             }
507             };
508              
509             package Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecificationValue {
510 7     7   22674 use Moose;
  7         18  
  7         42  
511 7     7   44116 use MooseX::StrictConstructor;
  7         17  
  7         33  
512             extends 'Cfn::Value::TypedValue';
513            
514             has CPUCredits => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
515             }
516              
517             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptions',
518             as 'Cfn::Value';
519              
520             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptions',
521             from 'HashRef',
522             via {
523             if (my $f = Cfn::TypeLibrary::try_function($_)) {
524             return $f
525             } else {
526             return Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptionsValue->new( %$_ );
527             }
528             };
529              
530             package Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptionsValue {
531 7     7   22211 use Moose;
  7         18  
  7         49  
532 7     7   43836 use MooseX::StrictConstructor;
  7         17  
  7         36  
533             extends 'Cfn::Value::TypedValue';
534            
535             has CoreCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
536             has ThreadsPerCore => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
537             }
538             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
539             as 'Cfn::Value',
540             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
541             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
542              
543             coerce 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
544             from 'HashRef',
545             via {
546             if (my $f = Cfn::TypeLibrary::try_function($_)) {
547             return $f
548             } else {
549             die 'Only accepts functions';
550             }
551             },
552             from 'ArrayRef',
553             via {
554             Cfn::Value::Array->new(Value => [
555             map {
556             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping')->coerce($_)
557             } @$_
558             ]);
559             };
560              
561             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
562             as 'Cfn::Value';
563              
564             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
565             from 'HashRef',
566             via {
567             if (my $f = Cfn::TypeLibrary::try_function($_)) {
568             return $f
569             } else {
570             return Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMappingValue->new( %$_ );
571             }
572             };
573              
574             package Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMappingValue {
575 7     7   23643 use Moose;
  7         20  
  7         45  
576 7     7   43524 use MooseX::StrictConstructor;
  7         17  
  7         38  
577             extends 'Cfn::Value::TypedValue';
578            
579             has DeviceName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
580             has Ebs => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::Ebs', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
581             has NoDevice => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::NoDevice', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
582             has VirtualName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
583             }
584              
585             package Cfn::Resource::Properties::AWS::EC2::Instance {
586 7     7   21859 use Moose;
  7         21  
  7         35  
587 7     7   43928 use MooseX::StrictConstructor;
  7         20  
  7         38  
588             extends 'Cfn::Resource::Properties';
589            
590             has AdditionalInfo => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
591             has Affinity => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
592             has AvailabilityZone => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
593             has BlockDeviceMappings => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
594             has CpuOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
595             has CreditSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
596             has DisableApiTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
597             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
598             has ElasticGpuSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
599             has ElasticInferenceAccelerators => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
600             has HostId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
601             has IamInstanceProfile => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
602             has ImageId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
603             has InstanceInitiatedShutdownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
604             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
605             has Ipv6AddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
606             has Ipv6Addresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
607             has KernelId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
608             has KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
609             has LaunchTemplate => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::LaunchTemplateSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
610             has LicenseSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
611             has Monitoring => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
612             has NetworkInterfaces => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
613             has PlacementGroupName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
614             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
615             has RamdiskId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
616             has SecurityGroupIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
617             has SecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
618             has SourceDestCheck => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
619             has SsmAssociations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
620             has SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
621             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
622             has Tenancy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
623             has UserData => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
624             has Volumes => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::Volume', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
625             }
626              
627             1;