File Coverage

blib/lib/Cfn/Resource/AWS/EMR/Cluster.pm
Criterion Covered Total %
statement 170 170 100.0
branch n/a
condition n/a
subroutine 58 58 100.0
pod 0 2 0.0
total 228 230 99.1


line stmt bran cond sub pod time code
1             # AWS::EMR::Cluster generated from spec 5.3.0
2 2     2   1639 use Moose::Util::TypeConstraints;
  2         9  
  2         22  
3              
4             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::EMR::Cluster->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::EMR::Cluster {
9 2     2   4457 use Moose;
  2         8  
  2         19  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 6 [ 'MasterPublicDNS' ]
15             }
16             sub supported_regions {
17 1     1 0 1193 [ '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::EMR::Cluster::MetricDimension',
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::EMR::Cluster::MetricDimension',
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::EMR::Cluster::MetricDimension')->coerce($_)
41             } @$_
42             ]);
43             };
44              
45             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::MetricDimension',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::MetricDimension',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::AWS::EMR::Cluster::MetricDimensionValue->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::AWS::EMR::Cluster::MetricDimensionValue {
59 2     2   15427 use Moose;
  2         7  
  2         12  
60 2     2   13394 use MooseX::StrictConstructor;
  2         7  
  2         24  
61             extends 'Cfn::Value::TypedValue';
62            
63             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
65             }
66              
67             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::VolumeSpecification',
68             as 'Cfn::Value';
69              
70             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::VolumeSpecification',
71             from 'HashRef',
72             via {
73             if (my $f = Cfn::TypeLibrary::try_function($_)) {
74             return $f
75             } else {
76             return Cfn::Resource::Properties::AWS::EMR::Cluster::VolumeSpecificationValue->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::AWS::EMR::Cluster::VolumeSpecificationValue {
81 2     2   7364 use Moose;
  2         7  
  2         14  
82 2     2   13027 use MooseX::StrictConstructor;
  2         12  
  2         11  
83             extends 'Cfn::Value::TypedValue';
84            
85             has Iops => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             has SizeInGB => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
87             has VolumeType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
88             }
89              
90             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::SimpleScalingPolicyConfiguration',
91             as 'Cfn::Value';
92              
93             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::SimpleScalingPolicyConfiguration',
94             from 'HashRef',
95             via {
96             if (my $f = Cfn::TypeLibrary::try_function($_)) {
97             return $f
98             } else {
99             return Cfn::Resource::Properties::AWS::EMR::Cluster::SimpleScalingPolicyConfigurationValue->new( %$_ );
100             }
101             };
102              
103             package Cfn::Resource::Properties::AWS::EMR::Cluster::SimpleScalingPolicyConfigurationValue {
104 2     2   6627 use Moose;
  2         8  
  2         12  
105 2     2   13474 use MooseX::StrictConstructor;
  2         9  
  2         12  
106             extends 'Cfn::Value::TypedValue';
107            
108             has AdjustmentType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
109             has CoolDown => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
110             has ScalingAdjustment => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
111             }
112              
113             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::CloudWatchAlarmDefinition',
114             as 'Cfn::Value';
115              
116             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::CloudWatchAlarmDefinition',
117             from 'HashRef',
118             via {
119             if (my $f = Cfn::TypeLibrary::try_function($_)) {
120             return $f
121             } else {
122             return Cfn::Resource::Properties::AWS::EMR::Cluster::CloudWatchAlarmDefinitionValue->new( %$_ );
123             }
124             };
125              
126             package Cfn::Resource::Properties::AWS::EMR::Cluster::CloudWatchAlarmDefinitionValue {
127 2     2   6788 use Moose;
  2         8  
  2         10  
128 2     2   12983 use MooseX::StrictConstructor;
  2         5  
  2         11  
129             extends 'Cfn::Value::TypedValue';
130            
131             has ComparisonOperator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
132             has Dimensions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::MetricDimension', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
133             has EvaluationPeriods => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
134             has MetricName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
135             has Namespace => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
136             has Period => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
137             has Statistic => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
138             has Threshold => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
139             has Unit => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
140             }
141              
142             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingTrigger',
143             as 'Cfn::Value';
144              
145             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingTrigger',
146             from 'HashRef',
147             via {
148             if (my $f = Cfn::TypeLibrary::try_function($_)) {
149             return $f
150             } else {
151             return Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingTriggerValue->new( %$_ );
152             }
153             };
154              
155             package Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingTriggerValue {
156 2     2   6942 use Moose;
  2         6  
  2         13  
157 2     2   13182 use MooseX::StrictConstructor;
  2         7  
  2         10  
158             extends 'Cfn::Value::TypedValue';
159            
160             has CloudWatchAlarmDefinition => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::CloudWatchAlarmDefinition', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
161             }
162              
163             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingAction',
164             as 'Cfn::Value';
165              
166             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingAction',
167             from 'HashRef',
168             via {
169             if (my $f = Cfn::TypeLibrary::try_function($_)) {
170             return $f
171             } else {
172             return Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingActionValue->new( %$_ );
173             }
174             };
175              
176             package Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingActionValue {
177 2     2   6666 use Moose;
  2         6  
  2         14  
178 2     2   13273 use MooseX::StrictConstructor;
  2         9  
  2         11  
179             extends 'Cfn::Value::TypedValue';
180            
181             has Market => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
182             has SimpleScalingPolicyConfiguration => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::SimpleScalingPolicyConfiguration', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
183             }
184             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig',
185             as 'Cfn::Value',
186             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
187             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
188              
189             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig',
190             from 'HashRef',
191             via {
192             if (my $f = Cfn::TypeLibrary::try_function($_)) {
193             return $f
194             } else {
195             die 'Only accepts functions';
196             }
197             },
198             from 'ArrayRef',
199             via {
200             Cfn::Value::Array->new(Value => [
201             map {
202             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig')->coerce($_)
203             } @$_
204             ]);
205             };
206              
207             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig',
208             as 'Cfn::Value';
209              
210             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig',
211             from 'HashRef',
212             via {
213             if (my $f = Cfn::TypeLibrary::try_function($_)) {
214             return $f
215             } else {
216             return Cfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfigValue->new( %$_ );
217             }
218             };
219              
220             package Cfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfigValue {
221 2     2   7308 use Moose;
  2         6  
  2         13  
222 2     2   14013 use MooseX::StrictConstructor;
  2         7  
  2         13  
223             extends 'Cfn::Value::TypedValue';
224            
225             has VolumeSpecification => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::VolumeSpecification', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
226             has VolumesPerInstance => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
227             }
228              
229             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::SpotProvisioningSpecification',
230             as 'Cfn::Value';
231              
232             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::SpotProvisioningSpecification',
233             from 'HashRef',
234             via {
235             if (my $f = Cfn::TypeLibrary::try_function($_)) {
236             return $f
237             } else {
238             return Cfn::Resource::Properties::AWS::EMR::Cluster::SpotProvisioningSpecificationValue->new( %$_ );
239             }
240             };
241              
242             package Cfn::Resource::Properties::AWS::EMR::Cluster::SpotProvisioningSpecificationValue {
243 2     2   6790 use Moose;
  2         8  
  2         11  
244 2     2   12963 use MooseX::StrictConstructor;
  2         7  
  2         11  
245             extends 'Cfn::Value::TypedValue';
246            
247             has BlockDurationMinutes => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             has TimeoutAction => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             has TimeoutDurationMinutes => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             }
251             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
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::EMR::Cluster::ScalingRule',
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::EMR::Cluster::ScalingRule')->coerce($_)
270             } @$_
271             ]);
272             };
273              
274             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
275             as 'Cfn::Value';
276              
277             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
278             from 'HashRef',
279             via {
280             if (my $f = Cfn::TypeLibrary::try_function($_)) {
281             return $f
282             } else {
283             return Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRuleValue->new( %$_ );
284             }
285             };
286              
287             package Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRuleValue {
288 2     2   7128 use Moose;
  2         7  
  2         11  
289 2     2   13027 use MooseX::StrictConstructor;
  2         6  
  2         12  
290             extends 'Cfn::Value::TypedValue';
291            
292             has Action => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingAction', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
293             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
294             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
295             has Trigger => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingTrigger', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             }
297              
298             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraints',
299             as 'Cfn::Value';
300              
301             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraints',
302             from 'HashRef',
303             via {
304             if (my $f = Cfn::TypeLibrary::try_function($_)) {
305             return $f
306             } else {
307             return Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraintsValue->new( %$_ );
308             }
309             };
310              
311             package Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraintsValue {
312 2     2   6784 use Moose;
  2         6  
  2         12  
313 2     2   12968 use MooseX::StrictConstructor;
  2         7  
  2         10  
314             extends 'Cfn::Value::TypedValue';
315            
316             has MaxCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
317             has MinCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
318             }
319              
320             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration',
321             as 'Cfn::Value';
322              
323             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration',
324             from 'HashRef',
325             via {
326             if (my $f = Cfn::TypeLibrary::try_function($_)) {
327             return $f
328             } else {
329             return Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfigurationValue->new( %$_ );
330             }
331             };
332              
333             package Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfigurationValue {
334 2     2   6656 use Moose;
  2         5  
  2         11  
335 2     2   12917 use MooseX::StrictConstructor;
  2         4  
  2         11  
336             extends 'Cfn::Value::TypedValue';
337            
338             has EbsBlockDeviceConfigs => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
339             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
340             }
341             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
342             as 'Cfn::Value',
343             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
344             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
345              
346             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
347             from 'HashRef',
348             via {
349             if (my $f = Cfn::TypeLibrary::try_function($_)) {
350             return $f
351             } else {
352             die 'Only accepts functions';
353             }
354             },
355             from 'ArrayRef',
356             via {
357             Cfn::Value::Array->new(Value => [
358             map {
359             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::Configuration')->coerce($_)
360             } @$_
361             ]);
362             };
363              
364             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
365             as 'Cfn::Value';
366              
367             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
368             from 'HashRef',
369             via {
370             if (my $f = Cfn::TypeLibrary::try_function($_)) {
371             return $f
372             } else {
373             return Cfn::Resource::Properties::AWS::EMR::Cluster::ConfigurationValue->new( %$_ );
374             }
375             };
376              
377             package Cfn::Resource::Properties::AWS::EMR::Cluster::ConfigurationValue {
378 2     2   7103 use Moose;
  2         5  
  2         12  
379 2     2   12955 use MooseX::StrictConstructor;
  2         6  
  2         11  
380             extends 'Cfn::Value::TypedValue';
381            
382             has Classification => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
383             has ConfigurationProperties => (isa => 'Cfn::Value::Hash|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
384             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
385             }
386             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
387             as 'Cfn::Value',
388             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
389             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
390              
391             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
392             from 'HashRef',
393             via {
394             if (my $f = Cfn::TypeLibrary::try_function($_)) {
395             return $f
396             } else {
397             die 'Only accepts functions';
398             }
399             },
400             from 'ArrayRef',
401             via {
402             Cfn::Value::Array->new(Value => [
403             map {
404             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValue')->coerce($_)
405             } @$_
406             ]);
407             };
408              
409             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
410             as 'Cfn::Value';
411              
412             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
413             from 'HashRef',
414             via {
415             if (my $f = Cfn::TypeLibrary::try_function($_)) {
416             return $f
417             } else {
418             return Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValueValue->new( %$_ );
419             }
420             };
421              
422             package Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValueValue {
423 2     2   7179 use Moose;
  2         7  
  2         12  
424 2     2   13239 use MooseX::StrictConstructor;
  2         6  
  2         12  
425             extends 'Cfn::Value::TypedValue';
426            
427             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
428             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
429             }
430             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
431             as 'Cfn::Value',
432             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
433             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
434              
435             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
436             from 'HashRef',
437             via {
438             if (my $f = Cfn::TypeLibrary::try_function($_)) {
439             return $f
440             } else {
441             die 'Only accepts functions';
442             }
443             },
444             from 'ArrayRef',
445             via {
446             Cfn::Value::Array->new(Value => [
447             map {
448             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig')->coerce($_)
449             } @$_
450             ]);
451             };
452              
453             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
454             as 'Cfn::Value';
455              
456             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
457             from 'HashRef',
458             via {
459             if (my $f = Cfn::TypeLibrary::try_function($_)) {
460             return $f
461             } else {
462             return Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfigValue->new( %$_ );
463             }
464             };
465              
466             package Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfigValue {
467 2     2   7089 use Moose;
  2         8  
  2         13  
468 2     2   12959 use MooseX::StrictConstructor;
  2         7  
  2         10  
469             extends 'Cfn::Value::TypedValue';
470            
471             has BidPrice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
472             has BidPriceAsPercentageOfOnDemandPrice => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
473             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
474             has EbsConfiguration => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
475             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
476             has WeightedCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
477             }
478              
479             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications',
480             as 'Cfn::Value';
481              
482             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications',
483             from 'HashRef',
484             via {
485             if (my $f = Cfn::TypeLibrary::try_function($_)) {
486             return $f
487             } else {
488             return Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecificationsValue->new( %$_ );
489             }
490             };
491              
492             package Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecificationsValue {
493 2     2   6898 use Moose;
  2         9  
  2         12  
494 2     2   13419 use MooseX::StrictConstructor;
  2         10  
  2         12  
495             extends 'Cfn::Value::TypedValue';
496            
497             has SpotSpecification => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::SpotProvisioningSpecification', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
498             }
499              
500             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicy',
501             as 'Cfn::Value';
502              
503             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicy',
504             from 'HashRef',
505             via {
506             if (my $f = Cfn::TypeLibrary::try_function($_)) {
507             return $f
508             } else {
509             return Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicyValue->new( %$_ );
510             }
511             };
512              
513             package Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicyValue {
514 2     2   6776 use Moose;
  2         7  
  2         13  
515 2     2   13151 use MooseX::StrictConstructor;
  2         13  
  2         13  
516             extends 'Cfn::Value::TypedValue';
517            
518             has Constraints => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraints', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
519             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
520             }
521              
522             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfig',
523             as 'Cfn::Value';
524              
525             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfig',
526             from 'HashRef',
527             via {
528             if (my $f = Cfn::TypeLibrary::try_function($_)) {
529             return $f
530             } else {
531             return Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfigValue->new( %$_ );
532             }
533             };
534              
535             package Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfigValue {
536 2     2   6833 use Moose;
  2         8  
  2         11  
537 2     2   13150 use MooseX::StrictConstructor;
  2         5  
  2         12  
538             extends 'Cfn::Value::TypedValue';
539            
540             has Args => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
541             has Path => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
542             }
543              
544             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementType',
545             as 'Cfn::Value';
546              
547             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementType',
548             from 'HashRef',
549             via {
550             if (my $f = Cfn::TypeLibrary::try_function($_)) {
551             return $f
552             } else {
553             return Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementTypeValue->new( %$_ );
554             }
555             };
556              
557             package Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementTypeValue {
558 2     2   6596 use Moose;
  2         4  
  2         11  
559 2     2   13028 use MooseX::StrictConstructor;
  2         8  
  2         10  
560             extends 'Cfn::Value::TypedValue';
561            
562             has AvailabilityZone => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
563             }
564              
565             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig',
566             as 'Cfn::Value';
567              
568             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig',
569             from 'HashRef',
570             via {
571             if (my $f = Cfn::TypeLibrary::try_function($_)) {
572             return $f
573             } else {
574             return Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfigValue->new( %$_ );
575             }
576             };
577              
578             package Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfigValue {
579 2     2   6752 use Moose;
  2         9  
  2         13  
580 2     2   13145 use MooseX::StrictConstructor;
  2         7  
  2         12  
581             extends 'Cfn::Value::TypedValue';
582            
583             has AutoScalingPolicy => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicy', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
584             has BidPrice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
585             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
586             has EbsConfiguration => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
587             has InstanceCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
588             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
589             has Market => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
590             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
591             }
592              
593             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig',
594             as 'Cfn::Value';
595              
596             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig',
597             from 'HashRef',
598             via {
599             if (my $f = Cfn::TypeLibrary::try_function($_)) {
600             return $f
601             } else {
602             return Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfigValue->new( %$_ );
603             }
604             };
605              
606             package Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfigValue {
607 2     2   6971 use Moose;
  2         6  
  2         29  
608 2     2   13143 use MooseX::StrictConstructor;
  2         6  
  2         10  
609             extends 'Cfn::Value::TypedValue';
610            
611             has InstanceTypeConfigs => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
612             has LaunchSpecifications => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
613             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
614             has TargetOnDemandCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
615             has TargetSpotCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
616             }
617              
618             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfig',
619             as 'Cfn::Value';
620              
621             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfig',
622             from 'HashRef',
623             via {
624             if (my $f = Cfn::TypeLibrary::try_function($_)) {
625             return $f
626             } else {
627             return Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfigValue->new( %$_ );
628             }
629             };
630              
631             package Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfigValue {
632 2     2   6709 use Moose;
  2         7  
  2         12  
633 2     2   13056 use MooseX::StrictConstructor;
  2         5  
  2         11  
634             extends 'Cfn::Value::TypedValue';
635            
636             has Args => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
637             has Jar => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
638             has MainClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
639             has StepProperties => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::KeyValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
640             }
641             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
642             as 'Cfn::Value',
643             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
644             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
645              
646             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
647             from 'HashRef',
648             via {
649             if (my $f = Cfn::TypeLibrary::try_function($_)) {
650             return $f
651             } else {
652             die 'Only accepts functions';
653             }
654             },
655             from 'ArrayRef',
656             via {
657             Cfn::Value::Array->new(Value => [
658             map {
659             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfig')->coerce($_)
660             } @$_
661             ]);
662             };
663              
664             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
665             as 'Cfn::Value';
666              
667             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
668             from 'HashRef',
669             via {
670             if (my $f = Cfn::TypeLibrary::try_function($_)) {
671             return $f
672             } else {
673             return Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfigValue->new( %$_ );
674             }
675             };
676              
677             package Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfigValue {
678 2     2   7143 use Moose;
  2         5  
  2         15  
679 2     2   13300 use MooseX::StrictConstructor;
  2         6  
  2         13  
680             extends 'Cfn::Value::TypedValue';
681            
682             has ActionOnFailure => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
683             has HadoopJarStep => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
684             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
685             }
686              
687             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributes',
688             as 'Cfn::Value';
689              
690             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributes',
691             from 'HashRef',
692             via {
693             if (my $f = Cfn::TypeLibrary::try_function($_)) {
694             return $f
695             } else {
696             return Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributesValue->new( %$_ );
697             }
698             };
699              
700             package Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributesValue {
701 2     2   6724 use Moose;
  2         6  
  2         11  
702 2     2   13070 use MooseX::StrictConstructor;
  2         7  
  2         13  
703             extends 'Cfn::Value::TypedValue';
704            
705             has ADDomainJoinPassword => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
706             has ADDomainJoinUser => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
707             has CrossRealmTrustPrincipalPassword => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
708             has KdcAdminPassword => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
709             has Realm => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
710             }
711              
712             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfig',
713             as 'Cfn::Value';
714              
715             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfig',
716             from 'HashRef',
717             via {
718             if (my $f = Cfn::TypeLibrary::try_function($_)) {
719             return $f
720             } else {
721             return Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfigValue->new( %$_ );
722             }
723             };
724              
725             package Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfigValue {
726 2     2   6737 use Moose;
  2         7  
  2         11  
727 2     2   13043 use MooseX::StrictConstructor;
  2         9  
  2         14  
728             extends 'Cfn::Value::TypedValue';
729            
730             has AdditionalMasterSecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
731             has AdditionalSlaveSecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
732             has CoreInstanceFleet => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
733             has CoreInstanceGroup => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
734             has Ec2KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
735             has Ec2SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
736             has Ec2SubnetIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
737             has EmrManagedMasterSecurityGroup => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
738             has EmrManagedSlaveSecurityGroup => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
739             has HadoopVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
740             has KeepJobFlowAliveWhenNoSteps => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
741             has MasterInstanceFleet => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
742             has MasterInstanceGroup => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
743             has Placement => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
744             has ServiceAccessSecurityGroup => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
745             has TerminationProtected => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
746             }
747             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
748             as 'Cfn::Value',
749             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
750             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
751              
752             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
753             from 'HashRef',
754             via {
755             if (my $f = Cfn::TypeLibrary::try_function($_)) {
756             return $f
757             } else {
758             die 'Only accepts functions';
759             }
760             },
761             from 'ArrayRef',
762             via {
763             Cfn::Value::Array->new(Value => [
764             map {
765             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig')->coerce($_)
766             } @$_
767             ]);
768             };
769              
770             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
771             as 'Cfn::Value';
772              
773             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
774             from 'HashRef',
775             via {
776             if (my $f = Cfn::TypeLibrary::try_function($_)) {
777             return $f
778             } else {
779             return Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfigValue->new( %$_ );
780             }
781             };
782              
783             package Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfigValue {
784 2     2   7519 use Moose;
  2         6  
  2         11  
785 2     2   13093 use MooseX::StrictConstructor;
  2         7  
  2         11  
786             extends 'Cfn::Value::TypedValue';
787            
788             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
789             has ScriptBootstrapAction => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
790             }
791             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Application',
792             as 'Cfn::Value',
793             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
794             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
795              
796             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Application',
797             from 'HashRef',
798             via {
799             if (my $f = Cfn::TypeLibrary::try_function($_)) {
800             return $f
801             } else {
802             die 'Only accepts functions';
803             }
804             },
805             from 'ArrayRef',
806             via {
807             Cfn::Value::Array->new(Value => [
808             map {
809             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::Application')->coerce($_)
810             } @$_
811             ]);
812             };
813              
814             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::Application',
815             as 'Cfn::Value';
816              
817             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::Application',
818             from 'HashRef',
819             via {
820             if (my $f = Cfn::TypeLibrary::try_function($_)) {
821             return $f
822             } else {
823             return Cfn::Resource::Properties::AWS::EMR::Cluster::ApplicationValue->new( %$_ );
824             }
825             };
826              
827             package Cfn::Resource::Properties::AWS::EMR::Cluster::ApplicationValue {
828 2     2   7054 use Moose;
  2         6  
  2         11  
829 2     2   13693 use MooseX::StrictConstructor;
  2         6  
  2         11  
830             extends 'Cfn::Value::TypedValue';
831            
832             has AdditionalInfo => (isa => 'Cfn::Value::Hash|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
833             has Args => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
834             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
835             has Version => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
836             }
837              
838             package Cfn::Resource::Properties::AWS::EMR::Cluster {
839 2     2   6864 use Moose;
  2         7  
  2         16  
840 2     2   13056 use MooseX::StrictConstructor;
  2         7  
  2         13  
841             extends 'Cfn::Resource::Properties';
842            
843             has AdditionalInfo => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
844             has Applications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Application', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
845             has AutoScalingRole => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
846             has BootstrapActions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
847             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
848             has CustomAmiId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
849             has EbsRootVolumeSize => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
850             has Instances => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
851             has JobFlowRole => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
852             has KerberosAttributes => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributes', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
853             has LogUri => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
854             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
855             has ReleaseLabel => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
856             has ScaleDownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
857             has SecurityConfiguration => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
858             has ServiceRole => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
859             has Steps => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::StepConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
860             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
861             has VisibleToAllUsers => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
862             }
863              
864             1;