File Coverage

blib/lib/Cfn/Resource/AWS/EMR/Cluster.pm
Criterion Covered Total %
statement 188 188 100.0
branch n/a
condition n/a
subroutine 64 64 100.0
pod 0 2 0.0
total 252 254 99.2


line stmt bran cond sub pod time code
1             # AWS::EMR::Cluster generated from spec 20.1.0
2 2     2   1682 use Moose::Util::TypeConstraints;
  2         6  
  2         25  
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   4591 use Moose;
  2         4  
  2         16  
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 4 [ 'MasterPublicDNS' ]
15             }
16             sub supported_regions {
17 1     1 0 1234 [ '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::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::Object::AWS::EMR::Cluster::MetricDimension->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::MetricDimension {
59 2     2   15352 use Moose;
  2         5  
  2         16  
60 2     2   13215 use MooseX::StrictConstructor;
  2         8  
  2         21  
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::Object::AWS::EMR::Cluster::VolumeSpecification->new( %$_ );
77             }
78             };
79              
80             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::VolumeSpecification {
81 2     2   7347 use Moose;
  2         5  
  2         14  
82 2     2   13589 use MooseX::StrictConstructor;
  2         15  
  2         12  
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::Object::AWS::EMR::Cluster::SimpleScalingPolicyConfiguration->new( %$_ );
100             }
101             };
102              
103             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::SimpleScalingPolicyConfiguration {
104 2     2   6841 use Moose;
  2         6  
  2         11  
105 2     2   13353 use MooseX::StrictConstructor;
  2         5  
  2         14  
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::Object::AWS::EMR::Cluster::CloudWatchAlarmDefinition->new( %$_ );
123             }
124             };
125              
126             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::CloudWatchAlarmDefinition {
127 2     2   6817 use Moose;
  2         6  
  2         11  
128 2     2   13424 use MooseX::StrictConstructor;
  2         8  
  2         19  
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::Object::AWS::EMR::Cluster::ScalingTrigger->new( %$_ );
152             }
153             };
154              
155             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScalingTrigger {
156 2     2   7099 use Moose;
  2         6  
  2         14  
157 2     2   13426 use MooseX::StrictConstructor;
  2         9  
  2         12  
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::Object::AWS::EMR::Cluster::ScalingAction->new( %$_ );
173             }
174             };
175              
176             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScalingAction {
177 2     2   7377 use Moose;
  2         8  
  2         13  
178 2     2   13299 use MooseX::StrictConstructor;
  2         7  
  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::Object::AWS::EMR::Cluster::EbsBlockDeviceConfig->new( %$_ );
217             }
218             };
219              
220             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::EbsBlockDeviceConfig {
221 2     2   7393 use Moose;
  2         7  
  2         12  
222 2     2   13693 use MooseX::StrictConstructor;
  2         7  
  2         10  
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::Object::AWS::EMR::Cluster::SpotProvisioningSpecification->new( %$_ );
239             }
240             };
241              
242             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::SpotProvisioningSpecification {
243 2     2   7029 use Moose;
  2         54  
  2         20  
244 2     2   13225 use MooseX::StrictConstructor;
  2         6  
  2         10  
245             extends 'Cfn::Value::TypedValue';
246            
247             has AllocationStrategy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
248             has BlockDurationMinutes => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
249             has TimeoutAction => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
250             has TimeoutDurationMinutes => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
251             }
252             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
253             as 'Cfn::Value',
254             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
255             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
256              
257             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
258             from 'HashRef',
259             via {
260             if (my $f = Cfn::TypeLibrary::try_function($_)) {
261             return $f
262             } else {
263             die 'Only accepts functions';
264             }
265             },
266             from 'ArrayRef',
267             via {
268             Cfn::Value::Array->new(Value => [
269             map {
270             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule')->coerce($_)
271             } @$_
272             ]);
273             };
274              
275             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
276             as 'Cfn::Value';
277              
278             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule',
279             from 'HashRef',
280             via {
281             if (my $f = Cfn::TypeLibrary::try_function($_)) {
282             return $f
283             } else {
284             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScalingRule->new( %$_ );
285             }
286             };
287              
288             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScalingRule {
289 2     2   7372 use Moose;
  2         7  
  2         14  
290 2     2   13671 use MooseX::StrictConstructor;
  2         5  
  2         13  
291             extends 'Cfn::Value::TypedValue';
292            
293             has Action => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingAction', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
294             has Description => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
295             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
296             has Trigger => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingTrigger', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
297             }
298              
299             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraints',
300             as 'Cfn::Value';
301              
302             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraints',
303             from 'HashRef',
304             via {
305             if (my $f = Cfn::TypeLibrary::try_function($_)) {
306             return $f
307             } else {
308             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScalingConstraints->new( %$_ );
309             }
310             };
311              
312             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScalingConstraints {
313 2     2   6892 use Moose;
  2         6  
  2         10  
314 2     2   13197 use MooseX::StrictConstructor;
  2         4  
  2         15  
315             extends 'Cfn::Value::TypedValue';
316            
317             has MaxCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
318             has MinCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
319             }
320              
321             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::OnDemandProvisioningSpecification',
322             as 'Cfn::Value';
323              
324             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::OnDemandProvisioningSpecification',
325             from 'HashRef',
326             via {
327             if (my $f = Cfn::TypeLibrary::try_function($_)) {
328             return $f
329             } else {
330             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::OnDemandProvisioningSpecification->new( %$_ );
331             }
332             };
333              
334             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::OnDemandProvisioningSpecification {
335 2     2   6878 use Moose;
  2         8  
  2         13  
336 2     2   13361 use MooseX::StrictConstructor;
  2         5  
  2         16  
337             extends 'Cfn::Value::TypedValue';
338            
339             has AllocationStrategy => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
340             }
341              
342             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration',
343             as 'Cfn::Value';
344              
345             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration',
346             from 'HashRef',
347             via {
348             if (my $f = Cfn::TypeLibrary::try_function($_)) {
349             return $f
350             } else {
351             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::EbsConfiguration->new( %$_ );
352             }
353             };
354              
355             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::EbsConfiguration {
356 2     2   6834 use Moose;
  2         6  
  2         12  
357 2     2   13276 use MooseX::StrictConstructor;
  2         8  
  2         13  
358             extends 'Cfn::Value::TypedValue';
359            
360             has EbsBlockDeviceConfigs => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::EbsBlockDeviceConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
361             has EbsOptimized => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
362             }
363             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
364             as 'Cfn::Value',
365             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
366             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
367              
368             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
369             from 'HashRef',
370             via {
371             if (my $f = Cfn::TypeLibrary::try_function($_)) {
372             return $f
373             } else {
374             die 'Only accepts functions';
375             }
376             },
377             from 'ArrayRef',
378             via {
379             Cfn::Value::Array->new(Value => [
380             map {
381             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::Configuration')->coerce($_)
382             } @$_
383             ]);
384             };
385              
386             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
387             as 'Cfn::Value';
388              
389             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::Configuration',
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::EMR::Cluster::Configuration->new( %$_ );
396             }
397             };
398              
399             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::Configuration {
400 2     2   7238 use Moose;
  2         8  
  2         19  
401 2     2   13272 use MooseX::StrictConstructor;
  2         6  
  2         13  
402             extends 'Cfn::Value::TypedValue';
403            
404             has Classification => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
405             has ConfigurationProperties => (isa => 'Cfn::Value::Hash|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
406             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
407             }
408             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
409             as 'Cfn::Value',
410             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
411             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
412              
413             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
414             from 'HashRef',
415             via {
416             if (my $f = Cfn::TypeLibrary::try_function($_)) {
417             return $f
418             } else {
419             die 'Only accepts functions';
420             }
421             },
422             from 'ArrayRef',
423             via {
424             Cfn::Value::Array->new(Value => [
425             map {
426             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValue')->coerce($_)
427             } @$_
428             ]);
429             };
430              
431             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
432             as 'Cfn::Value';
433              
434             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::KeyValue',
435             from 'HashRef',
436             via {
437             if (my $f = Cfn::TypeLibrary::try_function($_)) {
438             return $f
439             } else {
440             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::KeyValue->new( %$_ );
441             }
442             };
443              
444             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::KeyValue {
445 2     2   7271 use Moose;
  2         8  
  2         11  
446 2     2   13320 use MooseX::StrictConstructor;
  2         7  
  2         11  
447             extends 'Cfn::Value::TypedValue';
448            
449             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
450             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
451             }
452             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
453             as 'Cfn::Value',
454             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
455             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
456              
457             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
458             from 'HashRef',
459             via {
460             if (my $f = Cfn::TypeLibrary::try_function($_)) {
461             return $f
462             } else {
463             die 'Only accepts functions';
464             }
465             },
466             from 'ArrayRef',
467             via {
468             Cfn::Value::Array->new(Value => [
469             map {
470             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig')->coerce($_)
471             } @$_
472             ]);
473             };
474              
475             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
476             as 'Cfn::Value';
477              
478             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig',
479             from 'HashRef',
480             via {
481             if (my $f = Cfn::TypeLibrary::try_function($_)) {
482             return $f
483             } else {
484             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceTypeConfig->new( %$_ );
485             }
486             };
487              
488             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceTypeConfig {
489 2     2   7321 use Moose;
  2         6  
  2         22  
490 2     2   13231 use MooseX::StrictConstructor;
  2         6  
  2         14  
491             extends 'Cfn::Value::TypedValue';
492            
493             has BidPrice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
494             has BidPriceAsPercentageOfOnDemandPrice => (isa => 'Cfn::Value::Double', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
495             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
496             has EbsConfiguration => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
497             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
498             has WeightedCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
499             }
500              
501             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications',
502             as 'Cfn::Value';
503              
504             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications',
505             from 'HashRef',
506             via {
507             if (my $f = Cfn::TypeLibrary::try_function($_)) {
508             return $f
509             } else {
510             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications->new( %$_ );
511             }
512             };
513              
514             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications {
515 2     2   6960 use Moose;
  2         8  
  2         17  
516 2     2   13388 use MooseX::StrictConstructor;
  2         8  
  2         13  
517             extends 'Cfn::Value::TypedValue';
518            
519             has OnDemandSpecification => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::OnDemandProvisioningSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
520             has SpotSpecification => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::SpotProvisioningSpecification', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
521             }
522              
523             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicy',
524             as 'Cfn::Value';
525              
526             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicy',
527             from 'HashRef',
528             via {
529             if (my $f = Cfn::TypeLibrary::try_function($_)) {
530             return $f
531             } else {
532             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::AutoScalingPolicy->new( %$_ );
533             }
534             };
535              
536             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::AutoScalingPolicy {
537 2     2   6859 use Moose;
  2         12  
  2         24  
538 2     2   13206 use MooseX::StrictConstructor;
  2         8  
  2         18  
539             extends 'Cfn::Value::TypedValue';
540            
541             has Constraints => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScalingConstraints', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
542             has Rules => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::ScalingRule', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
543             }
544              
545             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfig',
546             as 'Cfn::Value';
547              
548             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfig',
549             from 'HashRef',
550             via {
551             if (my $f = Cfn::TypeLibrary::try_function($_)) {
552             return $f
553             } else {
554             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScriptBootstrapActionConfig->new( %$_ );
555             }
556             };
557              
558             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ScriptBootstrapActionConfig {
559 2     2   6808 use Moose;
  2         4  
  2         14  
560 2     2   13644 use MooseX::StrictConstructor;
  2         7  
  2         14  
561             extends 'Cfn::Value::TypedValue';
562            
563             has Args => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
564             has Path => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
565             }
566              
567             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementType',
568             as 'Cfn::Value';
569              
570             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementType',
571             from 'HashRef',
572             via {
573             if (my $f = Cfn::TypeLibrary::try_function($_)) {
574             return $f
575             } else {
576             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::PlacementType->new( %$_ );
577             }
578             };
579              
580             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::PlacementType {
581 2     2   6872 use Moose;
  2         18  
  2         13  
582 2     2   13224 use MooseX::StrictConstructor;
  2         6  
  2         12  
583             extends 'Cfn::Value::TypedValue';
584            
585             has AvailabilityZone => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
586             }
587              
588             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig',
589             as 'Cfn::Value';
590              
591             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig',
592             from 'HashRef',
593             via {
594             if (my $f = Cfn::TypeLibrary::try_function($_)) {
595             return $f
596             } else {
597             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceGroupConfig->new( %$_ );
598             }
599             };
600              
601             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceGroupConfig {
602 2     2   6815 use Moose;
  2         12  
  2         28  
603 2     2   13290 use MooseX::StrictConstructor;
  2         7  
  2         12  
604             extends 'Cfn::Value::TypedValue';
605            
606             has AutoScalingPolicy => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::AutoScalingPolicy', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
607             has BidPrice => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
608             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
609             has EbsConfiguration => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::EbsConfiguration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
610             has InstanceCount => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
611             has InstanceType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
612             has Market => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
613             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
614             }
615              
616             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig',
617             as 'Cfn::Value';
618              
619             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig',
620             from 'HashRef',
621             via {
622             if (my $f = Cfn::TypeLibrary::try_function($_)) {
623             return $f
624             } else {
625             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceFleetConfig->new( %$_ );
626             }
627             };
628              
629             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::InstanceFleetConfig {
630 2     2   7059 use Moose;
  2         7  
  2         17  
631 2     2   13231 use MooseX::StrictConstructor;
  2         10  
  2         10  
632             extends 'Cfn::Value::TypedValue';
633            
634             has InstanceTypeConfigs => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::InstanceTypeConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
635             has LaunchSpecifications => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetProvisioningSpecifications', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
636             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
637             has TargetOnDemandCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
638             has TargetSpotCapacity => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
639             }
640              
641             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfig',
642             as 'Cfn::Value';
643              
644             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfig',
645             from 'HashRef',
646             via {
647             if (my $f = Cfn::TypeLibrary::try_function($_)) {
648             return $f
649             } else {
650             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::HadoopJarStepConfig->new( %$_ );
651             }
652             };
653              
654             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::HadoopJarStepConfig {
655 2     2   7183 use Moose;
  2         10  
  2         12  
656 2     2   13297 use MooseX::StrictConstructor;
  2         10  
  2         27  
657             extends 'Cfn::Value::TypedValue';
658            
659             has Args => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
660             has Jar => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
661             has MainClass => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
662             has StepProperties => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::KeyValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
663             }
664              
665             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ComputeLimits',
666             as 'Cfn::Value';
667              
668             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ComputeLimits',
669             from 'HashRef',
670             via {
671             if (my $f = Cfn::TypeLibrary::try_function($_)) {
672             return $f
673             } else {
674             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ComputeLimits->new( %$_ );
675             }
676             };
677              
678             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ComputeLimits {
679 2     2   6879 use Moose;
  2         6  
  2         29  
680 2     2   13262 use MooseX::StrictConstructor;
  2         5  
  2         11  
681             extends 'Cfn::Value::TypedValue';
682            
683             has MaximumCapacityUnits => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
684             has MaximumCoreCapacityUnits => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
685             has MaximumOnDemandCapacityUnits => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
686             has MinimumCapacityUnits => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
687             has UnitType => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
688             }
689             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
690             as 'Cfn::Value',
691             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
692             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
693              
694             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
695             from 'HashRef',
696             via {
697             if (my $f = Cfn::TypeLibrary::try_function($_)) {
698             return $f
699             } else {
700             die 'Only accepts functions';
701             }
702             },
703             from 'ArrayRef',
704             via {
705             Cfn::Value::Array->new(Value => [
706             map {
707             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfig')->coerce($_)
708             } @$_
709             ]);
710             };
711              
712             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
713             as 'Cfn::Value';
714              
715             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::StepConfig',
716             from 'HashRef',
717             via {
718             if (my $f = Cfn::TypeLibrary::try_function($_)) {
719             return $f
720             } else {
721             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::StepConfig->new( %$_ );
722             }
723             };
724              
725             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::StepConfig {
726 2     2   7295 use Moose;
  2         5  
  2         10  
727 2     2   13437 use MooseX::StrictConstructor;
  2         6  
  2         9  
728             extends 'Cfn::Value::TypedValue';
729            
730             has ActionOnFailure => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
731             has HadoopJarStep => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::HadoopJarStepConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
732             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
733             }
734              
735             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::ManagedScalingPolicy',
736             as 'Cfn::Value';
737              
738             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::ManagedScalingPolicy',
739             from 'HashRef',
740             via {
741             if (my $f = Cfn::TypeLibrary::try_function($_)) {
742             return $f
743             } else {
744             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ManagedScalingPolicy->new( %$_ );
745             }
746             };
747              
748             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::ManagedScalingPolicy {
749 2     2   6886 use Moose;
  2         9  
  2         12  
750 2     2   13171 use MooseX::StrictConstructor;
  2         7  
  2         12  
751             extends 'Cfn::Value::TypedValue';
752            
753             has ComputeLimits => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ComputeLimits', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
754             }
755              
756             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributes',
757             as 'Cfn::Value';
758              
759             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributes',
760             from 'HashRef',
761             via {
762             if (my $f = Cfn::TypeLibrary::try_function($_)) {
763             return $f
764             } else {
765             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::KerberosAttributes->new( %$_ );
766             }
767             };
768              
769             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::KerberosAttributes {
770 2     2   6895 use Moose;
  2         4  
  2         11  
771 2     2   13226 use MooseX::StrictConstructor;
  2         7  
  2         13  
772             extends 'Cfn::Value::TypedValue';
773            
774             has ADDomainJoinPassword => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
775             has ADDomainJoinUser => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
776             has CrossRealmTrustPrincipalPassword => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
777             has KdcAdminPassword => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
778             has Realm => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
779             }
780              
781             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfig',
782             as 'Cfn::Value';
783              
784             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfig',
785             from 'HashRef',
786             via {
787             if (my $f = Cfn::TypeLibrary::try_function($_)) {
788             return $f
789             } else {
790             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::JobFlowInstancesConfig->new( %$_ );
791             }
792             };
793              
794             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::JobFlowInstancesConfig {
795 2     2   7013 use Moose;
  2         8  
  2         20  
796 2     2   13523 use MooseX::StrictConstructor;
  2         6  
  2         13  
797             extends 'Cfn::Value::TypedValue';
798            
799             has AdditionalMasterSecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
800             has AdditionalSlaveSecurityGroups => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
801             has CoreInstanceFleet => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
802             has CoreInstanceGroup => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
803             has Ec2KeyName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
804             has Ec2SubnetId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
805             has Ec2SubnetIds => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
806             has EmrManagedMasterSecurityGroup => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
807             has EmrManagedSlaveSecurityGroup => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
808             has HadoopVersion => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
809             has KeepJobFlowAliveWhenNoSteps => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
810             has MasterInstanceFleet => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceFleetConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
811             has MasterInstanceGroup => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::InstanceGroupConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
812             has Placement => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::PlacementType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
813             has ServiceAccessSecurityGroup => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
814             has TerminationProtected => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
815             }
816             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
817             as 'Cfn::Value',
818             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
819             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
820              
821             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
822             from 'HashRef',
823             via {
824             if (my $f = Cfn::TypeLibrary::try_function($_)) {
825             return $f
826             } else {
827             die 'Only accepts functions';
828             }
829             },
830             from 'ArrayRef',
831             via {
832             Cfn::Value::Array->new(Value => [
833             map {
834             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig')->coerce($_)
835             } @$_
836             ]);
837             };
838              
839             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
840             as 'Cfn::Value';
841              
842             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig',
843             from 'HashRef',
844             via {
845             if (my $f = Cfn::TypeLibrary::try_function($_)) {
846             return $f
847             } else {
848             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::BootstrapActionConfig->new( %$_ );
849             }
850             };
851              
852             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::BootstrapActionConfig {
853 2     2   8118 use Moose;
  2         6  
  2         14  
854 2     2   13675 use MooseX::StrictConstructor;
  2         7  
  2         13  
855             extends 'Cfn::Value::TypedValue';
856            
857             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
858             has ScriptBootstrapAction => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ScriptBootstrapActionConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
859             }
860             subtype 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Application',
861             as 'Cfn::Value',
862             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
863             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
864              
865             coerce 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Application',
866             from 'HashRef',
867             via {
868             if (my $f = Cfn::TypeLibrary::try_function($_)) {
869             return $f
870             } else {
871             die 'Only accepts functions';
872             }
873             },
874             from 'ArrayRef',
875             via {
876             Cfn::Value::Array->new(Value => [
877             map {
878             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::EMR::Cluster::Application')->coerce($_)
879             } @$_
880             ]);
881             };
882              
883             subtype 'Cfn::Resource::Properties::AWS::EMR::Cluster::Application',
884             as 'Cfn::Value';
885              
886             coerce 'Cfn::Resource::Properties::AWS::EMR::Cluster::Application',
887             from 'HashRef',
888             via {
889             if (my $f = Cfn::TypeLibrary::try_function($_)) {
890             return $f
891             } else {
892             return Cfn::Resource::Properties::Object::AWS::EMR::Cluster::Application->new( %$_ );
893             }
894             };
895              
896             package Cfn::Resource::Properties::Object::AWS::EMR::Cluster::Application {
897 2     2   7428 use Moose;
  2         5  
  2         23  
898 2     2   13776 use MooseX::StrictConstructor;
  2         6  
  2         13  
899             extends 'Cfn::Value::TypedValue';
900            
901             has AdditionalInfo => (isa => 'Cfn::Value::Hash|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
902             has Args => (isa => 'Cfn::Value::Array|Cfn::Value::Function|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
903             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
904             has Version => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
905             }
906              
907             package Cfn::Resource::Properties::AWS::EMR::Cluster {
908 2     2   7027 use Moose;
  2         6  
  2         12  
909 2     2   14134 use MooseX::StrictConstructor;
  2         7  
  2         15  
910             extends 'Cfn::Resource::Properties';
911            
912             has AdditionalInfo => (isa => 'Cfn::Value::Json|Cfn::DynamicValue', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
913             has Applications => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Application', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
914             has AutoScalingRole => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
915             has BootstrapActions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::BootstrapActionConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
916             has Configurations => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::Configuration', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
917             has CustomAmiId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
918             has EbsRootVolumeSize => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
919             has Instances => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::JobFlowInstancesConfig', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Conditional');
920             has JobFlowRole => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
921             has KerberosAttributes => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::KerberosAttributes', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
922             has LogEncryptionKmsKeyId => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
923             has LogUri => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
924             has ManagedScalingPolicy => (isa => 'Cfn::Resource::Properties::AWS::EMR::Cluster::ManagedScalingPolicy', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
925             has Name => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
926             has ReleaseLabel => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
927             has ScaleDownBehavior => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
928             has SecurityConfiguration => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
929             has ServiceRole => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, required => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
930             has StepConcurrencyLevel => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
931             has Steps => (isa => 'ArrayOfCfn::Resource::Properties::AWS::EMR::Cluster::StepConfig', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
932             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
933             has VisibleToAllUsers => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
934             }
935              
936             1;
937             ### main pod documentation begin ###
938              
939             =encoding UTF-8
940              
941             =head1 NAME
942              
943             Cfn::Resource::AWS::EMR::Cluster - Cfn resource for AWS::EMR::Cluster
944              
945             =head1 DESCRIPTION
946              
947             This module implements a Perl module that represents the CloudFormation object AWS::EMR::Cluster.
948              
949             See L<Cfn> for more information on how to use it.
950              
951             =head1 AUTHOR
952              
953             Jose Luis Martinez
954             CAPSiDE
955             jlmartinez@capside.com
956              
957             =head1 COPYRIGHT and LICENSE
958              
959             Copyright (c) 2013 by CAPSiDE
960             This code is distributed under the Apache 2 License. The full text of the
961             license can be found in the LICENSE file included with this module.
962              
963             =cut