File Coverage

blib/lib/Cfn/Resource/AWS/IoTEvents/DetectorModel.pm
Criterion Covered Total %
statement 122 122 100.0
branch n/a
condition n/a
subroutine 42 42 100.0
pod 0 2 0.0
total 164 166 98.8


line stmt bran cond sub pod time code
1             # AWS::IoTEvents::DetectorModel generated from spec 7.4.0
2 1     1   762 use Moose::Util::TypeConstraints;
  1         3  
  1         12  
3              
4             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel',
5             from 'HashRef',
6             via { Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel->new( %$_ ) };
7              
8             package Cfn::Resource::AWS::IoTEvents::DetectorModel {
9 1     1   2111 use Moose;
  1         3  
  1         9  
10             extends 'Cfn::Resource';
11             has Properties => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel', is => 'rw', coerce => 1);
12            
13             sub AttributeList {
14 1     1 0 4 [ ]
15             }
16             sub supported_regions {
17 1     1 0 1160 [ 'ap-northeast-1','ap-northeast-2','ap-southeast-1','ap-southeast-2','eu-central-1','eu-west-1','eu-west-2','us-east-1','us-east-2','us-west-2' ]
18             }
19             }
20              
21              
22              
23             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Sqs',
24             as 'Cfn::Value';
25              
26             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Sqs',
27             from 'HashRef',
28             via {
29             if (my $f = Cfn::TypeLibrary::try_function($_)) {
30             return $f
31             } else {
32             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SqsValue->new( %$_ );
33             }
34             };
35              
36             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SqsValue {
37 1     1   7075 use Moose;
  1         4  
  1         6  
38 1     1   6528 use MooseX::StrictConstructor;
  1         3  
  1         9  
39             extends 'Cfn::Value::TypedValue';
40            
41             has QueueUrl => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
42             has UseBase64 => (isa => 'Cfn::Value::Boolean', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
43             }
44              
45             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Sns',
46             as 'Cfn::Value';
47              
48             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Sns',
49             from 'HashRef',
50             via {
51             if (my $f = Cfn::TypeLibrary::try_function($_)) {
52             return $f
53             } else {
54             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SnsValue->new( %$_ );
55             }
56             };
57              
58             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SnsValue {
59 1     1   3752 use Moose;
  1         4  
  1         9  
60 1     1   6943 use MooseX::StrictConstructor;
  1         9  
  1         5  
61             extends 'Cfn::Value::TypedValue';
62            
63             has TargetArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
64             }
65              
66             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetVariable',
67             as 'Cfn::Value';
68              
69             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetVariable',
70             from 'HashRef',
71             via {
72             if (my $f = Cfn::TypeLibrary::try_function($_)) {
73             return $f
74             } else {
75             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetVariableValue->new( %$_ );
76             }
77             };
78              
79             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetVariableValue {
80 1     1   3334 use Moose;
  1         2  
  1         5  
81 1     1   6472 use MooseX::StrictConstructor;
  1         5  
  1         5  
82             extends 'Cfn::Value::TypedValue';
83            
84             has Value => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
85             has VariableName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
86             }
87              
88             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetTimer',
89             as 'Cfn::Value';
90              
91             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetTimer',
92             from 'HashRef',
93             via {
94             if (my $f = Cfn::TypeLibrary::try_function($_)) {
95             return $f
96             } else {
97             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetTimerValue->new( %$_ );
98             }
99             };
100              
101             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetTimerValue {
102 1     1   3262 use Moose;
  1         4  
  1         6  
103 1     1   6519 use MooseX::StrictConstructor;
  1         2  
  1         5  
104             extends 'Cfn::Value::TypedValue';
105            
106             has Seconds => (isa => 'Cfn::Value::Integer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
107             has TimerName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
108             }
109              
110             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ResetTimer',
111             as 'Cfn::Value';
112              
113             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ResetTimer',
114             from 'HashRef',
115             via {
116             if (my $f = Cfn::TypeLibrary::try_function($_)) {
117             return $f
118             } else {
119             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ResetTimerValue->new( %$_ );
120             }
121             };
122              
123             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ResetTimerValue {
124 1     1   3323 use Moose;
  1         4  
  1         5  
125 1     1   6531 use MooseX::StrictConstructor;
  1         3  
  1         5  
126             extends 'Cfn::Value::TypedValue';
127            
128             has TimerName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
129             }
130              
131             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Lambda',
132             as 'Cfn::Value';
133              
134             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Lambda',
135             from 'HashRef',
136             via {
137             if (my $f = Cfn::TypeLibrary::try_function($_)) {
138             return $f
139             } else {
140             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::LambdaValue->new( %$_ );
141             }
142             };
143              
144             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::LambdaValue {
145 1     1   3260 use Moose;
  1         3  
  1         6  
146 1     1   6491 use MooseX::StrictConstructor;
  1         2  
  1         6  
147             extends 'Cfn::Value::TypedValue';
148            
149             has FunctionArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
150             }
151              
152             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotTopicPublish',
153             as 'Cfn::Value';
154              
155             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotTopicPublish',
156             from 'HashRef',
157             via {
158             if (my $f = Cfn::TypeLibrary::try_function($_)) {
159             return $f
160             } else {
161             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotTopicPublishValue->new( %$_ );
162             }
163             };
164              
165             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotTopicPublishValue {
166 1     1   3312 use Moose;
  1         3  
  1         5  
167 1     1   6430 use MooseX::StrictConstructor;
  1         2  
  1         6  
168             extends 'Cfn::Value::TypedValue';
169            
170             has MqttTopic => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
171             }
172              
173             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotEvents',
174             as 'Cfn::Value';
175              
176             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotEvents',
177             from 'HashRef',
178             via {
179             if (my $f = Cfn::TypeLibrary::try_function($_)) {
180             return $f
181             } else {
182             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotEventsValue->new( %$_ );
183             }
184             };
185              
186             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotEventsValue {
187 1     1   3298 use Moose;
  1         4  
  1         4  
188 1     1   6490 use MooseX::StrictConstructor;
  1         4  
  1         5  
189             extends 'Cfn::Value::TypedValue';
190            
191             has InputName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
192             }
193              
194             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Firehose',
195             as 'Cfn::Value';
196              
197             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Firehose',
198             from 'HashRef',
199             via {
200             if (my $f = Cfn::TypeLibrary::try_function($_)) {
201             return $f
202             } else {
203             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::FirehoseValue->new( %$_ );
204             }
205             };
206              
207             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::FirehoseValue {
208 1     1   3303 use Moose;
  1         2  
  1         5  
209 1     1   6432 use MooseX::StrictConstructor;
  1         4  
  1         5  
210             extends 'Cfn::Value::TypedValue';
211            
212             has DeliveryStreamName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
213             has Separator => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
214             }
215              
216             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ClearTimer',
217             as 'Cfn::Value';
218              
219             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ClearTimer',
220             from 'HashRef',
221             via {
222             if (my $f = Cfn::TypeLibrary::try_function($_)) {
223             return $f
224             } else {
225             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ClearTimerValue->new( %$_ );
226             }
227             };
228              
229             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ClearTimerValue {
230 1     1   3341 use Moose;
  1         2  
  1         6  
231 1     1   6511 use MooseX::StrictConstructor;
  1         3  
  1         6  
232             extends 'Cfn::Value::TypedValue';
233            
234             has TimerName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
235             }
236             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action',
237             as 'Cfn::Value',
238             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
239             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
240              
241             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action',
242             from 'HashRef',
243             via {
244             if (my $f = Cfn::TypeLibrary::try_function($_)) {
245             return $f
246             } else {
247             die 'Only accepts functions';
248             }
249             },
250             from 'ArrayRef',
251             via {
252             Cfn::Value::Array->new(Value => [
253             map {
254             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action')->coerce($_)
255             } @$_
256             ]);
257             };
258              
259             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action',
260             as 'Cfn::Value';
261              
262             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action',
263             from 'HashRef',
264             via {
265             if (my $f = Cfn::TypeLibrary::try_function($_)) {
266             return $f
267             } else {
268             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ActionValue->new( %$_ );
269             }
270             };
271              
272             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ActionValue {
273 1     1   3493 use Moose;
  1         3  
  1         5  
274 1     1   6479 use MooseX::StrictConstructor;
  1         3  
  1         6  
275             extends 'Cfn::Value::TypedValue';
276            
277             has ClearTimer => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ClearTimer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
278             has Firehose => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Firehose', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
279             has IotEvents => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotEvents', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
280             has IotTopicPublish => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::IotTopicPublish', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
281             has Lambda => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Lambda', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
282             has ResetTimer => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::ResetTimer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
283             has SetTimer => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetTimer', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
284             has SetVariable => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::SetVariable', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
285             has Sns => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Sns', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
286             has Sqs => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Sqs', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
287             }
288             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEvent',
289             as 'Cfn::Value',
290             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
291             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
292              
293             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEvent',
294             from 'HashRef',
295             via {
296             if (my $f = Cfn::TypeLibrary::try_function($_)) {
297             return $f
298             } else {
299             die 'Only accepts functions';
300             }
301             },
302             from 'ArrayRef',
303             via {
304             Cfn::Value::Array->new(Value => [
305             map {
306             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEvent')->coerce($_)
307             } @$_
308             ]);
309             };
310              
311             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEvent',
312             as 'Cfn::Value';
313              
314             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEvent',
315             from 'HashRef',
316             via {
317             if (my $f = Cfn::TypeLibrary::try_function($_)) {
318             return $f
319             } else {
320             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEventValue->new( %$_ );
321             }
322             };
323              
324             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEventValue {
325 1     1   3720 use Moose;
  1         3  
  1         5  
326 1     1   6514 use MooseX::StrictConstructor;
  1         6  
  1         4  
327             extends 'Cfn::Value::TypedValue';
328            
329             has Actions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
330             has Condition => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
331             has EventName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
332             has NextState => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
333             }
334             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event',
335             as 'Cfn::Value',
336             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
337             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
338              
339             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event',
340             from 'HashRef',
341             via {
342             if (my $f = Cfn::TypeLibrary::try_function($_)) {
343             return $f
344             } else {
345             die 'Only accepts functions';
346             }
347             },
348             from 'ArrayRef',
349             via {
350             Cfn::Value::Array->new(Value => [
351             map {
352             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event')->coerce($_)
353             } @$_
354             ]);
355             };
356              
357             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event',
358             as 'Cfn::Value';
359              
360             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event',
361             from 'HashRef',
362             via {
363             if (my $f = Cfn::TypeLibrary::try_function($_)) {
364             return $f
365             } else {
366             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::EventValue->new( %$_ );
367             }
368             };
369              
370             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::EventValue {
371 1     1   3535 use Moose;
  1         3  
  1         8  
372 1     1   6471 use MooseX::StrictConstructor;
  1         2  
  1         6  
373             extends 'Cfn::Value::TypedValue';
374            
375             has Actions => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Action', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
376             has Condition => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
377             has EventName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
378             }
379              
380             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnInput',
381             as 'Cfn::Value';
382              
383             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnInput',
384             from 'HashRef',
385             via {
386             if (my $f = Cfn::TypeLibrary::try_function($_)) {
387             return $f
388             } else {
389             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnInputValue->new( %$_ );
390             }
391             };
392              
393             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnInputValue {
394 1     1   3354 use Moose;
  1         3  
  1         5  
395 1     1   6500 use MooseX::StrictConstructor;
  1         3  
  1         7  
396             extends 'Cfn::Value::TypedValue';
397            
398             has Events => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
399             has TransitionEvents => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::TransitionEvent', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
400             }
401              
402             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnExit',
403             as 'Cfn::Value';
404              
405             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnExit',
406             from 'HashRef',
407             via {
408             if (my $f = Cfn::TypeLibrary::try_function($_)) {
409             return $f
410             } else {
411             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnExitValue->new( %$_ );
412             }
413             };
414              
415             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnExitValue {
416 1     1   3307 use Moose;
  1         4  
  1         5  
417 1     1   6788 use MooseX::StrictConstructor;
  1         3  
  1         4  
418             extends 'Cfn::Value::TypedValue';
419            
420             has Events => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
421             }
422              
423             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnEnter',
424             as 'Cfn::Value';
425              
426             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnEnter',
427             from 'HashRef',
428             via {
429             if (my $f = Cfn::TypeLibrary::try_function($_)) {
430             return $f
431             } else {
432             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnEnterValue->new( %$_ );
433             }
434             };
435              
436             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnEnterValue {
437 1     1   3382 use Moose;
  1         3  
  1         7  
438 1     1   6447 use MooseX::StrictConstructor;
  1         5  
  1         6  
439             extends 'Cfn::Value::TypedValue';
440            
441             has Events => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::Event', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
442             }
443             subtype 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::State',
444             as 'Cfn::Value',
445             where { $_->isa('Cfn::Value::Array') or $_->isa('Cfn::Value::Function') },
446             message { "$_ is not a Cfn::Value or a Cfn::Value::Function" };
447              
448             coerce 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::State',
449             from 'HashRef',
450             via {
451             if (my $f = Cfn::TypeLibrary::try_function($_)) {
452             return $f
453             } else {
454             die 'Only accepts functions';
455             }
456             },
457             from 'ArrayRef',
458             via {
459             Cfn::Value::Array->new(Value => [
460             map {
461             Moose::Util::TypeConstraints::find_type_constraint('Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::State')->coerce($_)
462             } @$_
463             ]);
464             };
465              
466             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::State',
467             as 'Cfn::Value';
468              
469             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::State',
470             from 'HashRef',
471             via {
472             if (my $f = Cfn::TypeLibrary::try_function($_)) {
473             return $f
474             } else {
475             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::StateValue->new( %$_ );
476             }
477             };
478              
479             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::StateValue {
480 1     1   3485 use Moose;
  1         3  
  1         6  
481 1     1   6423 use MooseX::StrictConstructor;
  1         3  
  1         4  
482             extends 'Cfn::Value::TypedValue';
483            
484             has OnEnter => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnEnter', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
485             has OnExit => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnExit', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
486             has OnInput => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::OnInput', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
487             has StateName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
488             }
489              
490             subtype 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::DetectorModelDefinition',
491             as 'Cfn::Value';
492              
493             coerce 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::DetectorModelDefinition',
494             from 'HashRef',
495             via {
496             if (my $f = Cfn::TypeLibrary::try_function($_)) {
497             return $f
498             } else {
499             return Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::DetectorModelDefinitionValue->new( %$_ );
500             }
501             };
502              
503             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::DetectorModelDefinitionValue {
504 1     1   3399 use Moose;
  1         5  
  1         6  
505 1     1   6509 use MooseX::StrictConstructor;
  1         3  
  1         5  
506             extends 'Cfn::Value::TypedValue';
507            
508             has InitialStateName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
509             has States => (isa => 'ArrayOfCfn::Resource::Properties::AWS::IoTEvents::DetectorModel::State', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
510             }
511              
512             package Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel {
513 1     1   3182 use Moose;
  1         3  
  1         6  
514 1     1   6472 use MooseX::StrictConstructor;
  1         2  
  1         7  
515             extends 'Cfn::Resource::Properties';
516            
517             has DetectorModelDefinition => (isa => 'Cfn::Resource::Properties::AWS::IoTEvents::DetectorModel::DetectorModelDefinition', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
518             has DetectorModelDescription => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
519             has DetectorModelName => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
520             has Key => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Immutable');
521             has RoleArn => (isa => 'Cfn::Value::String', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
522             has Tags => (isa => 'ArrayOfCfn::Resource::Properties::TagType', is => 'rw', coerce => 1, traits => [ 'CfnMutability' ], mutability => 'Mutable');
523             }
524              
525             1;