File Coverage

blib/lib/Cfn/Resource/AWS/EC2/Instance.pm
Criterion Covered Total %
statement 110 110 100.0
branch n/a
condition n/a
subroutine 38 38 100.0
pod 0 2 0.0
total 148 150 98.6


line stmt bran cond sub pod time code
1             # AWS::EC2::Instance generated from spec 18.4.0
2 7     7   5583 use Moose::Util::TypeConstraints;
  7         24  
  7         83  
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   15494 use Moose;
  7         18  
  7         55  
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 6 [ 'AvailabilityZone','PrivateDnsName','PrivateIp','PublicDnsName','PublicIp' ]
15             }
16             sub supported_regions {
17 1     1 0 1177 [ 'af-south-1','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-south-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::Object::AWS::EC2::Instance::PrivateIpAddressSpecification->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::PrivateIpAddressSpecification {
59 7     7   53545 use Moose;
  7         23  
  7         40  
60 7     7   46509 use MooseX::StrictConstructor;
  7         53250  
  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::Object::AWS::EC2::Instance::NoDevice->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::NoDevice {
81 7     7   39014 use Moose;
  7         18  
  7         47  
82 7     7   46065 use MooseX::StrictConstructor;
  7         21  
  7         32  
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::Object::AWS::EC2::Instance::InstanceIpv6Address->new( %$_ );
119             }
120             };
121              
122             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::InstanceIpv6Address {
123 7     7   24180 use Moose;
  7         21  
  7         37  
124 7     7   45803 use MooseX::StrictConstructor;
  7         18  
  7         36  
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::Object::AWS::EC2::Instance::Ebs->new( %$_ );
140             }
141             };
142              
143             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::Ebs {
144 7     7   23214 use Moose;
  7         23  
  7         39  
145 7     7   45633 use MooseX::StrictConstructor;
  7         20  
  7         35  
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::Object::AWS::EC2::Instance::AssociationParameter->new( %$_ );
189             }
190             };
191              
192             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::AssociationParameter {
193 7     7   25094 use Moose;
  7         19  
  7         34  
194 7     7   46063 use MooseX::StrictConstructor;
  7         21  
  7         42  
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::Object::AWS::EC2::Instance::Volume->new( %$_ );
233             }
234             };
235              
236             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::Volume {
237 7     7   25544 use Moose;
  7         347  
  7         48  
238 7     7   46779 use MooseX::StrictConstructor;
  7         22  
  7         41  
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::Object::AWS::EC2::Instance::SsmAssociation->new( %$_ );
277             }
278             };
279              
280             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::SsmAssociation {
281 7     7   25638 use Moose;
  7         265  
  7         105  
282 7     7   45867 use MooseX::StrictConstructor;
  7         19  
  7         36  
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::Object::AWS::EC2::Instance::NetworkInterface->new( %$_ );
321             }
322             };
323              
324             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::NetworkInterface {
325 7     7   24711 use Moose;
  7         20  
  7         35  
326 7     7   45705 use MooseX::StrictConstructor;
  7         20  
  7         39  
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::Object::AWS::EC2::Instance::LicenseSpecification->new( %$_ );
375             }
376             };
377              
378             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::LicenseSpecification {
379 7     7   25627 use Moose;
  7         21  
  7         42  
380 7     7   45192 use MooseX::StrictConstructor;
  7         18  
  7         37  
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::Object::AWS::EC2::Instance::LaunchTemplateSpecification->new( %$_ );
396             }
397             };
398              
399             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::LaunchTemplateSpecification {
400 7     7   23442 use Moose;
  7         17  
  7         36  
401 7     7   45622 use MooseX::StrictConstructor;
  7         19  
  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              
409             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::HibernationOptions',
410             as 'Cfn::Value';
411              
412             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::HibernationOptions',
413             from 'HashRef',
414             via {
415             if (my $f = Cfn::TypeLibrary::try_function($_)) {
416             return $f
417             } else {
418             return Cfn::Resource::Properties::Object::AWS::EC2::Instance::HibernationOptions->new( %$_ );
419             }
420             };
421              
422             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::HibernationOptions {
423 7     7   23394 use Moose;
  7         28  
  7         37  
424 7     7   45068 use MooseX::StrictConstructor;
  7         16  
  7         33  
425             extends 'Cfn::Value::TypedValue';
426            
427             has Configured => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
428             }
429             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
430             as 'Cfn::Value',
431             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
432             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
433              
434             coerce 'ArrayOfCfn::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             die 'Only accepts functions';
441             }
442             },
443             from 'ArrayRef',
444             via {
445             Cfn::Value::Array->new(Value => [
446             map {
447             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator')->coerce($_)
448             } @$_
449             ]);
450             };
451              
452             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
453             as 'Cfn::Value';
454              
455             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator',
456             from 'HashRef',
457             via {
458             if (my $f = Cfn::TypeLibrary::try_function($_)) {
459             return $f
460             } else {
461             return Cfn::Resource::Properties::Object::AWS::EC2::Instance::ElasticInferenceAccelerator->new( %$_ );
462             }
463             };
464              
465             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::ElasticInferenceAccelerator {
466 7     7   25174 use Moose;
  7         21  
  7         37  
467 7     7   45760 use MooseX::StrictConstructor;
  7         21  
  7         35  
468             extends 'Cfn::Value::TypedValue';
469            
470             has Count => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
471             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
472             }
473             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
474             as 'Cfn::Value',
475             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
476             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
477              
478             coerce 'ArrayOfCfn::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             die 'Only accepts functions';
485             }
486             },
487             from 'ArrayRef',
488             via {
489             Cfn::Value::Array->new(Value => [
490             map {
491             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification')->coerce($_)
492             } @$_
493             ]);
494             };
495              
496             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
497             as 'Cfn::Value';
498              
499             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification',
500             from 'HashRef',
501             via {
502             if (my $f = Cfn::TypeLibrary::try_function($_)) {
503             return $f
504             } else {
505             return Cfn::Resource::Properties::Object::AWS::EC2::Instance::ElasticGpuSpecification->new( %$_ );
506             }
507             };
508              
509             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::ElasticGpuSpecification {
510 7     7   25017 use Moose;
  7         24  
  7         44  
511 7     7   45563 use MooseX::StrictConstructor;
  7         20  
  7         41  
512             extends 'Cfn::Value::TypedValue';
513            
514             has Type => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
515             }
516              
517             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecification',
518             as 'Cfn::Value';
519              
520             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecification',
521             from 'HashRef',
522             via {
523             if (my $f = Cfn::TypeLibrary::try_function($_)) {
524             return $f
525             } else {
526             return Cfn::Resource::Properties::Object::AWS::EC2::Instance::CreditSpecification->new( %$_ );
527             }
528             };
529              
530             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::CreditSpecification {
531 7     7   23167 use Moose;
  7         36  
  7         42  
532 7     7   47025 use MooseX::StrictConstructor;
  7         17  
  7         40  
533             extends 'Cfn::Value::TypedValue';
534            
535             has CPUCredits => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
536             }
537              
538             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptions',
539             as 'Cfn::Value';
540              
541             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptions',
542             from 'HashRef',
543             via {
544             if (my $f = Cfn::TypeLibrary::try_function($_)) {
545             return $f
546             } else {
547             return Cfn::Resource::Properties::Object::AWS::EC2::Instance::CpuOptions->new( %$_ );
548             }
549             };
550              
551             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::CpuOptions {
552 7     7   23495 use Moose;
  7         32  
  7         41  
553 7     7   47914 use MooseX::StrictConstructor;
  7         24  
  7         41  
554             extends 'Cfn::Value::TypedValue';
555            
556             has CoreCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
557             has ThreadsPerCore => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
558             }
559             subtype 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
560             as 'Cfn::Value',
561             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
562             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
563              
564             coerce 'ArrayOfCfn::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             die 'Only accepts functions';
571             }
572             },
573             from 'ArrayRef',
574             via {
575             Cfn::Value::Array->new(Value => [
576             map {
577             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping')->coerce($_)
578             } @$_
579             ]);
580             };
581              
582             subtype 'Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
583             as 'Cfn::Value';
584              
585             coerce 'Cfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping',
586             from 'HashRef',
587             via {
588             if (my $f = Cfn::TypeLibrary::try_function($_)) {
589             return $f
590             } else {
591             return Cfn::Resource::Properties::Object::AWS::EC2::Instance::BlockDeviceMapping->new( %$_ );
592             }
593             };
594              
595             package Cfn::Resource::Properties::Object::AWS::EC2::Instance::BlockDeviceMapping {
596 7     7   25768 use Moose;
  7         20  
  7         36  
597 7     7   46101 use MooseX::StrictConstructor;
  7         19  
  7         39  
598             extends 'Cfn::Value::TypedValue';
599            
600             has DeviceName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
601             has Ebs => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::Ebs', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
602             has NoDevice => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::NoDevice', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
603             has VirtualName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
604             }
605              
606             package Cfn::Resource::Properties::AWS::EC2::Instance {
607 7     7   23305 use Moose;
  7         20  
  7         49  
608 7     7   46086 use MooseX::StrictConstructor;
  7         22  
  7         38  
609             extends 'Cfn::Resource::Properties';
610            
611             has AdditionalInfo => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
612             has Affinity => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
613             has AvailabilityZone => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
614             has BlockDeviceMappings => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::BlockDeviceMapping', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
615             has CpuOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::CpuOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
616             has CreditSpecification => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::CreditSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
617             has DisableApiTermination => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
618             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
619             has ElasticGpuSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticGpuSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
620             has ElasticInferenceAccelerators => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::ElasticInferenceAccelerator', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
621             has HibernationOptions => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::HibernationOptions', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
622             has HostId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
623             has HostResourceGroupArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
624             has IamInstanceProfile => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
625             has ImageId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
626             has InstanceInitiatedShutdownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
627             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
628             has Ipv6AddressCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
629             has Ipv6Addresses => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::InstanceIpv6Address', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
630             has KernelId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
631             has KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
632             has LaunchTemplate => (isa => 'Cfn::Resource::Properties::AWS::EC2::Instance::LaunchTemplateSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
633             has LicenseSpecifications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::LicenseSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
634             has Monitoring => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
635             has NetworkInterfaces => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::NetworkInterface', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
636             has PlacementGroupName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
637             has PrivateIpAddress => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
638             has RamdiskId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
639             has SecurityGroupIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
640             has SecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
641             has SourceDestCheck => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
642             has SsmAssociations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::SsmAssociation', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
643             has SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
644             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
645             has Tenancy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
646             has UserData => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
647             has Volumes => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EC2::Instance::Volume', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
648             }
649              
650             1;
651             ### main pod documentation begin ###
652              
653             =encoding UTF-8
654              
655             =head1 NAME
656              
657             Cfn::Resource::AWS::EC2::Instance - Cfn resource for AWS::EC2::Instance
658              
659             =head1 DESCRIPTION
660              
661             This module implements a Perl module that represents the CloudFormation object AWS::EC2::Instance.
662              
663             See L<Cfn> for more information on how to use it.
664              
665             =head1 AUTHOR
666              
667             Jose Luis Martinez
668             CAPSiDE
669             jlmartinez@capside.com
670              
671             =head1 COPYRIGHT and LICENSE
672              
673             Copyright (c) 2013 by CAPSiDE
674             This code is distributed under the Apache 2 License. The full text of the
675             license can be found in the LICENSE file included with this module.
676              
677             =cut